From: Vásáry Dániel Date: Tue, 17 Jul 2018 09:07:46 +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=8fb9471c277667e3a1d59889811194a488d544c6;p=mediacube.git git-tfs-id: [tfs.userrendszerhaz.hu:8080/tfs/DefaultCollection]$/MediaCube;C31179 --- 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 7682b961..f0525321 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 @@ -93,6 +93,8 @@ public class SearchModel extends AsyncBaseModel { private int selectedPageIndex; private String mediaID; private volatile boolean preventAfterRender; + private Row lastSelectedRow; + private int positionToScroll; public SearchModel() { typeFilters = new LinkedHashMap<>(); @@ -411,7 +413,11 @@ public class SearchModel extends AsyncBaseModel { // } preventAfterRender = true; - ensureVisible(itemsGrid.getPageSize() * itemsGrid.getActivePage()); + if (positionToScroll > -1) { + ensureVisible(positionToScroll - itemsGrid.getPageSize() * itemsGrid.getActivePage()); + positionToScroll = -1; + } else + ensureVisible(itemsGrid.getPageSize() * itemsGrid.getActivePage()); preventAfterRender = false; } @@ -443,6 +449,15 @@ public class SearchModel extends AsyncBaseModel { selectedPageIndex = itemsGrid.getActivePage(); highlight(this.selectedObject, true); + List components = itemsGrid.getRows().getChildren(); + for (Component obj : components) { + Row row = (Row) obj; + if (selectedObject.equals(row.getValue())) { + lastSelectedRow = row; + break; + } + } + //lastSelectedRow.getUuid() logger.info(itemsGrid.getActivePage()); } @@ -501,25 +516,14 @@ public class SearchModel extends AsyncBaseModel { @Command // @NotifyChange("itemsGrid") public void showInResults() { - 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 (lastSelectedRow == null) + return; - if (pos > 0) { - int page = pos / itemsGrid.getPageSize(); + List components = itemsGrid.getRows().getChildren(); + positionToScroll = components.indexOf(lastSelectedRow); + if (positionToScroll > -1) { + int page = positionToScroll / itemsGrid.getPageSize(); itemsGrid.setActivePage(page); - ensureVisible(pos - itemsGrid.getPageSize() * page); } }