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