Project

General

Profile

« Previous | Next » 

Revision 5e251525

Added by Patrick Plitzner over 8 years ago

Add determination info to DerivateLabelProvider

View differences:

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