From f27e8ad58814c8f51afba553427883bd2dac5269 Mon Sep 17 00:00:00 2001 From: kate Date: Wed, 12 Sep 2018 14:14:43 +0200 Subject: [PATCH] fix for members popup (after refactoring) --- .../gui/api/component/ChooseMemberPopup.java | 15 ++++++++++++- .../component/OrgTreeMemberPopupTabPanel.java | 22 +------------------ 2 files changed, 15 insertions(+), 22 deletions(-) diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ChooseMemberPopup.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ChooseMemberPopup.java index 225ec138c2b..0f24cdefd2f 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ChooseMemberPopup.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/ChooseMemberPopup.java @@ -219,6 +219,7 @@ public WebMarkupContainer createPanel(String panelId) { @Override protected void onSelectionPerformed(AjaxRequestTarget target, IModel> rowModel){ + selectedOrgsListUpdate(rowModel); tabLabelPanelUpdate(target); } @@ -262,7 +263,8 @@ protected T getAbstractRoleTypeObject(){ } @Override - protected void onOrgTreeCheckBoxSelectionPerformed(AjaxRequestTarget target){ + protected void onSelectionPerformed(AjaxRequestTarget target, IModel> rowModel){ + selectedOrgsListUpdate(rowModel); tabLabelPanelUpdate(target); } @@ -342,6 +344,17 @@ protected ObjectQuery createInOidQuery(List selectedObjectsList){ return ObjectQuery.createObjectQuery(InOidFilter.createInOid(oids)); } + private void selectedOrgsListUpdate(IModel> rowModel){ + if (rowModel == null){ + return; + } + if (rowModel.getObject().isSelected()){ + selectedOrgsList.add(rowModel.getObject().getValue()); + } else { + selectedOrgsList.removeIf((OrgType org) -> org.getOid().equals(rowModel.getObject().getValue().getOid())); + } + } + private IModel getAddButtonTitleModel(){ return new LoadableModel(true) { @Override diff --git a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/OrgTreeMemberPopupTabPanel.java b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/OrgTreeMemberPopupTabPanel.java index 619e7305b1d..c0e1266e198 100644 --- a/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/OrgTreeMemberPopupTabPanel.java +++ b/gui/admin-gui/src/main/java/com/evolveum/midpoint/gui/api/component/OrgTreeMemberPopupTabPanel.java @@ -50,25 +50,7 @@ ID_ORG_TREE_VIEW_PANEL, true, getPageBase()) { @Override protected void onOrgTreeCheckBoxSelectionPerformed(AjaxRequestTarget target, IModel> rowModel) { - if (rowModel != null && rowModel.getObject() != null) { - List preselectedObjects = getPreselectedObjects(); - if (preselectedObjects == null) { - preselectedObjects = new ArrayList<>(); - } - boolean isAlreadyInList = false; - Iterator it = preselectedObjects.iterator(); - while (it.hasNext()){ - OrgType org = it.next(); - if (org.getOid().equals(rowModel.getObject().getValue().getOid())) { - isAlreadyInList = true; - it.remove(); - } - } - if (!isAlreadyInList){ - preselectedObjects.add(rowModel.getObject().getValue()); - } - } - OrgTreeMemberPopupTabPanel.this.onOrgTreeCheckBoxSelectionPerformed(target); + onSelectionPerformed(target, rowModel); } @Override @@ -99,6 +81,4 @@ protected List getSelectedObjectsList(){ protected ObjectTypes getObjectType(){ return ObjectTypes.ORG; } - - protected void onOrgTreeCheckBoxSelectionPerformed(AjaxRequestTarget target){} }