Merge branch 'release/5.18.0'
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / element / MultilanguageTextElement.java
index 11a1e21d5a1baa0c85ba535b5a69420ee89d3633..58d7f85fece8a2a787307371cf2cfe3836667e91 100644 (file)
@@ -1,4 +1,3 @@
-// $Id$
 /**
  * Copyright (C) 2007 EDIT
  * European Distributed Institute of Taxonomy
@@ -13,6 +12,7 @@ package eu.etaxonomy.taxeditor.ui.element;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -28,14 +28,12 @@ import org.eclipse.swt.widgets.Button;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.common.LanguageString;
 import eu.etaxonomy.cdm.model.common.MultilanguageTextHelper;
-import eu.etaxonomy.cdm.model.common.TermType;
+import eu.etaxonomy.cdm.model.term.TermType;
 import eu.etaxonomy.taxeditor.model.DefaultTermComparator;
-import eu.etaxonomy.taxeditor.model.ImageResources;
 import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
-import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
+import eu.etaxonomy.taxeditor.ui.combo.term.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.translation.TranslationWizard;
 
 /**
@@ -67,7 +65,7 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements
                public void widgetSelected(SelectionEvent e) {
                        Map<Language, LanguageString> multilanguageText = getMultilanguageText();
 
-                       if (multilanguageText.isEmpty()){
+                       if (multilanguageText==null || multilanguageText.isEmpty()){
                                MessagingUtils.warningDialog("No text to translate", getClass(), "The text is empty and therefore can not be translated");
                                return;
                        }
@@ -89,7 +87,7 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements
        protected LanguageStringWithLabelElement element_languageString;
 
        private Button button;
-       
+
 //     private Button removeRepresentation;
 
        private Map<Language, LanguageString> multilanguageText;
@@ -174,13 +172,15 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements
        /** {@inheritDoc} */
        @Override
        public void widgetSelected(SelectionEvent e) {
-               Language selectedLanguage = combo_language.getSelection();
-               if (selectedLanguage != null) {
-                       LanguageString selectedLanguageString = getMultilanguageText().get(
-                                       selectedLanguage);
-
-                       element_languageString.setLanguageString(selectedLanguageString);
-               }
+           if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
+               Language selectedLanguage = combo_language.getSelection();
+               if (selectedLanguage != null) {
+                       LanguageString selectedLanguageString = getMultilanguageText().get(
+                                       selectedLanguage);
+
+                       element_languageString.setLanguageString(selectedLanguageString);
+               }
+           }
        }
 
        /*
@@ -214,6 +214,24 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements
                        }
                        updateControls();
                }
+
+       }
+
+       @Override
+       public void refresh(){
+           if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
+               Language lang = combo_language.getSelection();
+               if (multilanguageText.get(lang)!= null){
+                   this.element_languageString.setText(multilanguageText.get(combo_language.getSelection()).getText());
+               }else{
+                   this.element_languageString.setText(null);
+               }
+           }else{
+               if (multilanguageText != null && multilanguageText.get(CdmStore.getDefaultLanguage()) != null){
+                   this.element_languageString.setText(multilanguageText.get(CdmStore.getDefaultLanguage()).getText());
+               }
+           }
+
        }
 
        /**
@@ -261,10 +279,26 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements
                if (eventSource == element_languageString) {
                        LanguageString languageString = ((LanguageStringWithLabelElement) eventSource)
                                        .getLanguageString();
+                       if (multilanguageText == null){
+                           multilanguageText = new HashMap<>();
+                       }
                        multilanguageText.put(languageString.getLanguage(), languageString);
                        firePropertyChangeEvent(new CdmPropertyChangeEvent(this, event));
                }
        }
-       
-       
+
+       public void setEnabled(boolean enabled){
+           if(button!=null){
+               button.setEnabled(enabled);
+           }
+           if(combo_language!=null){
+               combo_language.setEnabled(enabled);
+           }
+           element_languageString.setEnabled(enabled);
+       }
+
+       public void setIndent(int indent){
+        this.element_languageString.setIndent(indent);
+    }
+
 }