Author: fmartelli Date: Fri Mar 15 10:08:22 2013 New Revision: 1456853 URL: http://svn.apache.org/r1456853 Log: SYNCOPE-198: fixed reordering mapping item list for resources ...
Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/ResourceMappingPanel.java Modified: syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/ResourceMappingPanel.java URL: http://svn.apache.org/viewvc/syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/ResourceMappingPanel.java?rev=1456853&r1=1456852&r2=1456853&view=diff ============================================================================== --- syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/ResourceMappingPanel.java (original) +++ syncope/trunk/console/src/main/java/org/apache/syncope/console/pages/panels/ResourceMappingPanel.java Fri Mar 15 10:08:22 2013 @@ -21,6 +21,7 @@ package org.apache.syncope.console.pages import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; +import java.util.Comparator; import java.util.HashSet; import java.util.List; import java.util.Set; @@ -120,7 +121,7 @@ public class ResourceMappingPanel extend /** * All mappings. */ - private final ListView mappings; + private final ListView<MappingItemTO> mappings; /** * External resource to be updated. @@ -235,6 +236,41 @@ public class ResourceMappingPanel extend passwordLabel.setVisible(false); } + Collections.sort(getMapping().getItems(), new Comparator<MappingItemTO>() { + + @Override + public int compare(final MappingItemTO left, final MappingItemTO right) { + if (left == null && right == null) { + return 0; + } else if (left == null) { + return 1; + } else if (right == null) { + return -1; + } else if (left.getPurpose() == MappingPurpose.BOTH && right.getPurpose() != MappingPurpose.BOTH) { + return -1; + } else if (left.getPurpose() != MappingPurpose.BOTH && right.getPurpose() == MappingPurpose.BOTH) { + return 1; + } else if (left.getPurpose() == MappingPurpose.PROPAGATION + && right.getPurpose() == MappingPurpose.SYNCHRONIZATION) { + return -1; + } else if (left.getPurpose() == MappingPurpose.SYNCHRONIZATION + && right.getPurpose() == MappingPurpose.PROPAGATION) { + return 1; + } else if (left.isAccountid()) { + return -1; + } else if (right.isAccountid()) { + return 1; + } else if (left.isPassword()) { + return -1; + } else if (right.isPassword()) { + return 1; + } else { + return left.getIntAttrName().compareTo(right.getIntAttrName()); + } + } + }); + + mappings = new ListView<MappingItemTO>("mappings", getMapping().getItems()) { private static final long serialVersionUID = 4949588177564901031L;