- String label = "";
- if(element instanceof FieldUnit){
- FieldUnit fieldUnit = (FieldUnit)element;
- GatheringEvent gatheringEvent = fieldUnit.getGatheringEvent();
- if(gatheringEvent!=null){
- label += gatheringEvent.getCountry()!=null?gatheringEvent.getCountry().getLabel()+", ":"";
- label += gatheringEvent.getLocality()!=null?gatheringEvent.getLocality().getText()+", ":"";
-// label += gatheringEvent.getGatheringDate()!=null?gatheringEvent.getGatheringDate()+", ":"";
- label += gatheringEvent.getCollector()!=null?gatheringEvent.getCollector()+", ":"";
+ conversation.bind();
+
+ final String emptyString = "";
+ final String separator = " ";
+
+ String label = emptyString;
+
+ //Field Unit
+ if(derivate instanceof FieldUnit){
+ FieldUnit fieldUnit = (FieldUnit)derivate;
+ if(fieldUnit.getGatheringEvent()!=null){
+ GatheringEvent gatheringEvent = fieldUnit.getGatheringEvent();
+ if(CdmStore.getService(IOccurrenceService.class).exists(fieldUnit.getUuid())){
+ fieldUnit = (FieldUnit) CdmStore.getService(IOccurrenceService.class).load(fieldUnit.getUuid());
+ gatheringEvent = fieldUnit.getGatheringEvent();
+ }
+ label += gatheringEvent.getCountry()!=null?gatheringEvent.getCountry().getLabel()+separator:emptyString;
+ label += gatheringEvent.getLocality()!=null?gatheringEvent.getLocality().getText()+separator:emptyString;
+ label += gatheringEvent.getGatheringDate()!=null?gatheringEvent.getGatheringDate()+separator:emptyString;
+ label += gatheringEvent.getCollector()!=null?gatheringEvent.getCollector()+separator:emptyString;
+ }
+ label += fieldUnit.getFieldNumber()!=null?fieldUnit.getFieldNumber():emptyString;
+ }
+ //MediaSpecimen
+ else if(derivate instanceof MediaSpecimen){
+ MediaSpecimen mediaSpecimen = (MediaSpecimen)derivate;
+ if(mediaSpecimen.getMediaSpecimen()!=null){
+ label += mediaSpecimen.getMediaSpecimen().getTitle()!=null?mediaSpecimen.getMediaSpecimen().getTitle().getText()+separator:"[no motif]";
+ label += mediaSpecimen.getMediaSpecimen().getArtist()!=null?mediaSpecimen.getMediaSpecimen().getArtist()+separator:emptyString;
+ }
+ eu.etaxonomy.cdm.model.occurrence.Collection collection = mediaSpecimen.getCollection();
+ if(collection!=null){
+ label += collection.getName()!=null?collection.getName()+" ":emptyString;
+ label += collection.getCode()!=null?"("+collection.getCode()+")"+separator:emptyString;
+ }
+ label += mediaSpecimen.getAccessionNumber()!=null?mediaSpecimen.getAccessionNumber()+separator:emptyString;
+ label += mediaSpecimen.getBarcode()!=null?mediaSpecimen.getBarcode()+separator:emptyString;
+ }
+ //TissueSample + DnaSample
+ else if(derivate instanceof DnaSample){
+ DnaSample dnaSample = (DnaSample)derivate;
+ if(((DnaSample) derivate).getRecordBasis()==SpecimenOrObservationType.DnaSample){
+ Identifier<DnaSample> currentSampleDesignation = getCurrentSampleDesignation(dnaSample);
+ if(currentSampleDesignation!=null && currentSampleDesignation.getIdentifier()!=null){
+ label += currentSampleDesignation.getIdentifier()+separator;
+ }
+ else{
+ label += NO_SAMPLE_DESIGNATION+separator;
+ }
+ }
+ else if(((DnaSample) derivate).getRecordBasis()==SpecimenOrObservationType.TissueSample){
+ if(dnaSample.getKindOfUnit()!=null){
+ label += dnaSample.getKindOfUnit()+separator;
+ }
+ Identifier<DnaSample> currentSampleDesignation = getCurrentSampleDesignation(dnaSample);
+ if(currentSampleDesignation!=null && currentSampleDesignation.getIdentifier()!=null){
+ label += currentSampleDesignation.getIdentifier()+separator;
+ }
+ else{
+ label += NO_SAMPLE_DESIGNATION+separator;
+ }