From: Patrick Plitzner Date: Tue, 14 Jun 2016 06:33:03 +0000 (+0200) Subject: Sort root entities in specimen editor #5797 X-Git-Tag: 4.2.0^2~57 X-Git-Url: https://dev.e-taxonomy.eu/gitweb/taxeditor.git/commitdiff_plain/64aa337311a9b9055ea76f0d4e620889c7edc8ca Sort root entities in specimen editor #5797 --- diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateContentProvider.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateContentProvider.java index 27b80b47a..808d67cfe 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateContentProvider.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateContentProvider.java @@ -2,9 +2,11 @@ package eu.etaxonomy.taxeditor.view.derivateSearch; import java.util.ArrayList; import java.util.Collection; +import java.util.Comparator; import java.util.LinkedHashSet; import java.util.List; import java.util.Set; +import java.util.TreeSet; import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.TreeNode; @@ -20,7 +22,7 @@ import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType; public class DerivateContentProvider implements ITreeContentProvider { - List rootNodes; + private TreeSet rootNodes; @Override public void dispose() { @@ -45,7 +47,7 @@ public class DerivateContentProvider implements ITreeContentProvider { @Override public Object[] getElements(Object inputElement) { - rootNodes = new ArrayList(); + rootNodes = new TreeSet(new TreeNodeComparator()); if(inputElement instanceof Collection){ for (Object o: (Collection)inputElement) { if(o instanceof SpecimenOrObservationBase){ @@ -141,5 +143,25 @@ public class DerivateContentProvider implements ITreeContentProvider { } return derivates; } + + private class TreeNodeComparator implements Comparator{ + + @Override + public int compare(TreeNode o1, TreeNode o2) { + if(o1!=null && o2==null){ + return -1; + } + else if(o1==null && o2!=null){ + return 1; + } + else if(o1!=null && o2!=null){ + SpecimenOrObservationBase specimenOrObservation1 = (SpecimenOrObservationBase) o1.getValue(); + SpecimenOrObservationBase specimenOrObservation2 = (SpecimenOrObservationBase) o2.getValue(); + return specimenOrObservation1.getTitleCache().compareTo(specimenOrObservation2.getTitleCache()); + } + return 0; + } + + } }