ref #6401 Refactor comparison of specimens in factual data view
authorPatrick Plitzner <p.plitzner@bgbm.org>
Thu, 2 Feb 2017 13:06:59 +0000 (14:06 +0100)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Thu, 2 Feb 2017 13:12:36 +0000 (14:12 +0100)
 - use titleCache comparison instead of comparing the objects themselves
 - also fixes compile error for jdk1.8

eu.etaxonomy.taxeditor.editor/src/main/java/eu/etaxonomy/taxeditor/editor/view/descriptive/DescriptiveContentProvider.java

index b0aeb0f4d0b1727c19d85ae5d2cbf08d4eecbc1c..86657ea7d26641776fc597da6d13e1b17d4baa36 100644 (file)
@@ -16,7 +16,6 @@ import org.eclipse.jface.viewers.Viewer;
 import eu.etaxonomy.cdm.model.common.Marker;
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
 import eu.etaxonomy.cdm.model.common.Marker;
 import eu.etaxonomy.cdm.model.description.DescriptionBase;
 import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
-import eu.etaxonomy.cdm.model.description.Feature;
 import eu.etaxonomy.cdm.model.description.FeatureTree;
 import eu.etaxonomy.cdm.model.description.IDescribable;
 import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
 import eu.etaxonomy.cdm.model.description.FeatureTree;
 import eu.etaxonomy.cdm.model.description.IDescribable;
 import eu.etaxonomy.cdm.model.description.IndividualsAssociation;
@@ -24,7 +23,6 @@ import eu.etaxonomy.taxeditor.editor.definedterm.input.TermEditorInput;
 import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
 import eu.etaxonomy.taxeditor.model.FeatureNodeContainerTree;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.model.FeatureNodeContainer;
 import eu.etaxonomy.taxeditor.model.FeatureNodeContainerTree;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
-import eu.etaxonomy.taxeditor.store.TermStore;
 import eu.etaxonomy.taxeditor.store.UsageTermCollection;
 
 /**
 import eu.etaxonomy.taxeditor.store.UsageTermCollection;
 
 /**
@@ -94,13 +92,46 @@ public class DescriptiveContentProvider implements ITreeContentProvider {
 
                     @Override
                     public int compare(IndividualsAssociation o1, IndividualsAssociation o2) {
 
                     @Override
                     public int compare(IndividualsAssociation o1, IndividualsAssociation o2) {
-                        if(o1==null || o1.getAssociatedSpecimenOrObservation()==null){
-                            return -1;
+                        if(o1==null){
+                            if(o2==null){
+                                return 0;
+                            }
+                            else{
+                                return -1;
+                            }
                         }
                         }
-                        if(o2==null || o2.getAssociatedSpecimenOrObservation()==null){
+                        else if(o2==null){
                             return 1;
                         }
                             return 1;
                         }
-                        return o1.getAssociatedSpecimenOrObservation().compareTo(o2.getAssociatedSpecimenOrObservation());
+
+                        if(o1.getAssociatedSpecimenOrObservation()==null){
+                            if(o2.getAssociatedSpecimenOrObservation()==null){
+                                return 0;
+                            }
+                            else{
+                                return -1;
+                            }
+                        }
+                        else if(o2.getAssociatedSpecimenOrObservation()==null){
+                            return 1;
+                        }
+
+                        String titleCache1 = o1.getAssociatedSpecimenOrObservation().getTitleCache();
+                        String titleCache2 = o2.getAssociatedSpecimenOrObservation().getTitleCache();
+
+                        if(titleCache1==null){
+                            if(titleCache2==null){
+                                return 0;
+                            }
+                            else{
+                                return -1;
+                            }
+                        }
+                        if(titleCache2==null){
+                            return 1;
+                        }
+
+                        return titleCache1.compareTo(titleCache2);
                     }
                 });
                                if(showOnlyIndividualAssociations){
                     }
                 });
                                if(showOnlyIndividualAssociations){