git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Tue, 17 Jul 2018 08:36:35 +0000 (08:36 +0000)
committerVásáry Dániel <daniel.vasary@userrendszerhaz.hu>
Tue, 17 Jul 2018 08:36:35 +0000 (08:36 +0000)
server/user.jobengine.osgi.server/WEB-INF/zk.xml
server/user.jobengine.osgi.server/pages/searchitems.zul
server/user.jobengine.osgi.server/src/user/jobengine/zk/model/SearchModel.java

index b327879705ae93155090e51330223e0f5754c3ef..590f9ddccd6b961081852064b8bd960f168f47f6 100644 (file)
@@ -25,9 +25,9 @@ https://www.zkoss.org/wiki/ZK_Configuration_Reference/zk.xml
        </system-config>\r
        \r
        \r
-<!--   <listener> -->\r
-<!--       <listener-class>user.jobengine.zk.util.LogEventInterceptor</listener-class> -->\r
-<!--   </listener>      -->\r
+       <listener>\r
+           <listener-class>user.jobengine.zk.util.LogEventInterceptor</listener-class>\r
+       </listener>     \r
 <!--   <listener> -->\r
 <!--         <description>Monitor the statistic</description> -->\r
 <!--         <listener-class>org.zkoss.zk.ui.util.Statistic</listener-class> -->\r
index 2840eb32d62201013f2bf6a2497a0087d2089c00..542b7344e65c6b442851b8a8daafbc9ac54c8ad3 100644 (file)
 -->\r
                                                <grid id="itemsGrid" sizedByContent="false" span="true" vflex="true" hflex="true" mold="paging" autopaging="false"\r
                                                        model="@load(vm.searchResult)" emptyMessage="Nincs találat!" \r
-                                                       pageSize="50" onPaging="@command('onPagingGrid')"\r
+                                                       pageSize="50"\r
                                                        onAfterRender="@command('onAfterRenderGrid')"\r
                                                        style="border: none; background: white !important;" oddRowSclass="listbox-odd-style">\r
                                                        <columns>\r
index 635e3ab9c7e90d3fb995f8d201f4bf6f78e8bb74..7682b9619d43dae0368d6dfc6e3847d9597ee1bb 100644 (file)
@@ -92,7 +92,7 @@ public class SearchModel extends AsyncBaseModel {
        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
@@ -226,6 +226,17 @@ public class SearchModel extends AsyncBaseModel {
                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
@@ -384,32 +395,24 @@ public class SearchModel extends AsyncBaseModel {
 \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
@@ -496,11 +499,28 @@ public class SearchModel extends AsyncBaseModel {
        }\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