Revision 5e251525
Added by Patrick Plitzner over 8 years ago
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateLabelProvider.java | ||
---|---|---|
37 | 37 |
import eu.etaxonomy.cdm.model.name.SpecimenTypeDesignation; |
38 | 38 |
import eu.etaxonomy.cdm.model.name.TaxonNameBase; |
39 | 39 |
import eu.etaxonomy.cdm.model.occurrence.DerivedUnit; |
40 |
import eu.etaxonomy.cdm.model.occurrence.DeterminationEvent; |
|
40 | 41 |
import eu.etaxonomy.cdm.model.occurrence.FieldUnit; |
41 | 42 |
import eu.etaxonomy.cdm.model.occurrence.GatheringEvent; |
42 | 43 |
import eu.etaxonomy.cdm.model.occurrence.MediaSpecimen; |
... | ... | |
60 | 61 |
|
61 | 62 |
private static Set<SingleRead> multiLinkSingleReads; |
62 | 63 |
|
64 |
private static Map<DerivedUnit, List<DeterminationEvent>> determinationEvents; |
|
65 |
|
|
63 | 66 |
private static Map<DerivedUnit, List<SpecimenTypeDesignation>> typeDesignations; |
64 | 67 |
|
65 | 68 |
private ConversationHolder conversation; |
... | ... | |
235 | 238 |
addTypeDesignation(derivedUnit, specimenTypeDesignation); |
236 | 239 |
} |
237 | 240 |
} |
241 |
//check for determination events |
|
242 |
if(determinationEvents.get(derivedUnit)==null){ |
|
243 |
for (DeterminationEvent determinationEvent : CdmStore.getService(IOccurrenceService.class).listDeterminationEvents(derivedUnit, null, null, null, null)) { |
|
244 |
addDeterminationEvent(derivedUnit, determinationEvent); |
|
245 |
} |
|
246 |
} |
|
238 | 247 |
//java.util.Collection<FieldUnit> fieldUnits = CdmStore.getService(IOccurrenceService.class).getFieldUnits(derivedUnit.getUuid()); |
239 | 248 |
//TODO : This is not generic anymore for performance reasons |
240 | 249 |
Set<SpecimenOrObservationBase> originals = derivedUnit.getOriginals(); |
... | ... | |
257 | 266 |
String mostSignificantIdentifier = derivedUnit.getMostSignificantIdentifier(); |
258 | 267 |
label += mostSignificantIdentifier!=null?mostSignificantIdentifier+separator:emptyString; |
259 | 268 |
//type designation extension |
260 |
List<SpecimenTypeDesignation> list = typeDesignations.get(derivedUnit);
|
|
261 |
if(list!=null){
|
|
262 |
for (SpecimenTypeDesignation specimenTypeDesignation : list) {
|
|
269 |
List<SpecimenTypeDesignation> typeDesignationList = typeDesignations.get(derivedUnit);
|
|
270 |
if(typeDesignationList!=null){
|
|
271 |
for (SpecimenTypeDesignation specimenTypeDesignation : typeDesignationList) {
|
|
263 | 272 |
label += "("+specimenTypeDesignation.getTypeStatus()+" of "; |
264 | 273 |
for (TaxonNameBase taxonNameBase : specimenTypeDesignation.getTypifiedNames()) { |
265 | 274 |
label += taxonNameBase+separator; |
... | ... | |
270 | 279 |
label += ")"; |
271 | 280 |
} |
272 | 281 |
} |
282 |
//determination event extension |
|
283 |
List<DeterminationEvent> determinationEventList = determinationEvents.get(derivedUnit); |
|
284 |
if(determinationEventList!=null){ |
|
285 |
for (DeterminationEvent determinationEvent : determinationEventList) { |
|
286 |
label += "("; |
|
287 |
if(determinationEvent.getTaxon()!=null){ |
|
288 |
label += "Determined as "+determinationEvent.getTaxon(); |
|
289 |
} |
|
290 |
|
|
291 |
if(label.endsWith(separator)){ |
|
292 |
label = label.substring(0, label.length()-separator.length()); |
|
293 |
} |
|
294 |
label += ")"; |
|
295 |
} |
|
296 |
} |
|
273 | 297 |
} |
274 | 298 |
else if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.TissueSample){ |
275 | 299 |
//TissueSample should only be created by using it's own class |
... | ... | |
421 | 445 |
} |
422 | 446 |
} |
423 | 447 |
DerivateLabelProvider.typeDesignations = new HashMap<DerivedUnit, List<SpecimenTypeDesignation>>(); |
448 |
DerivateLabelProvider.determinationEvents = new HashMap<DerivedUnit, List<DeterminationEvent>>(); |
|
449 |
} |
|
450 |
|
|
451 |
private static void addDeterminationEvent(DerivedUnit derivedUnit, DeterminationEvent determinationEvent){ |
|
452 |
List<DeterminationEvent> list = determinationEvents.get(derivedUnit); |
|
453 |
if(list==null){ |
|
454 |
list = new ArrayList<DeterminationEvent>(); |
|
455 |
} |
|
456 |
list.add(determinationEvent); |
|
457 |
determinationEvents.put(derivedUnit, list); |
|
424 | 458 |
} |
425 | 459 |
|
426 | 460 |
private static void addTypeDesignation(DerivedUnit derivedUnit, SpecimenTypeDesignation typeDesignation){ |
Also available in: Unified diff
Add determination info to DerivateLabelProvider