avoid NPE in getLastSelectedReferences
authorKatja Luther <k.luther@bgbm.org>
Wed, 6 Jun 2018 13:03:53 +0000 (15:03 +0200)
committerKatja Luther <k.luther@bgbm.org>
Wed, 6 Jun 2018 13:03:53 +0000 (15:03 +0200)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/IPreferenceKeys.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PreferencesUtil.java

index 2e847ebb4725039293e5b65b1daa903757e9b433..d1d2ca6bdc3871d791b44df7453734dd42479d12 100644 (file)
@@ -141,6 +141,7 @@ public interface IPreferenceKeys {
     public static final String DISTRIBUTION_AREA_OCCURENCE_STATUS = "eu.etaxonomy.taxeditor.checklist.distributionAreaStatus";
 
     public static final String DISTRIBUTION_AREA_OCCURENCE_STATUS_GRAYED = "eu.etaxonomy.taxeditor.checklist.distributionAreaStatusGrayed";
+    public static final String DISTRIBUTION_VOCABULARIES = "eu.etaxonomy.taxeditor.checklist.distributionVocabularies";
 
     public static final String CHECKLIST_ID_IN_VOCABULARY = "eu.etaxonomy.taxeditor.checklist.checklistIdInVocabulary";
     public static final String CHECKLIST_SYMBOL = "eu.etaxonomy.taxeditor.checklist.checklistSymbol";
index 041d40eede2da3caad48f4b2c38a43c3ae9197d0..fc834709b97b43be659eeb37294cdc95746c01b5 100644 (file)
@@ -90,6 +90,8 @@ public class PreferencesUtil implements IPreferenceKeys {
 
        private final static Logger logger = Logger.getLogger(PreferencesUtil.class);
 
+
+
        /**
         * <p>
         * getPreferenceStore
@@ -1391,7 +1393,9 @@ public static List<String> getLastSelectedReferences() {
         IPreferenceStore preferenceStore = PreferencesUtil.getPreferenceStore();
         String lastSelected = preferenceStore.getString(PreferencesUtil.LAST_SELECTED_REFERENCES);
         List<String> result = new ArrayList<>();
-        Collections.addAll(result, lastSelected.substring(1,lastSelected.length()-1).split(", "));
+        if (!StringUtils.isBlank(lastSelected)){
+            Collections.addAll(result, lastSelected.substring(1,lastSelected.length()-1).split(", "));
+        }
         return result;
     }
 
@@ -1404,7 +1408,7 @@ public static List<String> getLastSelectedReferences() {
  * @param saveCheckedElements
  * @param saveGrayedElements
  */
-public static CdmPreference setPreferredNamedAreasForDistributionEditor(
+public static void setPreferredNamedAreasForDistributionEditor(
         String saveCheckedElements, String saveGrayedElements, boolean local) {
     if (local){
         IPreferenceStore preferenceStore = PreferencesUtil.getPreferenceStore();
@@ -1413,37 +1417,72 @@ public static CdmPreference setPreferredNamedAreasForDistributionEditor(
 
     }
     else{
-        ICdmRepository controller;
+//        ICdmRepository controller;
 
 //        PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.AvailableDistributionAreaTerms);
         CdmPreference preference = null;
 
         if (saveCheckedElements == null){
             preference = getPreferenceFromDB(PreferencePredicate.AvailableDistributionAreaTerms);
-//            preference = controller.getPreferenceService().find(key);
+
             if (preference == null){
-                return null;
+                return ;
             } else{
-                String[] uuids = StringUtils.splitByWholeSeparator(saveCheckedElements, ",");
-                List<UUID> uuidList = new ArrayList();
-                for (String uuidString: uuids){
-                    uuidList.add(UUID.fromString(uuidString.trim()));
-                }
                 getPreferenceStore().setValue(DISTRIBUTION_AREA_OCCURENCE_STATUS,
                         saveCheckedElements);
+                preference = CdmPreference.NewInstance(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.AvailableDistributionAreaTerms, saveCheckedElements);
+                setPreferenceToDB(preference);
 
-                return preference;
             }
         } else{
-            controller = CdmStore.getCurrentApplicationConfiguration();
-            preference = CdmPreference.NewInstance(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.AvailableDistributionAreaTerms, saveCheckedElements);
-            controller.getPreferenceService().set(preference);
+           preference = CdmPreference.NewInstance(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.AvailableDistributionAreaTerms, saveCheckedElements);
+           setPreferenceToDB(preference);
+           getPreferenceStore().setValue(DISTRIBUTION_AREA_OCCURENCE_STATUS,
+                    saveCheckedElements);
+
+        }
+    }
+
+}
+
+/**
+ * @param saveCheckedElements
+ * @param saveCheckedElements2
+ * @param b
+ */
+public static void setPreferredVocabulariesForDistributionEditor(String saveCheckedElements,
+        boolean local) {
+    if (local){
+        IPreferenceStore preferenceStore = PreferencesUtil.getPreferenceStore();
+        preferenceStore.setValue(PreferencesUtil.DISTRIBUTION_VOCABULARIES, saveCheckedElements);
+
+
+    }
+    else{
+        ICdmRepository controller;
+        CdmPreference preference = null;
+
+        if (saveCheckedElements == null){
+            preference = getPreferenceFromDB(PreferencePredicate.AvailableDistributionAreaVocabularies);
+
+            if (preference == null){
+                return ;
+            } else{
+                getPreferenceStore().setValue(DISTRIBUTION_VOCABULARIES,
+                        saveCheckedElements);
+                preference = CdmPreference.NewInstance(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.AvailableDistributionAreaVocabularies, saveCheckedElements);
+                setPreferenceToDB(preference);
+
+
+            }
+        } else{
+            preference = CdmPreference.NewInstance(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.AvailableDistributionAreaVocabularies, saveCheckedElements);
+            setPreferenceToDB(preference);
             getPreferenceStore().setValue(DISTRIBUTION_AREA_OCCURENCE_STATUS,
                     saveCheckedElements);
 
         }
     }
-    return null;