merge-update from trunk
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / view / derivateSearch / DerivateLabelProvider.java
index 055880fa63e2e720de579eb22c7036932ba028c6..6ea97d966a9dda6a98b0a0e2239d29afd379fefd 100644 (file)
@@ -24,7 +24,6 @@ import eu.etaxonomy.cdm.model.common.DefinedTerm;
 import eu.etaxonomy.cdm.model.molecular.DnaSample;
 import eu.etaxonomy.cdm.model.molecular.Sequence;
 import eu.etaxonomy.cdm.model.molecular.SingleRead;
-import eu.etaxonomy.cdm.model.occurrence.Collection;
 import eu.etaxonomy.cdm.model.occurrence.DerivedUnit;
 import eu.etaxonomy.cdm.model.occurrence.FieldUnit;
 import eu.etaxonomy.cdm.model.occurrence.GatheringEvent;
@@ -126,7 +125,9 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
      * @return
      */
     public String getDerivateText(Object element){
+        TreeNode parentNode = null;
         if(element instanceof TreeNode){
+            parentNode = ((TreeNode) element).getParent();
             //unwrap specimen from TreeNode
             element = ((TreeNode) element).getValue();
         }
@@ -153,17 +154,17 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
             MediaSpecimen mediaSpecimen = (MediaSpecimen)element;
             label += mediaSpecimen.getMediaSpecimen().getTitle()!=null?mediaSpecimen.getMediaSpecimen().getTitle().getText()+", ":"[no motif]";
             label += mediaSpecimen.getMediaSpecimen().getArtist()!=null?mediaSpecimen.getMediaSpecimen().getArtist()+", ":"";
-            label += mediaSpecimen.getAccessionNumber()!=null?mediaSpecimen.getAccessionNumber()+", ":"";
-            Collection collection = mediaSpecimen.getCollection();
+            eu.etaxonomy.cdm.model.occurrence.Collection collection = mediaSpecimen.getCollection();
             if(collection!=null){
                 label += collection.getName()!=null?collection.getName()+" ":"";
+                label += collection.getCode()!=null?"("+collection.getCode()+"), ":"";
             }
+            label += mediaSpecimen.getAccessionNumber()!=null?mediaSpecimen.getAccessionNumber()+", ":"";
         }
         else if(element instanceof DnaSample
                 || (element instanceof DerivedUnit
                         && ((SpecimenOrObservationBase<?>) element).getRecordBasis()==SpecimenOrObservationType.DnaSample)){
-            //TODO implement
-            label += element.toString();
+            label += "[no sample designation]";
 
         }
         else if(element instanceof DerivedUnit){
@@ -173,12 +174,13 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
                 if(fieldUnits!=null && !fieldUnits.isEmpty()){
                     FieldUnit fieldUnit = fieldUnits.iterator().next();
                     GatheringEvent gatheringEvent = fieldUnit.getGatheringEvent();
+//                    gatheringEvent = HibernateProxyHelper.deproxy(gatheringEvent, GatheringEvent.class);
                     if(gatheringEvent!=null){
                         label += gatheringEvent.getCollector()!=null?gatheringEvent.getCollector()+", ":"";
                     }
                     label += fieldUnit.getFieldNumber()!=null?fieldUnit.getFieldNumber()+", ":"";
                 }
-                Collection collection = derivedUnit.getCollection();
+                eu.etaxonomy.cdm.model.occurrence.Collection collection = derivedUnit.getCollection();
                 if(collection!=null){
                     label += collection.getName()!=null?collection.getName()+" ":"";
                     label += collection.getCode()!=null?"("+collection.getCode()+"), ":"";
@@ -188,18 +190,22 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
             }
             else if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.TissueSample){
                 //TODO: implement
-//                kindofTissue + SampleDesignation
+                label += "kindofTissue? + [no sample designation]";
             }
         }
         else if(element instanceof Sequence){
             Sequence sequence = (Sequence)element;
-            label += "SampleDesignation?"+", ";
+            label += "[no sample designation]"+", ";
             label += sequence.getDnaMarker()!=null?sequence.getDnaMarker():"";
         }
         else if(element instanceof SingleRead){
             SingleRead singleRead = (SingleRead)element;
+            label += "[no sample designation]"+", ";
             label += singleRead.getPrimer()!=null?singleRead.getPrimer().getLabel()+", ":"";
-            label += "Marker?";
+            if(parentNode!=null && parentNode.getValue() instanceof Sequence){
+                Sequence sequence = (Sequence) parentNode.getValue();
+                label += sequence.getDnaMarker()!=null?sequence.getDnaMarker():"";
+            }
         }
         else if(element instanceof SpecimenOrObservationBase){
             SpecimenOrObservationBase<?> derivate = (SpecimenOrObservationBase<?>) element;