- added update() method to DerivateView
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / view / derivateSearch / DerivateLabelProvider.java
index 5666108263e45177175c18e64f121029f6c2ea61..48f90614b793c172532498024110d8e44004fa4b 100644 (file)
@@ -9,6 +9,9 @@
 */
 package eu.etaxonomy.taxeditor.view.derivateSearch;
 
+import java.util.HashSet;
+import java.util.Set;
+
 import org.eclipse.jface.viewers.ColumnLabelProvider;
 import org.eclipse.jface.viewers.TreeNode;
 import org.eclipse.swt.graphics.Image;
@@ -26,6 +29,8 @@ import eu.etaxonomy.taxeditor.model.ImageResources;
  */
 public class DerivateLabelProvider extends ColumnLabelProvider {
 
+    private Set<SingleRead> multiLinkSingleReads = new HashSet<SingleRead>();
+
     /** {@inheritDoc} */
     @Override
     public String getText(Object element) {
@@ -56,36 +61,49 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
     @Override
     public Image getImage(Object element) {
         if(element instanceof TreeNode){
-            element = ((TreeNode) element).getValue();
-        }
-        if(element instanceof FieldUnit){
-            return ImageResources.getImage(ImageResources.FIELD_UNIT);
-        }
-        else if(element instanceof DerivedUnit){
-            DerivedUnit derivedUnit = (DerivedUnit)element;
-            if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.FieldUnit){
+            TreeNode treeNode = (TreeNode)element;
+            Object nodeValue = treeNode.getValue();
+            if(nodeValue instanceof FieldUnit){
                 return ImageResources.getImage(ImageResources.FIELD_UNIT);
             }
-            else if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.DnaSample){
-                return ImageResources.getImage(ImageResources.DNA_SAMPLE_DERIVATE);
-            }
-            else if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.TissueSample){
-                return ImageResources.getImage(ImageResources.TISSUE_SAMPLE_DERIVATE);
+            else if(nodeValue instanceof DerivedUnit){
+                DerivedUnit derivedUnit = (DerivedUnit)nodeValue;
+                if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.FieldUnit){
+                    return ImageResources.getImage(ImageResources.FIELD_UNIT);
+                }
+                else if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.DnaSample){
+                    return ImageResources.getImage(ImageResources.DNA_SAMPLE_DERIVATE);
+                }
+                else if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.TissueSample){
+                    return ImageResources.getImage(ImageResources.TISSUE_SAMPLE_DERIVATE);
+                }
+                else if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.PreservedSpecimen){
+                    return ImageResources.getImage(ImageResources.SPECIMEN_DERIVATE);
+                }
+                else if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.StillImage){
+                    return ImageResources.getImage(ImageResources.ARTWORK_DERIVATE);
+                }
             }
-            else if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.PreservedSpecimen){
-                return ImageResources.getImage(ImageResources.SPECIMEN_DERIVATE);
+            else if(nodeValue instanceof Sequence){
+                return ImageResources.getImage(ImageResources.SEQUENCE_DERIVATE);
             }
-            else if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.StillImage){
-                return ImageResources.getImage(ImageResources.ARTWORK_DERIVATE);
+            else if(nodeValue instanceof SingleRead){
+                if(multiLinkSingleReads.contains(nodeValue)){
+                    return ImageResources.getImage(ImageResources.SINGLE_READ_DERIVATE_MULTILINK);
+                }
+                else{
+                    return ImageResources.getImage(ImageResources.SINGLE_READ_DERIVATE);
+                }
             }
         }
-        else if(element instanceof Sequence){
-            return ImageResources.getImage(ImageResources.SEQUENCE_DERIVATE);
-        }
-        else if(element instanceof SingleRead){
-            return ImageResources.getImage(ImageResources.SINGLE_READ_DERIVATE);
-        }
         return super.getImage(element);
     }
 
+    /**
+     * @param multiLinkSingleReads the multiLinkSingleReads to set
+     */
+    public void setMultiLinkSingleReads(Set<SingleRead> multiLinkSingleReads) {
+        this.multiLinkSingleReads = multiLinkSingleReads;
+    }
+
 }