private int selectedPageIndex;\r
private String mediaID;\r
private volatile boolean preventAfterRender;\r
+ private Row lastSelectedRow;\r
+ private int positionToScroll;\r
\r
public SearchModel() {\r
typeFilters = new LinkedHashMap<>();\r
// }\r
\r
preventAfterRender = true;\r
- ensureVisible(itemsGrid.getPageSize() * itemsGrid.getActivePage());\r
+ if (positionToScroll > -1) {\r
+ ensureVisible(positionToScroll - itemsGrid.getPageSize() * itemsGrid.getActivePage());\r
+ positionToScroll = -1;\r
+ } else\r
+ ensureVisible(itemsGrid.getPageSize() * itemsGrid.getActivePage());\r
preventAfterRender = false;\r
}\r
\r
selectedPageIndex = itemsGrid.getActivePage();\r
highlight(this.selectedObject, true);\r
\r
+ List<Component> components = itemsGrid.getRows().getChildren();\r
+ for (Component obj : components) {\r
+ Row row = (Row) obj;\r
+ if (selectedObject.equals(row.getValue())) {\r
+ lastSelectedRow = row;\r
+ break;\r
+ }\r
+ }\r
+ //lastSelectedRow.getUuid()\r
logger.info(itemsGrid.getActivePage());\r
}\r
\r
@Command\r
// @NotifyChange("itemsGrid")\r
public void showInResults() {\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
+ if (lastSelectedRow == null)\r
+ return;\r
\r
- if (pos > 0) {\r
- int page = pos / itemsGrid.getPageSize();\r
+ List<Component> components = itemsGrid.getRows().getChildren();\r
+ positionToScroll = components.indexOf(lastSelectedRow);\r
+ if (positionToScroll > -1) {\r
+ int page = positionToScroll / itemsGrid.getPageSize();\r
itemsGrid.setActivePage(page);\r
- ensureVisible(pos - itemsGrid.getPageSize() * page);\r
}\r
}\r
\r