merge-update from trunk
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / view / derivateSearch / DerivateLabelProvider.java
index ba8fa96b552751ec7fba20ececd391dfbbf36a49..fc1be090d1e87a86f08ac33b6157af6a5bd60430 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;
@@ -49,19 +48,23 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
     private static DefinedTerm photoTerm = null;
     private static DefinedTerm drawingTerm = null;
     private static DefinedTerm specimenScanTerm = null;
+    private static DefinedTerm detailImageTerm = null;
 
     private static void initializeTerms() {
         List<DefinedTerm> preferredTerms = CdmStore.getTermManager().getPreferredTerms(DefinedTerm.class);
         for (DefinedTerm definedTerm : preferredTerms) {
-            if(definedTerm.getUuid().equals(UUID.fromString("04673952-dab1-42ff-b47a-5e847c350eaf"))){//photo
+            if(definedTerm.getUuid().equals(UUID.fromString("c5c59c42-f254-471e-96c6-09f459f7c903"))){
                 photoTerm = definedTerm;
             }
-            else if(definedTerm.getUuid().equals(UUID.fromString("76204a15-098f-4afe-9e8f-fa344ee3fdbb"))){//drawing
+            else if(definedTerm.getUuid().equals(UUID.fromString("669b0409-4aa4-4695-aae4-a95ed27bad4c"))){
                 drawingTerm = definedTerm;
             }
-            else if(definedTerm.getUuid().equals(UUID.fromString("c0b127d6-c849-48f9-bbc3-29e3337c1d03"))){//cover TODO temporary until new term is created
+            else if(definedTerm.getUuid().equals(UUID.fromString("acda15be-c0e2-4ea8-8783-b9b0c4ad7f03"))){
                 specimenScanTerm = definedTerm;
             }
+            else if(definedTerm.getUuid().equals(UUID.fromString("31eb8d02-bf5d-437c-bcc6-87a626445f34"))){
+                detailImageTerm = definedTerm;
+            }
         }
     }
 
@@ -86,6 +89,13 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
         return specimenScanTerm;
     }
 
+    public static DefinedTerm getDetailImageTerm(){
+        if(detailImageTerm==null){
+            initializeTerms();
+        }
+        return detailImageTerm;
+    }
+
 
     /** {@inheritDoc} */
     @Override
@@ -105,7 +115,9 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
      * @return
      */
     public static String getDerivateText(Object element){
+        TreeNode parentNode = null;
         if(element instanceof TreeNode){
+            parentNode = ((TreeNode) element).getParent();
             //unwrap specimen from TreeNode
             element = ((TreeNode) element).getValue();
         }
@@ -126,17 +138,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){
@@ -146,12 +158,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()+"), ":"";
@@ -161,18 +174,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;
@@ -214,7 +231,7 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
             else if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.PreservedSpecimen){
                 return ImageResources.getImage(ImageResources.SPECIMEN_DERIVATE);
             }
-            else if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.StillImage){
+            else if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.Media){
                 if(derivedUnit.getKindOfUnit()!=null){
                     if(derivedUnit.getKindOfUnit().equals(getArtworkTerm())){
                         return ImageResources.getImage(ImageResources.ARTWORK_DERIVATE);
@@ -225,6 +242,9 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
                     else if(derivedUnit.getKindOfUnit().equals(getSpecimenScanTerm())){
                         return ImageResources.getImage(ImageResources.SPECIMEN_SCAN_DERIVATE);
                     }
+                    else if(derivedUnit.getKindOfUnit().equals(getDetailImageTerm())){
+                        return ImageResources.getImage(ImageResources.DETAIL_IMAGE_DERIVATE);
+                    }
                 }
             }
         }