]> git.argeo.org Git - gpl/argeo-slc.git/blobdiff - plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/controllers/DistTreeComparator.java
Fix licence management
[gpl/argeo-slc.git] / plugins / org.argeo.slc.client.ui.dist / src / main / java / org / argeo / slc / client / ui / dist / controllers / DistTreeComparator.java
index d0c7066d1fd82f0118024f68bbb98c4b8377e8a1..96a08812564ef8e7a4c77e1d94e3a759e3ea38e5 100644 (file)
@@ -1,15 +1,21 @@
 package org.argeo.slc.client.ui.dist.controllers;
 
 import org.argeo.slc.client.ui.dist.model.DistParentElem;
+import org.argeo.slc.client.ui.dist.model.ModularDistVersionElem;
 import org.argeo.slc.client.ui.dist.model.RepoElem;
 import org.argeo.slc.client.ui.dist.model.WkspGroupElem;
 import org.argeo.slc.client.ui.dist.model.WorkspaceElem;
+import org.argeo.slc.client.ui.dist.utils.NameVersionComparator;
+import org.argeo.slc.client.ui.dist.utils.VersionComparator;
 import org.eclipse.jface.viewers.Viewer;
 import org.eclipse.jface.viewers.ViewerComparator;
 
 /** Specific comparator to enhance Distribution tree browsers */
 public class DistTreeComparator extends ViewerComparator {
 
+       private VersionComparator vc = new VersionComparator();
+       private NameVersionComparator nvc = new NameVersionComparator();
+
        public int category(Object element) {
                if (element instanceof RepoElem)
                        if (((RepoElem) element).inHome())
@@ -44,8 +50,11 @@ public class DistTreeComparator extends ViewerComparator {
                }
 
                if (e1 instanceof WorkspaceElem)
+                       // Reverse order for nameversions
+                       return nvc.compare(viewer, s2, s1);
+               else if (e1 instanceof ModularDistVersionElem)
                        // Reverse order for versions
-                       return s2.compareTo(s1);
+                       return vc.compare(viewer, s2, s1);
                else
                        return s1.compareTo(s2);
        }