Merge branch 'release/5.8.0'
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / databaseAdmin / preferencePage / NomenclaturalCodePreferences.java
index 22c22bed60179d968b60e9807917e94391e7d53e..3026a0f7faf8971d048724451ed505a970c8ed49 100755 (executable)
@@ -45,9 +45,9 @@ import eu.etaxonomy.taxeditor.store.CdmStore;
  */
 public class NomenclaturalCodePreferences extends CdmPreferencePage implements IE4AdminPreferencePage{
 
-    String actualCode = null;
-    Map<String, String>  labelAndValues;
-    Map<String, Integer> keyAndIndex;
+    NomenclaturalCode actualCode = null;
+    Map<NomenclaturalCode, String>  labelAndValues;
+    Map<NomenclaturalCode, Integer> keyAndIndex;
     Combo nomenclaturalCode;
     Button allowOverrideButton;
     boolean allowOverride;
@@ -62,10 +62,10 @@ public class NomenclaturalCodePreferences extends CdmPreferencePage implements I
             PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.NomenclaturalCode);
             CdmPreference pref = service.find(key);
             if (pref != null){
-                actualCode = pref.getValue();
+                actualCode = NomenclaturalCode.fromString(pref.getValue());
                 allowOverride = pref.isAllowOverride();
             }else{
-                actualCode = PreferencesUtil.getPreferenceKey(PreferencesUtil.getPreferredNomenclaturalCode());
+                actualCode = NomenclaturalCode.fromString(PreferencePredicate.NomenclaturalCode.getDefaultValue().toString());
                 allowOverride = true;
             }
 
@@ -85,7 +85,7 @@ public class NomenclaturalCodePreferences extends CdmPreferencePage implements I
         getLabelAndValues();
         keyAndIndex = new HashMap<>();
         Integer index = 0;
-        for (String key: labelAndValues.keySet()) {
+        for (NomenclaturalCode key: labelAndValues.keySet()) {
             nomenclaturalCode.add(labelAndValues.get(key));
             keyAndIndex.put(key, index);
             index++;
@@ -100,7 +100,7 @@ public class NomenclaturalCodePreferences extends CdmPreferencePage implements I
             public void widgetSelected(SelectionEvent evt) {
                 setApply(true);
                 String name = nomenclaturalCode.getText();
-                for (Entry<String, String> label:labelAndValues.entrySet()){
+                for (Entry<NomenclaturalCode, String> label:labelAndValues.entrySet()){
                     if (label.getValue().equals(name)){
                         actualCode = label.getKey();
                     }
@@ -125,12 +125,12 @@ public class NomenclaturalCodePreferences extends CdmPreferencePage implements I
        /**
         * @return
         */
-       private Map<String, String> getLabelAndValues() {
+       private Map<NomenclaturalCode, String> getLabelAndValues() {
                List<NomenclaturalCode> supportedCodes = NomenclaturalCodeHelper
                                .getSupportedCodes();
                labelAndValues = new HashMap<>();
                for (int i = 0; i < supportedCodes.size(); i++) {
-                       labelAndValues.put(PreferencesUtil.getPreferenceKey(supportedCodes.get(i)), NomenclaturalCodeHelper
+                       labelAndValues.put(supportedCodes.get(i), NomenclaturalCodeHelper
                     .getDescription(supportedCodes.get(i))) ;
 
                }
@@ -155,17 +155,19 @@ public class NomenclaturalCodePreferences extends CdmPreferencePage implements I
 
        @Override
         public boolean performOk() {
-           if (actualCode != null){
-               CdmPreference pref = CdmPreference.NewDatabaseInstance(PreferencePredicate.NomenclaturalCode, actualCode);
-               pref.setAllowOverride(allowOverride);
-               PreferencesUtil.setPreferredNomenclaturalCode(pref);
-           }
+           if (!isApply()){
+            return true;
+        }
+           CdmPreference pref = CdmPreference.NewDatabaseInstance(PreferencePredicate.NomenclaturalCode, actualCode.toString());
+           pref.setAllowOverride(allowOverride);
+           PreferencesUtil.setPreferredNomenclaturalCode(pref);
+
         return true;
     }
 
        @Override
        protected void performDefaults() {
-           actualCode = PreferencePredicate.NomenclaturalCode.getDefaultValue().toString();
+           actualCode = (NomenclaturalCode)PreferencePredicate.NomenclaturalCode.getDefaultValue();
            allowOverride = true;
            Integer index = keyAndIndex.get(actualCode);
         if(index!=null){