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;


Reply via email to