From: Vásáry Dániel Date: Tue, 17 Jul 2018 08:36:35 +0000 (+0000) Subject: git-tfs-id: [http://tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube... X-Git-Url: http://git.useribm.hu/?a=commitdiff_plain;h=fa91c9514f399392e4093523eceaefcbf11737f9;p=mediacube.git git-tfs-id: [tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C31178 --- diff --git a/server/user.jobengine.osgi.server/WEB-INF/zk.xml b/server/user.jobengine.osgi.server/WEB-INF/zk.xml index b3278797..590f9ddc 100644 --- a/server/user.jobengine.osgi.server/WEB-INF/zk.xml +++ b/server/user.jobengine.osgi.server/WEB-INF/zk.xml @@ -25,9 +25,9 @@ https://www.zkoss.org/wiki/ZK_Configuration_Reference/zk.xml - - - + + user.jobengine.zk.util.LogEventInterceptor + diff --git a/server/user.jobengine.osgi.server/pages/searchitems.zul b/server/user.jobengine.osgi.server/pages/searchitems.zul index 2840eb32..542b7344 100644 --- a/server/user.jobengine.osgi.server/pages/searchitems.zul +++ b/server/user.jobengine.osgi.server/pages/searchitems.zul @@ -112,7 +112,7 @@ --> diff --git a/server/user.jobengine.osgi.server/src/user/jobengine/zk/model/SearchModel.java b/server/user.jobengine.osgi.server/src/user/jobengine/zk/model/SearchModel.java index 635e3ab9..7682b961 100644 --- a/server/user.jobengine.osgi.server/src/user/jobengine/zk/model/SearchModel.java +++ b/server/user.jobengine.osgi.server/src/user/jobengine/zk/model/SearchModel.java @@ -92,7 +92,7 @@ public class SearchModel extends AsyncBaseModel { private int selectedRowIndex; private int selectedPageIndex; private String mediaID; - private boolean showResult; + private volatile boolean preventAfterRender; public SearchModel() { typeFilters = new LinkedHashMap<>(); @@ -226,6 +226,17 @@ public class SearchModel extends AsyncBaseModel { model.selectArchivedMedia(this.selectedObject, true); } + void ensureVisible(int pos) { + registerTask(() -> { + List children = itemsGrid.getRows().getChildren(); + if (children.size() > 0) { + Component top = children.get(pos); + Clients.scrollIntoView(top); + } + }); + timer.start(); + } + public Validator getAllFilterCheckedValidator() { return allFilterCheckedValidator; } @@ -384,32 +395,24 @@ public class SearchModel extends AsyncBaseModel { @Command public void onAfterRenderGrid() { + if (preventAfterRender) + return; logger.info("onAfterRenderGrid"); - if (mediaID != null) { - selectedObject = searchResult.getElementAt(0); - highlight(selectedObject, true); - notifyChange("selectedObject", "hasLowresMediaFile", "hasTSMMediaFile", "lowresMediaFilePath"); - } else if (showResult) { - List children = itemsGrid.getRows().getChildren(); - itemsGrid.setActivePage(selectedPageIndex); - Component pos = children.get(selectedRowIndex - itemsGrid.getPageSize() * itemsGrid.getActivePage()); - Clients.scrollIntoView(pos); - showResult = false; - } - } - - @Command - public void onPagingGrid() { - logger.info("onPagingGrid"); - registerTask(() -> { - List children = itemsGrid.getRows().getChildren(); - if (children.size() > 0) { - int pos = itemsGrid.getPageSize() * itemsGrid.getActivePage(); - Component top = children.get(pos); - Clients.scrollIntoView(top); - } - }); - timer.start(); + // if (mediaID != null) { + // selectedObject = searchResult.getElementAt(0); + // highlight(selectedObject, true); + // notifyChange("selectedObject", "hasLowresMediaFile", "hasTSMMediaFile", "lowresMediaFilePath"); + // } else if (showResult) { + // List children = itemsGrid.getRows().getChildren(); + // itemsGrid.setActivePage(selectedPageIndex); + // Component pos = children.get(selectedRowIndex - itemsGrid.getPageSize() * itemsGrid.getActivePage()); + // Clients.scrollIntoView(pos); + // showResult = false; + // } + + preventAfterRender = true; + ensureVisible(itemsGrid.getPageSize() * itemsGrid.getActivePage()); + preventAfterRender = false; } @Command @@ -496,11 +499,28 @@ public class SearchModel extends AsyncBaseModel { } @Command - @NotifyChange("itemsGrid") + // @NotifyChange("itemsGrid") public void showInResults() { - logger.info("showInResults"); - showResult = true; - onAfterRenderGrid(); + List components = itemsGrid.getRows().getChildren(); + int pos = -1; + for (int i = 0; i < components.size(); i++) { + Row row = (Row) components.get(i); + + if (row.getValue() == null) + logger.info("value is null"); + else + logger.info("{}", row.getValue().getClass()); + if (selectedObject.equals(row.getValue())) { + pos = i; + break; + } + } + + if (pos > 0) { + int page = pos / itemsGrid.getPageSize(); + itemsGrid.setActivePage(page); + ensureVisible(pos - itemsGrid.getPageSize() * page); + } } public void updateAllChecked() {