ref #8648: default handling in name details preference - continue
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / databaseAdmin / preferencePage / GeneralAdminPreferencePage.java
index fdfa74c71f89a267a7a674967135d0edc948dc66..54235a6518c2885b728e285aff17ac3284afab49 100755 (executable)
@@ -14,7 +14,6 @@ import eu.etaxonomy.cdm.model.metadata.CdmPreference;
 import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
 import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
-import eu.etaxonomy.taxeditor.preference.EditorPreferencePredicate;
 import eu.etaxonomy.taxeditor.preference.GeneralPreferencePage;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
@@ -36,22 +35,29 @@ public class GeneralAdminPreferencePage extends GeneralPreferencePage implements
     @Override
     public boolean performOk() {
 
-
+        if (!isApply()){
+            return true;
+        }
        if (controller != null){
            IPreferenceService service = controller.getPreferenceService();
+           CdmPreference pref;
+           if (isShowIOMenu == null && isAllowOverrideShowIOMenu){
+               service.remove(CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowImportExportMenu));
+           }else{
+               pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowImportExportMenu, isShowIOMenu!= null? Boolean.toString(this.isShowIOMenu):null);
+               pref.setAllowOverride(isAllowOverrideShowIOMenu);
+               service.set(pref);
+           }
+
+           if(isShowCheckListPerspective == null && isAllowOverrideShowCheckListPerspective){
+               service.remove(CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowChecklistPerspective));
+           }else{
+               pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowChecklistPerspective, isShowCheckListPerspective != null?Boolean.toString(this.isShowCheckListPerspective): null);
+               pref.setAllowOverride(isAllowOverrideShowCheckListPerspective);
+               service.set(pref);
+           }
+
 
-           CdmPreference pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowImportExportMenu, Boolean.toString(this.isShowIOMenu));
-           pref.setAllowOverride(isAllowOverrideShowIOMenu);
-           service.set(pref);
-//           pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowMediaView, Boolean.toString(this.isShowMediaView));
-//           pref.setAllowOverride(isAllowOverrideShowMediaView);
-//           service.set(pref);
-           pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowChecklistPerspective, Boolean.toString(this.isShowCheckListPerspective));
-           pref.setAllowOverride(isAllowOverrideShowCheckListPerspective);
-           service.set(pref);
-           pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowTaxonNodeWizard, Boolean.toString(this.isShowTaxonNodeWizard));
-           pref.setAllowOverride(isAllowOverrideShowTaxonNodeWizard);
-           service.set(pref);
            PreferencesUtil.updateDBPreferences();
 
 
@@ -68,10 +74,10 @@ public class GeneralAdminPreferencePage extends GeneralPreferencePage implements
           PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowImportExportMenu);
           CdmPreference pref = service.find(key);
           if (pref != null){
-              isShowIOMenu = Boolean.valueOf(pref.getValue());
+              isShowIOMenu = pref.getValue()!= null?Boolean.valueOf(pref.getValue()): null;
               isAllowOverrideShowIOMenu = pref.isAllowOverride();
           }else{
-              isShowIOMenu = Boolean.valueOf(EditorPreferencePredicate.ShowImportExportMenu.getDefaultValue().toString());
+              isShowIOMenu = null;
               isAllowOverrideShowIOMenu = true;
           }
 
@@ -81,31 +87,48 @@ public class GeneralAdminPreferencePage extends GeneralPreferencePage implements
 //              isShowMediaView = Boolean.valueOf(pref.getValue());
 //              isAllowOverrideShowMediaView = pref.isAllowOverride();
 //          }else{
-//              isShowMediaView = Boolean.valueOf(EditorPreferencePredicate.ShowMediaView.getDefaultValue().toString());
+//              isShowMediaView = Boolean.valueOf(PreferencePredicate.ShowMediaView.getDefaultValue().toString());
 //              isAllowOverrideShowMediaView = true;
 //          }
 
           key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowChecklistPerspective);
           pref = service.find(key);
           if (pref != null){
-              isShowCheckListPerspective = Boolean.valueOf(pref.getValue());
+              isShowCheckListPerspective = pref.getValue()!= null?Boolean.valueOf(pref.getValue()): null;
               isAllowOverrideShowCheckListPerspective = pref.isAllowOverride();
           }else{
-              isShowCheckListPerspective = Boolean.valueOf(EditorPreferencePredicate.ShowChecklistPerspective.getDefaultValue().toString());
+              isShowCheckListPerspective = null;
               isAllowOverrideShowCheckListPerspective = true;
           }
 
           key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowTaxonNodeWizard);
           pref = service.find(key);
-          if (pref != null){
-              isShowTaxonNodeWizard = Boolean.valueOf(pref.getValue());
-              isAllowOverrideShowTaxonNodeWizard = pref.isAllowOverride();
-          }else{
-              isShowTaxonNodeWizard = Boolean.valueOf(EditorPreferencePredicate.ShowTaxonNodeWizard.getDefaultValue().toString());
-              isAllowOverrideShowTaxonNodeWizard = true;
-          }
+//          if (pref != null){
+//              isShowTaxonNodeWizard = pref.getValue() != null?Boolean.valueOf(pref.getValue()): null;
+//              isAllowOverrideShowTaxonNodeWizard = pref.isAllowOverride();
+//          }else{
+//              isShowTaxonNodeWizard = null;
+//              isAllowOverrideShowTaxonNodeWizard = true;
+//          }
       }
 
     }
 
+    @Override
+    protected void performDefaults() {
+        isShowIOMenu = null;
+        isShowCheckListPerspective = null;
+        //isShowTaxonNodeWizard = null;
+
+
+        isAllowOverrideShowIOMenu = true;
+
+
+        isAllowOverrideShowCheckListPerspective = true;
+
+        //isAllowOverrideShowTaxonNodeWizard = true;
+        setSelections();
+        super.performDefaults();
+    }
+
 }