From 5e25152576b2155028377d94d136f7179e655e06 Mon Sep 17 00:00:00 2001 From: Patrick Plitzner Date: Tue, 17 Nov 2015 18:51:15 +0100 Subject: [PATCH] Add determination info to DerivateLabelProvider --- .../derivateSearch/DerivateLabelProvider.java | 40 +++++++++++++++++-- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateLabelProvider.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateLabelProvider.java index ad1ec3cf1..3a7c48b0c 100644 --- a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateLabelProvider.java +++ b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateLabelProvider.java @@ -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.occurrence.DeterminationEvent; 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 multiLinkSingleReads; + private static Map> determinationEvents; + private static Map> typeDesignations; private ConversationHolder conversation; @@ -235,6 +238,12 @@ public class DerivateLabelProvider extends ColumnLabelProvider { 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 fieldUnits = CdmStore.getService(IOccurrenceService.class).getFieldUnits(derivedUnit.getUuid()); //TODO : This is not generic anymore for performance reasons Set 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 - List list = typeDesignations.get(derivedUnit); - if(list!=null){ - for (SpecimenTypeDesignation specimenTypeDesignation : list) { + List typeDesignationList = typeDesignations.get(derivedUnit); + if(typeDesignationList!=null){ + for (SpecimenTypeDesignation specimenTypeDesignation : typeDesignationList) { label += "("+specimenTypeDesignation.getTypeStatus()+" of "; for (TaxonNameBase taxonNameBase : specimenTypeDesignation.getTypifiedNames()) { label += taxonNameBase+separator; @@ -270,6 +279,21 @@ public class DerivateLabelProvider extends ColumnLabelProvider { label += ")"; } } + //determination event extension + List 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 @@ -421,6 +445,16 @@ public class DerivateLabelProvider extends ColumnLabelProvider { } } DerivateLabelProvider.typeDesignations = new HashMap>(); + DerivateLabelProvider.determinationEvents = new HashMap>(); + } + + private static void addDeterminationEvent(DerivedUnit derivedUnit, DeterminationEvent determinationEvent){ + List list = determinationEvents.get(derivedUnit); + if(list==null){ + list = new ArrayList(); + } + list.add(determinationEvent); + determinationEvents.put(derivedUnit, list); } private static void addTypeDesignation(DerivedUnit derivedUnit, SpecimenTypeDesignation typeDesignation){ -- 2.30.2