- used most significant identifier for derivate labels
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / view / derivateSearch / DerivateLabelProvider.java
index 76bed186ea4ad880456db650e01541a817c41182..cd3960fa7f2bf8a14e8a00a8cea4c9a6f7343f59 100644 (file)
@@ -234,7 +234,8 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
                     label += collection.getName()!=null?collection.getName()+" ":emptyString;
                     label += collection.getCode()!=null?"("+collection.getCode()+"), ":emptyString;
                 }
-                label += derivedUnit.getAccessionNumber()!=null?derivedUnit.getAccessionNumber()+separator:emptyString;
+                String mostSignificantIdentifier = CdmStore.getService(IOccurrenceService.class).getMostSignificantIdentifier(derivedUnit);
+                label += mostSignificantIdentifier!=null?mostSignificantIdentifier+separator:emptyString;
                 label += derivedUnit.getBarcode()!=null?derivedUnit.getBarcode():emptyString;
             }
             else if(derivedUnit.getRecordBasis()==SpecimenOrObservationType.TissueSample){
@@ -300,50 +301,61 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
         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){
+        if(element instanceof CdmBase){
+            CdmBase cdmBase = (CdmBase)element;
+//            boolean hasCharacterData = false;
+//            if(cdmBase.isInstanceOf(SpecimenOrObservationBase.class)){
+//                SpecimenOrObservationBase specimen = HibernateProxyHelper.deproxy(cdmBase, SpecimenOrObservationBase.class);
+//                if(!CdmStore.getService(IOccurrenceService.class).getCharacterDataForSpecimen(specimen).isEmpty()){
+//                    hasCharacterData = true;
+//                    return ImageResources.getImage(ImageResources.CHARACTER_DATA_DERIVATE);
+//                }
+//            }
+            if(cdmBase.isInstanceOf(FieldUnit.class)){
                 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.Media){
-                if(derivedUnit.getKindOfUnit()!=null){
-                    if(derivedUnit.getKindOfUnit().equals(getArtworkTerm())){
-                        return ImageResources.getImage(ImageResources.ARTWORK_DERIVATE);
-                    }
-                    else if(derivedUnit.getKindOfUnit().equals(getLivingPlantPhotoTerm())){
-                        return ImageResources.getImage(ImageResources.LIVING_PLANT_PHOTO_DERIVATE);
-                    }
-                    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);
+            else if(cdmBase.isInstanceOf(DerivedUnit.class)){
+                DerivedUnit derivedUnit = (DerivedUnit)element;
+                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.Media){
+                    if(derivedUnit.getKindOfUnit()!=null){
+                        if(derivedUnit.getKindOfUnit().equals(getArtworkTerm())){
+                            return ImageResources.getImage(ImageResources.ARTWORK_DERIVATE);
+                        }
+                        else if(derivedUnit.getKindOfUnit().equals(getLivingPlantPhotoTerm())){
+                            return ImageResources.getImage(ImageResources.LIVING_PLANT_PHOTO_DERIVATE);
+                        }
+                        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);
+                        }
                     }
                 }
             }
-        }
-        else if(element instanceof Sequence){
-            return ImageResources.getImage(ImageResources.SEQUENCE_DERIVATE);
-        }
-
-        else if(element instanceof SingleRead){
-            if(multiLinkSingleReads.contains(element)){
-                return ImageResources.getImage(ImageResources.SINGLE_READ_DERIVATE_MULTILINK);
+            else if(cdmBase.isInstanceOf(Sequence.class)){
+                return ImageResources.getImage(ImageResources.SEQUENCE_DERIVATE);
             }
-            else{
-                return ImageResources.getImage(ImageResources.SINGLE_READ_DERIVATE);
+
+            else if(cdmBase.isInstanceOf(SingleRead.class)){
+                if(multiLinkSingleReads.contains(element)){
+                    return ImageResources.getImage(ImageResources.SINGLE_READ_DERIVATE_MULTILINK);
+                }
+                else{
+                    return ImageResources.getImage(ImageResources.SINGLE_READ_DERIVATE);
+                }
             }
         }
         return super.getImage(element);