private int selectedRowIndex;\r
private int selectedPageIndex;\r
private String mediaID;\r
- private boolean showResult;\r
+ private volatile boolean preventAfterRender;\r
\r
public SearchModel() {\r
typeFilters = new LinkedHashMap<>();\r
model.selectArchivedMedia(this.selectedObject, true);\r
}\r
\r
+ void ensureVisible(int pos) {\r
+ registerTask(() -> {\r
+ List<Component> children = itemsGrid.getRows().getChildren();\r
+ if (children.size() > 0) {\r
+ Component top = children.get(pos);\r
+ Clients.scrollIntoView(top);\r
+ }\r
+ });\r
+ timer.start();\r
+ }\r
+\r
public Validator getAllFilterCheckedValidator() {\r
return allFilterCheckedValidator;\r
}\r
\r
@Command\r
public void onAfterRenderGrid() {\r
+ if (preventAfterRender)\r
+ return;\r
logger.info("onAfterRenderGrid");\r
- if (mediaID != null) {\r
- selectedObject = searchResult.getElementAt(0);\r
- highlight(selectedObject, true);\r
- notifyChange("selectedObject", "hasLowresMediaFile", "hasTSMMediaFile", "lowresMediaFilePath");\r
- } else if (showResult) {\r
- List<Component> children = itemsGrid.getRows().getChildren();\r
- itemsGrid.setActivePage(selectedPageIndex);\r
- Component pos = children.get(selectedRowIndex - itemsGrid.getPageSize() * itemsGrid.getActivePage());\r
- Clients.scrollIntoView(pos);\r
- showResult = false;\r
- }\r
- }\r
-\r
- @Command\r
- public void onPagingGrid() {\r
- logger.info("onPagingGrid");\r
- registerTask(() -> {\r
- List<Component> children = itemsGrid.getRows().getChildren();\r
- if (children.size() > 0) {\r
- int pos = itemsGrid.getPageSize() * itemsGrid.getActivePage();\r
- Component top = children.get(pos);\r
- Clients.scrollIntoView(top);\r
- }\r
- });\r
- timer.start();\r
+ // if (mediaID != null) {\r
+ // selectedObject = searchResult.getElementAt(0);\r
+ // highlight(selectedObject, true);\r
+ // notifyChange("selectedObject", "hasLowresMediaFile", "hasTSMMediaFile", "lowresMediaFilePath");\r
+ // } else if (showResult) {\r
+ // List<Component> children = itemsGrid.getRows().getChildren();\r
+ // itemsGrid.setActivePage(selectedPageIndex);\r
+ // Component pos = children.get(selectedRowIndex - itemsGrid.getPageSize() * itemsGrid.getActivePage());\r
+ // Clients.scrollIntoView(pos);\r
+ // showResult = false;\r
+ // }\r
+\r
+ preventAfterRender = true;\r
+ ensureVisible(itemsGrid.getPageSize() * itemsGrid.getActivePage());\r
+ preventAfterRender = false;\r
}\r
\r
@Command\r
}\r
\r
@Command\r
- @NotifyChange("itemsGrid")\r
+ // @NotifyChange("itemsGrid")\r
public void showInResults() {\r
- logger.info("showInResults");\r
- showResult = true;\r
- onAfterRenderGrid();\r
+ List<Component> components = itemsGrid.getRows().getChildren();\r
+ int pos = -1;\r
+ for (int i = 0; i < components.size(); i++) {\r
+ Row row = (Row) components.get(i);\r
+\r
+ if (row.getValue() == null)\r
+ logger.info("value is null");\r
+ else\r
+ logger.info("{}", row.getValue().getClass());\r
+ if (selectedObject.equals(row.getValue())) {\r
+ pos = i;\r
+ break;\r
+ }\r
+ }\r
+\r
+ if (pos > 0) {\r
+ int page = pos / itemsGrid.getPageSize();\r
+ itemsGrid.setActivePage(page);\r
+ ensureVisible(pos - itemsGrid.getPageSize() * page);\r
+ }\r
}\r
\r
public void updateAllChecked() {\r