X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=plugins%2Forg.argeo.slc.client.ui.dist%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fclient%2Fui%2Fdist%2Fcontrollers%2FDistTreeComparator.java;h=96a08812564ef8e7a4c77e1d94e3a759e3ea38e5;hb=48b6f7647f12f4b96d1914bcafc95efd7f43cc43;hp=5bfbc98a8630f55024d123b33c05b8716147269a;hpb=0d236262a853a1286b317c30d64d4692bc21c7a4;p=gpl%2Fargeo-slc.git diff --git a/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/controllers/DistTreeComparator.java b/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/controllers/DistTreeComparator.java index 5bfbc98a8..96a088125 100644 --- a/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/controllers/DistTreeComparator.java +++ b/plugins/org.argeo.slc.client.ui.dist/src/main/java/org/argeo/slc/client/ui/dist/controllers/DistTreeComparator.java @@ -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.GroupElem; +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 behaviour to enhence Distribution tree browsers */ +/** 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()) @@ -17,7 +23,7 @@ public class DistTreeComparator extends ViewerComparator { return 2; else return 5; - else if (element instanceof GroupElem) + else if (element instanceof WkspGroupElem) return 10; else if (element instanceof WorkspaceElem) return 15; @@ -36,16 +42,19 @@ public class DistTreeComparator extends ViewerComparator { String s1, s2; if (e1 instanceof DistParentElem) { - s1 = ((DistParentElem) e1).getLabel(); - s2 = ((DistParentElem) e2).getLabel(); + s1 = ((DistParentElem) e1).getName(); + s2 = ((DistParentElem) e2).getName(); } else { s1 = e1.toString(); s2 = e2.toString(); } 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); }