git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Tue, 17 Jul 2018 09:07:46 +0000 (09:07 +0000)
committerVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Tue, 17 Jul 2018 09:07:46 +0000 (09:07 +0000)
server/user.jobengine.osgi.server/src/user/jobengine/zk/model/SearchModel.java

index 7682b9619d43dae0368d6dfc6e3847d9597ee1bb..f05253212db6a5739f888eedee4c3d47632b077c 100644 (file)
@@ -93,6 +93,8 @@ public class SearchModel extends AsyncBaseModel {
        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
@@ -411,7 +413,11 @@ public class SearchModel extends AsyncBaseModel {
                //              }\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
@@ -443,6 +449,15 @@ public class SearchModel extends AsyncBaseModel {
                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
@@ -501,25 +516,14 @@ public class SearchModel extends AsyncBaseModel {
        @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