fix #9033: correct handling for notes when switching between status and no staus
authorKatja Luther <k.luther@bgbm.org>
Mon, 15 Jun 2020 17:52:34 +0000 (19:52 +0200)
committerKatja Luther <k.luther@bgbm.org>
Mon, 15 Jun 2020 17:52:34 +0000 (19:52 +0200)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/MultilanguageTextElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/classification/TaxonNodeDetailElement.java

index 6a4251de86e5c4216046d493aac978fce0ce6f89..deffee9450f5dd0749249a98bf3f05c5780ede90 100644 (file)
@@ -172,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);
+               }
+           }
        }
 
        /*
@@ -217,12 +219,19 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements
 
        @Override
        public void refresh(){
-           Language lang = combo_language.getSelection();
-           if (multilanguageText.get(lang)!= null){
-               this.element_languageString.setText(multilanguageText.get(combo_language.getSelection()).getText());
+           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{
-               this.element_languageString.setText(null);
+               if (multilanguageText != null && multilanguageText.get(CdmStore.getDefaultLanguage()) != null){
+                   this.element_languageString.setText(multilanguageText.get(CdmStore.getDefaultLanguage()).getText());
+               }
            }
+
        }
 
        /**
index 542ca438d6ad5dd97e0d3ef906dd648631195797..9ce1fac49852b06e7e37a5a447638ea73663b332 100644 (file)
@@ -369,6 +369,22 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<TaxonNode>
 
                if (eventSource == combo_status) {
             status = (TaxonNodeStatus) combo_status.getSelection();
+            if (status == null){
+                if (multiLanguageTextStatusNotes.getMultilanguageText() != null && !multiLanguageTextStatusNotes.getMultilanguageText().isEmpty()){
+                    multilanguageTextCache = new HashMap<>();
+                    for (LanguageString langString: multiLanguageTextStatusNotes.getMultilanguageText().values()){
+                        multilanguageTextCache.put(langString.getLanguage(), langString);
+                    }
+//                    multilanguageTextCache = multiLanguageTextStatusNotes.getMultilanguageText();
+                }
+                multiLanguageTextStatusNotes.setMultilanguageText(new HashMap<>());
+//                multiLanguageTextStatusNotes.refresh();
+
+            }else if (multilanguageTextCache != null ){
+
+                multiLanguageTextStatusNotes.setMultilanguageText(multilanguageTextCache);
+                multilanguageTextCache = null;
+            }
             if (!isCreateNew()){
                 getEntity().setStatus(status);
                 if (status == null){
@@ -384,17 +400,7 @@ public class TaxonNodeDetailElement extends AbstractCdmDetailElement<TaxonNode>
                 }
             }
 
-            if (status == null){
-                if (multiLanguageTextStatusNotes.getMultilanguageText() != null && !multiLanguageTextStatusNotes.getMultilanguageText().isEmpty()){
-                    multilanguageTextCache = multiLanguageTextStatusNotes.getMultilanguageText();
-                }
-                multiLanguageTextStatusNotes.setMultilanguageText(new HashMap<>());
-                multiLanguageTextStatusNotes.refresh();
 
-            }else if (multilanguageTextCache != null ){
-                multiLanguageTextStatusNotes.setMultilanguageText(multilanguageTextCache);
-                multilanguageTextCache = null;
-            }
             multiLanguageTextStatusNotes.setEnabled(status != null);
 
             complete = true;