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;
public class DerivateContentProvider implements ITreeContentProvider {
- List<TreeNode> rootNodes;
+ private TreeSet<TreeNode> rootNodes;
@Override
public void dispose() {
@Override
public Object[] getElements(Object inputElement) {
- rootNodes = new ArrayList<TreeNode>();
+ rootNodes = new TreeSet<TreeNode>(new TreeNodeComparator());
if(inputElement instanceof Collection){
for (Object o: (Collection)inputElement) {
if(o instanceof SpecimenOrObservationBase){
}
return derivates;
}
+
+ private class TreeNodeComparator implements Comparator<TreeNode>{
+
+ @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;
+ }
+
+ }
}