ref #8389: fix NPE and smaller issues in preferences
authorKatja Luther <k.luther@bgbm.org>
Thu, 5 Sep 2019 08:07:38 +0000 (10:07 +0200)
committerKatja Luther <k.luther@bgbm.org>
Thu, 5 Sep 2019 08:07:38 +0000 (10:07 +0200)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/AbcdImportPreference.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/NomenclaturalCodePreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/OrderPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PublishFlagLocalPreference.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/FeatureMenuPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/menu/NameFeatureMenuPreference.java

index e19dd652c8b6651490b8d37cdc00854e7aafadc7..923be22d1dff1c94e64a25555722d41e26be59e3 100755 (executable)
@@ -340,7 +340,7 @@ public class AbcdImportPreference extends CdmPreferencePage implements IE4Prefer
     @Override
     protected void performDefaults() {
         configurator = Abcd206ImportConfigurator.NewInstance(null,null);
-        override = true;
+        override = false;
         setSelections();
         setApply(true);
     }
index 18a7caef44c03cee18f10b09440fdea514594d58..c3b236cc1507a3d7ab1a55c5ba299c86a748c7d3 100755 (executable)
@@ -84,7 +84,11 @@ public class NomenclaturalCodePreferences extends CdmPreferencePage implements I
             nomenclaturalCode.add(Messages.Preference_Use_Default + " (" +PreferencePredicate.NomenclaturalCode.getDefaultValue().toString()+")", index);\r
         }else{\r
             if (pref != null){\r
-                nomenclaturalCode.add(Messages.Preference_Use_Default + " (" +pref.getValue()+")", index);\r
+                if (pref.getValue() == null){\r
+                    nomenclaturalCode.add(Messages.Preference_Use_Default + " (" +PreferencePredicate.NomenclaturalCode.getDefaultValue().toString()+")", index);\r
+                }else{\r
+                    nomenclaturalCode.add(Messages.Preference_Use_Default + " (" +pref.getValue()+")", index);\r
+                }\r
             }\r
         }\r
         index++;\r
@@ -127,11 +131,7 @@ public class NomenclaturalCodePreferences extends CdmPreferencePage implements I
                         actualCode = label.getKey();\r
                     }\r
                 }\r
-                if (isAdminPreference){\r
-//                    allowOverrideButton.setEnabled(actualCode != null);\r
-                    //if default value is selected, allow override is true\r
-                    allowOverrideButton.setSelection(allowOverride  || (actualCode == null));\r
-                }\r
+\r
 \r
 \r
             }\r
@@ -197,7 +197,6 @@ public class NomenclaturalCodePreferences extends CdmPreferencePage implements I
 \r
         if (isAdminPreference){\r
             allowOverrideButton.setSelection(allowOverride);\r
-//            allowOverrideButton.setEnabled(false);\r
         }\r
         setApply(true);\r
            super.performDefaults();\r
@@ -215,7 +214,7 @@ public class NomenclaturalCodePreferences extends CdmPreferencePage implements I
 \r
                 allowOverride = pref.isAllowOverride();\r
             }else{\r
-\r
+                pref = CdmPreference.NewDatabaseInstance(PreferencePredicate.NomenclaturalCode, null);\r
                 allowOverride = true;\r
             }\r
 \r
index ac9c63b1c6bb846a71a7e4046ed274616294ad37..7eb2a530e1394d97b750c900952e1e00a0476095 100644 (file)
@@ -186,8 +186,10 @@ public class OrderPreferences extends CdmPreferencePage implements SelectionList
             orderPref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.TaxonNodeOrder);\r
             override = PreferencesUtil.getBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.TaxonNodeOrder.getKey()));\r
             allowOverride = orderPref != null? orderPref.isAllowOverride():true;\r
-            if (orderPref == null || (allowOverride && override)) {\r
-                orderActivated = NavigatorOrderEnum.valueOf(PreferencesUtil.getStringValue(PreferencePredicate.TaxonNodeOrder.getKey()));\r
+            if (orderPref == null || allowOverride  ){\r
+                if (override){\r
+                    orderActivated = NavigatorOrderEnum.valueOf(PreferencesUtil.getStringValue(PreferencePredicate.TaxonNodeOrder.getKey()));\r
+                }\r
             }else{\r
                 orderActivated = orderPref.getValue()!= null? NavigatorOrderEnum.valueOf(orderPref.getValue()):null;\r
             }\r
index 8decd9b078e87efd3ad30851abb8814ecdf75651..02cd73d29735c9dcc1770f1b057a4f58e0ce0a6a 100644 (file)
@@ -199,7 +199,7 @@ public class PreferencesUtil implements IPreferenceKeys {
         if (value != null){
             getPreferenceStore().setValue(prefKey(name), value);
         }else{
-            getPreferenceStore().setToDefault(name);
+            getPreferenceStore().setToDefault(prefKey(name));
         }
     }
 
@@ -1221,7 +1221,11 @@ public class PreferencesUtil implements IPreferenceKeys {
     }
 
     public static void setSortNodes(NavigatorOrderEnum nodesOrder) {
-        setStringValue(PreferencePredicate.TaxonNodeOrder.getKey(), nodesOrder.key);
+        if (nodesOrder == null){
+            setStringValue(PreferencePredicate.TaxonNodeOrder.getKey(), null);
+        }else{
+            setStringValue(PreferencePredicate.TaxonNodeOrder.getKey(), nodesOrder.key);
+        }
 
     }
 
@@ -1784,32 +1788,19 @@ public class PreferencesUtil implements IPreferenceKeys {
 
         CdmPreferenceCache cache = CdmPreferenceCache.instance();
         CdmPreference pref = cache.get(PreferencePredicate.NameFeatures.getKey());
-        List<Feature> terms;
+        List<Feature> terms = new ArrayList();
         boolean override = PreferencesUtil.getBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.NameFeatures.getKey()));
