fix problems with Nomenclatural code preference
authorKatja Luther <k.luther@bgbm.org>
Wed, 17 Jun 2020 07:34:17 +0000 (09:34 +0200)
committerKatja Luther <k.luther@bgbm.org>
Wed, 17 Jun 2020 07:35:43 +0000 (09:35 +0200)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/NomenclaturalCodePreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java

index 95d6df32046cec3d858975c616a67fa896ccfff5..e3d49dcfd9e5a9453e1aa4f8b4b650dfda5cbfa4 100755 (executable)
@@ -13,7 +13,6 @@ import java.util.List;
 import java.util.Map;\r
 import java.util.Map.Entry;\r
 \r
-import org.apache.commons.lang.StringUtils;\r
 import org.eclipse.swt.SWT;\r
 import org.eclipse.swt.custom.CLabel;\r
 import org.eclipse.swt.events.SelectionAdapter;\r
@@ -23,12 +22,8 @@ import org.eclipse.swt.widgets.Combo;
 import org.eclipse.swt.widgets.Composite;\r
 import org.eclipse.swt.widgets.Control;\r
 \r
-import eu.etaxonomy.cdm.api.application.ICdmRepository;\r
-import eu.etaxonomy.cdm.api.service.IPreferenceService;\r
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;\r
-import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;\r
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;\r
-import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;\r
 import eu.etaxonomy.cdm.model.name.NomenclaturalCode;\r
 import eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.IE4AdminPreferencePage;\r
 import eu.etaxonomy.taxeditor.l10n.Messages;\r
@@ -205,30 +200,37 @@ public class NomenclaturalCodePreferences extends CdmPreferencePage implements I
        @Override\r
     protected void getValues(){\r
            isAdminPreference = false;\r
-           ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();\r
-        if (controller != null){\r
-            IPreferenceService service = controller.getPreferenceService();\r
-            PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.NomenclaturalCode);\r
-            pref = service.find(key);\r
-            if (pref != null){\r
+           pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.NomenclaturalCode);\r
+        override = PreferencesUtil.getBooleanValue(\r
+                PreferencesUtil.prefOverrideKey(PreferencePredicate.NomenclaturalCode.getKey()), true) != null? PreferencesUtil.getBooleanValue(\r
+                        PreferencesUtil.prefOverrideKey(PreferencePredicate.NomenclaturalCode.getKey()), true):false;\r
+        String nomString = null;\r
+        if (pref != null) {\r
+            if (pref.isAllowOverride() ) {\r
+                if (override){\r
+                    nomString = PreferencesUtil.getStringValue(PreferencePredicate.NomenclaturalCode.getKey(), true);\r
+                }\r
 \r
-                allowOverride = pref.isAllowOverride();\r
-            }else{\r
-                pref = CdmPreference.NewDatabaseInstance(PreferencePredicate.NomenclaturalCode, null);\r
-                allowOverride = true;\r
+            } else {\r
+                nomString = pref.getValue() != null? String.valueOf(pref.getValue()): null;\r
             }\r
 \r
+        } else {\r
+            if(!override){\r
+                actualCode = null;\r
+            }else{\r
+                nomString = PreferencesUtil.getStringValue(PreferencePredicate.NomenclaturalCode.getKey(), true);\r
+\r
+            }\r
+            pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.NomenclaturalCode, PreferencePredicate.NomenclaturalCode.getDefaultValue() != null ?  PreferencePredicate.NomenclaturalCode.getDefaultValue().toString(): null);\r
         }\r
-        String stringValue = PreferencesUtil.getStringValue(PreferencePredicate.NomenclaturalCode.getKey(), true);\r
-        Boolean overridePref = PreferencesUtil.getOverrideForPreference(PreferencePredicate.NomenclaturalCode.getKey());\r
-        override = overridePref != null? overridePref:false;\r
-        if (!StringUtils.isBlank(stringValue) && override){\r
-            actualCode = NomenclaturalCode.fromString(stringValue);\r
-        }else{\r
-            actualCode = null;\r
+        if (nomString != null){\r
+            actualCode = NomenclaturalCode.fromString(nomString);\r
         }\r
 \r
 \r
+\r
+\r
        }\r
 \r
 }\r
index ea2347b31eb82d3bec4bfe01be7fe9606752adb0..862e2068cde2a681f23890310e02c8b51ac694ab 100644 (file)
@@ -454,22 +454,8 @@ public class PreferencesUtil implements IPreferenceKeys {
 
     public static NomenclaturalCode getPreferredNomenclaturalCode() {
 
-        CdmPreference pref = getPreferenceFromDB(PreferencePredicate.NomenclaturalCode);
-
-        String preferredCode;
-        if(pref == null || (pref.isAllowOverride() && getBooleanValue(prefOverrideKey(PreferencePredicate.NomenclaturalCode.getKey())))){
-            preferredCode = getStringValue(
-                    PreferencePredicate.NomenclaturalCode.getKey(), true);
-
-        }else{
-            preferredCode = pref.getValue();
-        }
-        if (StringUtils.isBlank(preferredCode)){
-            preferredCode = getPreferenceKey((NomenclaturalCode)PreferencePredicate.NomenclaturalCode.getDefaultValue());
-        }
-
-        return getPreferredNomenclaturalCode(preferredCode);
-
+        String nomString = getStringValue(PreferencePredicate.NomenclaturalCode.getKey());
+        return getPreferredNomenclaturalCode(nomString);
     }
 
     public static NomenclaturalCode getPreferredNomenclaturalCode(String preferenceKeyNomenclaturalCode) {