From 414552d8cc977da45b3e1e25cc13bc3cac8a79e9 Mon Sep 17 00:00:00 2001 From: Katarina Valalikova Date: Wed, 27 Apr 2016 11:08:27 +0200 Subject: [PATCH] fixing MID-2904 - saving paging.. --- .../gui/api/component/ObjectListPanel.java | 72 ++++++++++++------- .../web/component/data/PageSizePopover.java | 5 +- .../web/page/admin/roles/PageRoles.java | 2 +- .../web/session/UserProfileStorage.java | 1 + 4 files changed, 53 insertions(+), 27 deletions(-) diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ObjectListPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ObjectListPanel.java index 8b5a0812df4..f4c8d72dcd0 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ObjectListPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ObjectListPanel.java @@ -88,11 +88,11 @@ public abstract class ObjectListPanel extends BasePanel private Collection> options; - private int pageSize = 10; +// private int pageSize = 10; private boolean multiselect; - private TableId tableId = TableId.TABLE_USERS; +// private TableId tableId = TableId.TABLE_USERS; public Class getType() { return type; @@ -107,7 +107,17 @@ public Class getType() { storageMap.put(PageReports.class, SessionStorage.KEY_REPORTS); storageMap.put(PageRoles.class, SessionStorage.KEY_ROLES); storageMap.put(PageServices.class, SessionStorage.KEY_SERVICES); + } + + private static Map tablePagingMap; + static { + tablePagingMap = new HashMap(); + tablePagingMap.put(PageResources.class, TableId.PAGE_RESOURCES_PANEL); + tablePagingMap.put(PageReports.class, TableId.PAGE_REPORTS); + tablePagingMap.put(PageRoles.class, TableId.TABLE_ROLES); + tablePagingMap.put(PageServices.class, TableId.TABLE_SERVICES); + tablePagingMap.put(PageUsers.class, TableId.TABLE_USERS); } public ObjectListPanel(String id, Class type, Collection> options, @@ -135,13 +145,13 @@ public void setProvider(BaseSortableDataProvider> provider) { this.provider = provider; } - public void setPageSize(int pageSize) { - this.pageSize = pageSize; - } - - public void setTableId(TableId tableId) { - this.tableId = tableId; - } +// public void setPageSize(int pageSize) { +// this.pageSize = pageSize; +// } +// +// public void setTableId(TableId tableId) { +// this.tableId = tableId; +// } public List getSelectedObjects() { BaseSortableDataProvider> dataProvider = getDataProvider(); @@ -166,8 +176,9 @@ public Search load() { String storageKey = getStorageKey();// storageMap.get(parentPage.getClass()); Search search = null; if (StringUtils.isNotEmpty(storageKey)) { - PageStorage storage = getSession().getSessionStorage().getPageStorageMap() - .get(storageKey); + PageStorage storage = getPageStorage(storageKey); +// getSession().getSessionStorage().getPageStorageMap() +// .get(storageKey); if (storage != null) { search = storage.getSearch(); } @@ -194,8 +205,9 @@ protected BaseSortableDataProvider> getProvider() { protected void saveProviderPaging(ObjectQuery query, ObjectPaging paging) { String storageKey = getStorageKey();// storageMap.get(type); if (StringUtils.isNotEmpty(storageKey)) { - PageStorage storage = getSession().getSessionStorage().getPageStorageMap() - .get(storageKey); + PageStorage storage = getPageStorage(storageKey); +// getSession().getSessionStorage().getPageStorageMap() +// .get(storageKey); if (storage != null) { storage.setPaging(paging); } @@ -232,8 +244,9 @@ private BoxedTablePanel> createTable() { provider = getProvider(); provider.setQuery(getQuery()); + TableId tableId = tablePagingMap.get(parentPage.getClass()); BoxedTablePanel> table = new BoxedTablePanel>(ID_TABLE, provider, - columns, tableId, pageSize) { + columns, tableId, parentPage.getSessionStorage().getUserProfile().getPagingSize(tableId)) { private static final long serialVersionUID = 1L; @Override @@ -256,7 +269,8 @@ protected WebMarkupContainer createButtonToolbar(String id) { table.setOutputMarkupId(true); String storageKey = getStorageKey(); if (StringUtils.isNotEmpty(storageKey)) { - PageStorage storage = getSession().getSessionStorage().getPageStorageMap().get(storageKey); + PageStorage storage = getPageStorage(storageKey); +// getSession().getSessionStorage().getPageStorageMap().get(storageKey); if (storage != null) { table.setCurrentPage(storage.getPaging()); } @@ -293,15 +307,24 @@ private String getStorageKey() { return storageMap.get(parentPage.getClass()); } + private PageStorage getPageStorage(String storageKey){ + PageStorage storage = getSession().getSessionStorage().getPageStorageMap().get(storageKey); + if (storage == null) { + storage = getSession().getSessionStorage().initPageStorage(storageKey); + } + return storage; + } + private void searchPerformed(ObjectQuery query, AjaxRequestTarget target) { BaseSortableDataProvider> provider = getDataProvider(); provider.setQuery(query); String storageKey = getStorageKey(); if (StringUtils.isNotEmpty(storageKey)) { - PageStorage storage = getSession().getSessionStorage().getPageStorageMap().get(storageKey); - if (storage == null) { - storage = getSession().getSessionStorage().initPageStorage(storageKey); - } +// PageStorage storage = getSession().getSessionStorage().getPageStorageMap().get(storageKey); +// if (storage == null) { +// storage = getSession().getSessionStorage().initPageStorage(storageKey); +// } + PageStorage storage = getPageStorage(storageKey); if (storage != null) { storage.setSearch(searchModel.getObject()); storage.setPaging(null); @@ -332,7 +355,7 @@ public void refreshTable(Class newType, AjaxRequestTarget target) { BoxedTablePanel table = getTable(); ((WebMarkupContainer) table.get("box")).addOrReplace(initSearch("header")); - table.setCurrentPage(null); +// table.setCurrentPage(null); target.add((Component) table); target.add(parentPage.getFeedbackPanel()); @@ -356,10 +379,11 @@ protected void searchPerformed(ObjectQuery query, AjaxRequestTarget target) { private void saveSearchModel() { String storageKey = getStorageKey(); if (StringUtils.isNotEmpty(storageKey)) { - PageStorage storage = getSession().getSessionStorage().getPageStorageMap().get(storageKey); - if (storage == null) { - storage = getSession().getSessionStorage().initPageStorage(storageKey); - } + PageStorage storage = getPageStorage(storageKey); +// PageStorage storage = getSession().getSessionStorage().getPageStorageMap().get(storageKey); +// if (storage == null) { +// storage = getSession().getSessionStorage().initPageStorage(storageKey); +// } if (storage != null) { storage.setSearch(searchModel.getObject()); storage.setPaging(null); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/PageSizePopover.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/PageSizePopover.java index 7cfea7973b9..a01199ef0ad 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/PageSizePopover.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/component/data/PageSizePopover.java @@ -1,5 +1,6 @@ package com.evolveum.midpoint.web.component.data; +import com.evolveum.midpoint.gui.api.component.BasePanel; import com.evolveum.midpoint.web.component.AjaxSubmitButton; import com.evolveum.midpoint.web.component.util.SimplePanel; import com.evolveum.midpoint.web.session.UserProfileStorage; @@ -17,7 +18,7 @@ /** * @author lazyman */ -public class PageSizePopover extends SimplePanel { +public class PageSizePopover extends BasePanel { private static final String ID_POP_BUTTON = "popButton"; private static final String ID_POPOVER = "popover"; @@ -28,6 +29,7 @@ public class PageSizePopover extends SimplePanel { public PageSizePopover(String id) { super(id); setRenderBodyOnly(true); + initLayout(); } @Override @@ -46,7 +48,6 @@ public void renderHead(IHeaderResponse response) { } - @Override protected void initLayout() { Button popButton = new Button(ID_POP_BUTTON); popButton.setOutputMarkupId(true); diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/PageRoles.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/PageRoles.java index 78f9de5fb55..0c6318ddfc7 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/PageRoles.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/page/admin/roles/PageRoles.java @@ -94,7 +94,7 @@ public class PageRoles extends PageAdminRoles { private IModel searchModel; public PageRoles() { - this(true); + this(false); } public PageRoles(boolean clearPagingInSession) { diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/session/UserProfileStorage.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/session/UserProfileStorage.java index dde43f9228a..bc5b61987c3 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/session/UserProfileStorage.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/web/session/UserProfileStorage.java @@ -36,6 +36,7 @@ public class UserProfileStorage implements Serializable { public enum TableId { TABLE_ROLES, TABLE_USERS, + TABLE_SERVICES, TREE_TABLE_PANEL_CHILD, TREE_TABLE_PANEL_MEMBER, TREE_TABLE_PANEL_MANAGER,