git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube...
authorMárk Mérész <USER\mark.meresz>
Tue, 17 Jul 2018 07:46:49 +0000 (07:46 +0000)
committerMárk Mérész <USER\mark.meresz>
Tue, 17 Jul 2018 07:46:49 +0000 (07:46 +0000)
server/user.jobengine.osgi.server/src/user/jobengine/zk/model/SearchModel.java

index 0d43bc1996a1f2fb4fb96c5d725b800c576d7f21..635e3ab9c7e90d3fb995f8d201f4bf6f78e8bb74 100644 (file)
@@ -29,6 +29,7 @@ import org.zkoss.zk.ui.event.MouseEvent;
 import org.zkoss.zk.ui.event.SortEvent;\r
 import org.zkoss.zk.ui.select.Selectors;\r
 import org.zkoss.zk.ui.select.annotation.Wire;\r
+import org.zkoss.zk.ui.util.Clients;\r
 import org.zkoss.zul.Button;\r
 import org.zkoss.zul.Checkbox;\r
 import org.zkoss.zul.Column;\r
@@ -91,6 +92,7 @@ public class SearchModel extends AsyncBaseModel {
        private int selectedRowIndex;\r
        private int selectedPageIndex;\r
        private String mediaID;\r
+       private boolean showResult;\r
 \r
        public SearchModel() {\r
                typeFilters = new LinkedHashMap<>();\r
@@ -381,20 +383,35 @@ public class SearchModel extends AsyncBaseModel {
        }\r
 \r
        @Command\r
-       @NotifyChange("itemsGrid")\r
-       public void jumpToPosition(@ContextParam(ContextType.BIND_CONTEXT) BindContext ctx) {\r
-               itemsGrid.setActivePage(selectedPageIndex);\r
-       }\r
-\r
-       @Command\r
-       public void onPaging() {\r
+       public void onAfterRenderGrid() {\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
+       }\r
+\r
        @Command\r
        public void openMetaDataDialog() {\r
                String template = "/pages/metadatadetails.zul";\r
@@ -479,8 +496,11 @@ public class SearchModel extends AsyncBaseModel {
        }\r
 \r
        @Command\r
+       @NotifyChange("itemsGrid")\r
        public void showInResults() {\r
-\r
+               logger.info("showInResults");\r
+               showResult = true;\r
+               onAfterRenderGrid();\r
        }\r
 \r
        public void updateAllChecked() {\r