#4018: fix title of defined term details if global language is not the cdm default...
authorKatja Luther <k.luther@bgbm.org>
Wed, 29 Jun 2016 09:39:24 +0000 (11:39 +0200)
committerKatja Luther <k.luther@bgbm.org>
Wed, 29 Jun 2016 09:39:24 +0000 (11:39 +0200)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/AbstractCdmDetailSection.java

index cf2a786c869a2fd781942d8c52231af1900b5fea..317549711b383b143aa26cd655b4ee3438f7b502 100644 (file)
@@ -21,8 +21,12 @@ import org.eclipse.ui.forms.widgets.ExpandableComposite;
 import org.eclipse.ui.forms.widgets.TableWrapLayout;
 
 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
+import eu.etaxonomy.cdm.model.common.DefinedTermBase;
 import eu.etaxonomy.cdm.model.common.IdentifiableEntity;
+import eu.etaxonomy.cdm.model.common.Language;
+import eu.etaxonomy.cdm.model.description.TextData;
 import eu.etaxonomy.cdm.model.occurrence.SpecimenOrObservationBase;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
@@ -127,8 +131,24 @@ public abstract class AbstractCdmDetailSection<ENTITY> extends AbstractFormSecti
 
        protected void setSectionTitle() {
                String title = "";
+               String label = "";
                if (getEntity() != null && (getEntity() instanceof IdentifiableEntity) && !(getEntity() instanceof SpecimenOrObservationBase)) {
-                       title = ": " + ((IdentifiableEntity) getEntity()).getTitleCache();
+                       if (getEntity() instanceof DefinedTermBase<?> ){
+                               label = ((DefinedTermBase<?>)getEntity()).getLabel(PreferencesUtil.getGlobalLanguage());
+                               if (label == null){
+                                       label = ((DefinedTermBase<?>)getEntity()).getLabel();
+                               }
+                               
+                       } else if (getEntity() instanceof TextData){
+                               label = ((TextData)getEntity()).getLanguageText(PreferencesUtil.getGlobalLanguage()).getText();
+                               if (label == null){
+                                       label = ((TextData)getEntity()).getLanguageText(Language.DEFAULT()).getText();
+                               }
+                       } else{
+                               label =((IdentifiableEntity) getEntity()).getTitleCache();
+                       }
+                       title = ": " + label;
+                       
                        // we have to duplicate ampersands otherwise they are treated as
                        // mnenomic (see Label.setText() documentation)
                        // see also #4302