Add determination info to DerivateLabelProvider
authorPatrick Plitzner <p.plitzner@bgbm.org>
Tue, 17 Nov 2015 17:51:15 +0000 (18:51 +0100)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Tue, 17 Nov 2015 17:51:15 +0000 (18:51 +0100)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateLabelProvider.java

index ad1ec3cf1198e5ad65c0372b6fdbb11960bd8355..3a7c48b0c54d2fae1242a5301fa0c2a6a81467c3 100644 (file)
@@ -37,6 +37,7 @@ import eu.etaxonomy.cdm.model.molecular.SingleRead;
 import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation;
 import eu.etaxonomy.cdm.model.name.TaxonNameBase;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
+import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent;
 import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
 import eu.etaxonomy.cdm.model.occurrence.GatheringEvent;
 import eu.etaxonomy.cdm.model.occurrence.MediaSpecimen;
 import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
 import eu.etaxonomy.cdm.model.occurrence.GatheringEvent;
 import eu.etaxonomy.cdm.model.occurrence.MediaSpecimen;
@@ -60,6 +61,8 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
 
     private static Set<SingleRead> multiLinkSingleReads;
 
 
     private static Set<SingleRead> multiLinkSingleReads;
 
+    private static Map<DerivedUnit, List<DeterminationEvent>> determinationEvents;
+
     private static Map<DerivedUnit, List<SpecimenTypeDesignation>> typeDesignations;
 
     private ConversationHolder conversation;
     private static Map<DerivedUnit, List<SpecimenTypeDesignation>> typeDesignations;
 
     private ConversationHolder conversation;
@@ -235,6 +238,12 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
                         addTypeDesignation(derivedUnit, specimenTypeDesignation);
                     }
                 }
                         addTypeDesignation(derivedUnit, specimenTypeDesignation);
                     }
                 }
+                //check for determination events
+                if(determinationEvents.get(derivedUnit)==null){
+                    for (DeterminationEvent determinationEvent : CdmStore.getService(IOccurrenceService.class).listDeterminationEvents(derivedUnit, null, null, null, null)) {
+                        addDeterminationEvent(derivedUnit, determinationEvent);
+                    }
+                }
                 //java.util.Collection<FieldUnit> fieldUnits = CdmStore.getService(IOccurrenceService.class).getFieldUnits(derivedUnit.getUuid());
                 //TODO : This is not generic anymore for performance reasons
                 Set<SpecimenOrObservationBase> originals = derivedUnit.getOriginals();
                 //java.util.Collection<FieldUnit> fieldUnits = CdmStore.getService(IOccurrenceService.class).getFieldUnits(derivedUnit.getUuid());
                 //TODO : This is not generic anymore for performance reasons
                 Set<SpecimenOrObservationBase> originals = derivedUnit.getOriginals();
@@ -257,9 +266,9 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
                 String mostSignificantIdentifier = derivedUnit.getMostSignificantIdentifier();
                 label += mostSignificantIdentifier!=null?mostSignificantIdentifier+separator:emptyString;
                 //type designation extension
                 String mostSignificantIdentifier = derivedUnit.getMostSignificantIdentifier();
                 label += mostSignificantIdentifier!=null?mostSignificantIdentifier+separator:emptyString;
                 //type designation extension
-                List<SpecimenTypeDesignation> list = typeDesignations.get(derivedUnit);
-                if(list!=null){
-                    for (SpecimenTypeDesignation specimenTypeDesignation : list) {
+                List<SpecimenTypeDesignation> typeDesignationList = typeDesignations.get(derivedUnit);
+                if(typeDesignationList!=null){
+                    for (SpecimenTypeDesignation specimenTypeDesignation : typeDesignationList) {
                         label += "("+specimenTypeDesignation.getTypeStatus()+" of ";
                         for (TaxonNameBase taxonNameBase : specimenTypeDesignation.getTypifiedNames()) {
                             label += taxonNameBase+separator;
                         label += "("+specimenTypeDesignation.getTypeStatus()+" of ";
                         for (TaxonNameBase taxonNameBase : specimenTypeDesignation.getTypifiedNames()) {
                             label += taxonNameBase+separator;
@@ -270,6 +279,21 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
                         label += ")";
                     }
                 }
                         label += ")";
                     }
                 }
+                //determination event extension
+                List<DeterminationEvent> determinationEventList = determinationEvents.get(derivedUnit);
+                if(determinationEventList!=null){
+                    for (DeterminationEvent determinationEvent : determinationEventList) {
+                        label += "(";
+                        if(determinationEvent.getTaxon()!=null){
+                            label += "Determined as "+determinationEvent.getTaxon();
+                        }
+
+                        if(label.endsWith(separator)){
+                            label = label.substring(0, label.length()-separator.length());
+                        }
+                        label += ")";
+                    }
+                }
             }
             else if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.TissueSample){
                 //TissueSample should only be created by using it's own class
             }
             else if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.TissueSample){
                 //TissueSample should only be created by using it's own class
@@ -421,6 +445,16 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
             }
         }
         DerivateLabelProvider.typeDesignations = new HashMap<DerivedUnit, List<SpecimenTypeDesignation>>();
             }
         }
         DerivateLabelProvider.typeDesignations = new HashMap<DerivedUnit, List<SpecimenTypeDesignation>>();
+        DerivateLabelProvider.determinationEvents = new HashMap<DerivedUnit, List<DeterminationEvent>>();
+    }
+
+    private static void addDeterminationEvent(DerivedUnit derivedUnit, DeterminationEvent determinationEvent){
+        List<DeterminationEvent> list = determinationEvents.get(derivedUnit);
+        if(list==null){
+            list = new ArrayList<DeterminationEvent>();
+        }
+        list.add(determinationEvent);
+        determinationEvents.put(derivedUnit, list);
     }
 
     private static void addTypeDesignation(DerivedUnit derivedUnit, SpecimenTypeDesignation typeDesignation){
     }
 
     private static void addTypeDesignation(DerivedUnit derivedUnit, SpecimenTypeDesignation typeDesignation){