-        List<UUID> uuids = PreferencesUtil.createUUIDListFromStringPref(pref.getPredicate());
-        if (uuids != null && !uuids.isEmpty()){
+        if (pref != null){
+            List<UUID> uuids = PreferencesUtil.createUUIDListFromStringPref(pref.getPredicate());
+            if (uuids != null && !uuids.isEmpty()){
+                terms = CdmStore.getTermManager().getTerms(uuids, Feature.class);
+            }
+        }
 
-            terms = CdmStore.getTermManager().getTerms(uuids, Feature.class);
-//        }else if (override){
-//            List<TermDto>  termDtos= CdmStore.getTermManager().getPreferredTerms(CdmStore.getService(IVocabularyService.class).load(VocabularyEnum.NameFeature.getUuid()));
-//            List<UUID> uuidList = new ArrayList<>();
-//
-//            for (Object term: termDtos){
-//                if (term instanceof TermDto){
-//                    uuidList.add(((TermDto)term).getUuid());
-//                }
-//            }
-//            if (!uuidList.isEmpty()){
-//                terms = CdmStore.getTermManager().getTerms(uuidList, Feature.class);
-//            }else{
-//                terms = CdmStore.getTermManager().getPreferredTerms(CdmStore.getService(IVocabularyService.class).load(VocabularyEnum.NameFeature.getUuid()));
-//            }
-//
 
 
-        }else{
-            terms = new ArrayList();
-            terms.addAll(TermStore.getTerms(CdmStore.getService(IVocabularyService.class).load(VocabularyEnum.NameFeature.getUuid()), null));
+       if (terms.isEmpty()){
+           terms.addAll(TermStore.getTerms(CdmStore.getService(IVocabularyService.class).load(VocabularyEnum.NameFeature.getUuid()), null));
 
         }
         terms.remove(Feature.PROTOLOGUE());
index 404cc2533c69315dbbf74c05d063cac9afeaadb0..a3fdf2d8986be946fea0631b9ed4f76ddbf78494 100755 (executable)
@@ -120,20 +120,22 @@ public class PublishFlagLocalPreference extends CdmPreferencePage {
 
     @Override
     public boolean performOk() {
-        if (publishBehaviour != null){
-            String text = publishFlagBehaviour.getText();
-            for (PublishEnum display: PublishEnum.values()){
-                if (text.startsWith(display.getLabel())){
-                    text = display.getKey();
-                    break;
+        if (isApply()){
+            if (publishBehaviour != null){
+                String text = publishFlagBehaviour.getText();
+                for (PublishEnum display: PublishEnum.values()){
+                    if (text.startsWith(display.getLabel())){
+                        text = display.getKey();
+                        break;
+                    }
                 }
+                PreferencesUtil.setStringValue(PreferencePredicate.DefaultBehaviourForPublishFlag.getKey(), text);
+                if (pref == null || !pref.getValue().equals(text)){
+                    PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.DefaultBehaviourForPublishFlag.getKey()), true);
+                }
+            }else{
+                PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.DefaultBehaviourForPublishFlag.getKey()), false);
             }
-            PreferencesUtil.setStringValue(PreferencePredicate.DefaultBehaviourForPublishFlag.getKey(), text);
-            if (pref == null || !pref.getValue().equals(text)){
-                PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.DefaultBehaviourForPublishFlag.getKey()), true);
-            }
-        }else{
-            PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.DefaultBehaviourForPublishFlag.getKey()), false);
         }
         return true;
     }
@@ -170,7 +172,9 @@ public class PublishFlagLocalPreference extends CdmPreferencePage {
             }
             index++;
         }
-        allowOverrideButton.setSelection(allowOverride);
+        if (isAdminPreference){
+            allowOverrideButton.setSelection(allowOverride);
+        }
         setApply(true);
         super.performDefaults();
     }
index 9e637c45ea06a16fe1bd4fe0bd2438ad843c937b..0cbfebed4e7ae1f85383568f376aad1a609fea9a 100644 (file)
@@ -51,9 +51,11 @@ public class FeatureMenuPreferences extends GeneralTermPreference{
 
     @Override
     public boolean performOk(){
-        boolean result = super.performOk();
-        if (result){
-            TermEditorInput.getPreferredTaxonFeatureTree(true);
+        if (isApply()){
+            boolean result = super.performOk();
+            if (result){
+                TermEditorInput.getPreferredTaxonFeatureTree(true);
+            }
         }
         return true;
 
index 9645d5bcea26f3c83fb7f938f0fcb06c380e349c..4cdc1307f78d610ba96d08433957fbbabd48c334 100755 (executable)
@@ -47,9 +47,11 @@ public class NameFeatureMenuPreference extends GeneralTermPreference {
 
     @Override
     public boolean performOk(){
-        boolean result = super.performOk();
-        if (result){
-            PreferencesUtil.createPreferredFeatureTreeForNameDescription();
+        if (isApply()){
+            boolean result = super.performOk();
+            if (result){
+                PreferencesUtil.createPreferredFeatureTreeForNameDescription();
+            }
         }
         return true;