Repository: syncope Updated Branches: refs/heads/2_0_X a8c813a2b -> b683a7683 refs/heads/master bd6f46e9d -> 13f9e9b9b
Keep resource provision list order after editing for SYNCOPE-1154 Project: http://git-wip-us.apache.org/repos/asf/syncope/repo Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/b683a768 Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/b683a768 Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/b683a768 Branch: refs/heads/2_0_X Commit: b683a76836c1fa19170bfbf85c6330c644f7c506 Parents: a8c813a Author: Matteo Alessandroni <matteo.alessandr...@tirasa.net> Authored: Wed Jul 12 09:20:42 2017 +0200 Committer: Matteo Alessandroni <matteo.alessandr...@tirasa.net> Committed: Thu Jul 13 10:08:47 2017 +0200 ---------------------------------------------------------------------- .../client/console/rest/AnyTypeRestClient.java | 4 ++-- .../resources/ResourceProvisionPanel.java | 25 +++++++++++++++++--- 2 files changed, 24 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/syncope/blob/b683a768/client/console/src/main/java/org/apache/syncope/client/console/rest/AnyTypeRestClient.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/rest/AnyTypeRestClient.java b/client/console/src/main/java/org/apache/syncope/client/console/rest/AnyTypeRestClient.java index f422c2b..86d27c1 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/rest/AnyTypeRestClient.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/rest/AnyTypeRestClient.java @@ -75,7 +75,7 @@ public class AnyTypeRestClient extends BaseRestClient { getService(AnyTypeService.class).delete(key); } - private static class AnyTypeComparator implements Comparator<AnyTypeTO>, Serializable { + public static class AnyTypeComparator implements Comparator<AnyTypeTO>, Serializable { private static final long serialVersionUID = -8227715253094467138L; @@ -97,7 +97,7 @@ public class AnyTypeRestClient extends BaseRestClient { } } - private static class AnyTypeKeyComparator implements Comparator<String>, Serializable { + public static class AnyTypeKeyComparator implements Comparator<String>, Serializable { private static final long serialVersionUID = -7778622183107320760L; http://git-wip-us.apache.org/repos/asf/syncope/blob/b683a768/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel.java ---------------------------------------------------------------------- diff --git a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel.java b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel.java index 28b4605..33e254a 100644 --- a/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel.java +++ b/client/console/src/main/java/org/apache/syncope/client/console/wizards/resources/ResourceProvisionPanel.java @@ -21,6 +21,8 @@ package org.apache.syncope.client.console.wizards.resources; import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; +import java.util.Collections; +import java.util.Comparator; import java.util.List; import org.apache.commons.collections4.IterableUtils; import org.apache.commons.collections4.IteratorUtils; @@ -33,6 +35,7 @@ import org.apache.syncope.client.console.pages.BasePage; import org.apache.syncope.client.console.panels.AbstractModalPanel; import org.apache.syncope.client.console.panels.ListViewPanel; import org.apache.syncope.client.console.panels.ListViewPanel.ListViewReload; +import org.apache.syncope.client.console.rest.AnyTypeRestClient; import org.apache.syncope.client.console.rest.ConnectorRestClient; import org.apache.syncope.client.console.rest.ResourceRestClient; import org.apache.syncope.client.console.wicket.ajax.form.IndicatorAjaxFormComponentUpdatingBehavior; @@ -193,7 +196,7 @@ public class ResourceProvisionPanel extends AbstractModalPanel<Serializable> { @Override protected void customActionCallback(final AjaxRequestTarget target) { - // change modal foter visibility + // change modal footer visibility send(ResourceProvisionPanel.this, Broadcast.BUBBLE, new BaseModal.ChangeFooterVisibilityEvent(target)); } @@ -202,7 +205,7 @@ public class ResourceProvisionPanel extends AbstractModalPanel<Serializable> { ResourceProvisionPanel.this.aboutRealmProvison.setVisible(true); target.add(ResourceProvisionPanel.this.aboutRealmProvison); - // change modal foter visibility + // change modal footer visibility send(ResourceProvisionPanel.this, Broadcast.BUBBLE, new BaseModal.ChangeFooterVisibilityEvent(target)); } @@ -211,11 +214,17 @@ public class ResourceProvisionPanel extends AbstractModalPanel<Serializable> { ResourceProvisionPanel.this.aboutRealmProvison.setVisible(true); target.add(ResourceProvisionPanel.this.aboutRealmProvison); - // change modal foter visibility + // keep list ordered - SYNCOPE-1154 + sortProvisionList(); + + // change modal footer visibility send(ResourceProvisionPanel.this, Broadcast.BUBBLE, new BaseModal.ChangeFooterVisibilityEvent(target)); } }; + // keep list ordered - SYNCOPE-1154 + sortProvisionList(); + builder.setItems(resourceTO.getProvisions()); builder.includes("anyType", "objectClass", "auxClasses"); builder.setReuseItem(false); @@ -349,6 +358,16 @@ public class ResourceProvisionPanel extends AbstractModalPanel<Serializable> { ((BasePage) pageRef.getPage()).getNotificationPanel().refresh(target); } + private void sortProvisionList() { + Collections.sort(resourceTO.getProvisions(), new Comparator<ProvisionTO>() { + + @Override + public int compare(final ProvisionTO o1, final ProvisionTO o2) { + return new AnyTypeRestClient.AnyTypeKeyComparator().compare(o1.getAnyType(), o2.getAnyType()); + } + }); + } + @Override public void onEvent(final IEvent<?> event) { if (event.getPayload() instanceof AjaxWizard.NewItemActionEvent) {