fix #6488 Always have any text fallback for derivative labels
authorPatrick Plitzner <p.plitzner@bgbm.org>
Fri, 10 Mar 2017 12:01:09 +0000 (13:01 +0100)
committerPatrick Plitzner <p.plitzner@bgbm.org>
Fri, 10 Mar 2017 12:01:09 +0000 (13:01 +0100)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/view/derivateSearch/DerivateLabelProvider.java

index 12887956928ff13fbcdde59ed51b382839c56f49..774cd1572af786a7458e0ecc5c0e4a278de9a99d 100644 (file)
@@ -44,6 +44,7 @@ import eu.etaxonomy.cdm.model.occurrence.GatheringEvent;
 import eu.etaxonomy.cdm.model.occurrence.MediaSpecimen;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationType;
+import eu.etaxonomy.cdm.strategy.cache.common.IdentifiableEntityDefaultCacheStrategy;
 import eu.etaxonomy.taxeditor.model.ImageResources;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
@@ -157,14 +158,23 @@ public class DerivateLabelProvider extends ColumnLabelProvider {
                 FormatKey.MEDIA_ARTIST, FormatKey.SPACE
         };
         String text = CdmFormatterFactory.format(element, formatKeys);
-        if(element instanceof IdentifiableEntity){
+        if(element instanceof MediaSpecimen){
+            formatKeys = new FormatKey[]{FormatKey.MEDIA_TITLE_CACHE};
+            text = CdmFormatterFactory.format(element, formatKeys);
+        }
+        else if(element instanceof IdentifiableEntity){
                IdentifiableEntity identifiableEntity = (IdentifiableEntity) element;
                if(identifiableEntity.isProtectedTitleCache()){
                        text = identifiableEntity.getTitleCache();
                }
         }
-        if(CdmUtils.isBlank(text)){
-               return "[-]";
+        if(CdmUtils.isBlank(text) || text.equals(IdentifiableEntityDefaultCacheStrategy.TITLE_CACHE_GENERATION_NOT_IMPLEMENTED)){
+            if(element instanceof CdmBase){
+                text = ((CdmBase) element).getUuid().toString();
+            }
+            else{
+                text = element.toString();
+            }
         }
                return text;
     }