Merge branch 'release/5.8.0'
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / preference / wizard / AvailableDistributionPerAreaStatusWizard.java
index a2605d622709b8f2e3a8bbb8bf95e10b0a631530..ccb9c4b72ac63fa26594459995525f2ec6a2b3ca 100755 (executable)
@@ -19,7 +19,10 @@ import eu.etaxonomy.cdm.api.conversation.IConversationEnabled;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
+import eu.etaxonomy.taxeditor.event.EventUtility;
+import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
 import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.preference.CdmPreferenceCache;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
 
@@ -36,9 +39,16 @@ public class AvailableDistributionPerAreaStatusWizard extends Wizard implements
     public AvailableDistributionPerAreaStatusWizard() {
         setWindowTitle(Messages.AvailableDistributionStatusWizard_WIZARD_TITLE);
         // TODO if preferenceStore has elements checked load elements in wizard
-        prefs = PreferencesUtil.getPreferencesFromDB(PreferencePredicate.AvailableDistributionPerAreaStatus);
-        if (prefs == null) {
+        CdmPreferenceCache cache = CdmPreferenceCache.instance();
+        prefs = new ArrayList<>();
+        cache.getAllTaxEditorDBPreferences();
+        List<CdmPreference> distrPrefs = cache.getAllForPredicate(PreferencePredicate.AvailableDistributionStatus.getKey());
+        if (distrPrefs != null){
+            prefs.addAll(distrPrefs);
+        }
+        if (prefs == null || prefs.isEmpty()) {
             prefs = new ArrayList();
+            prefs.add(CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionStatus, null));
         }
         aPage = new AvailableDistributionPerAreaStatusPage(Messages.AvailableDistributionStatusWizard_PAGE_TITLE, prefs, false);
 
@@ -84,8 +94,10 @@ public class AvailableDistributionPerAreaStatusWizard extends Wizard implements
         aPage.refreshActualPrefernce();
         PreferencesUtil.setPreferencesToDB(aPage.perAreaPreferences);
         PreferencesUtil.setPreferenceToDB(aPage.pref);
+
        // PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.AvailableDistributionStatus.getKey()), aPage.override);
         PreferencesUtil.firePreferencesChanged(this.getClass());
+        EventUtility.postEvent(WorkbenchEventConstants.REFRESH_DISTRIBUTION_PREFERENCES, true);
         return true;
     }