adapt master to develop
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / preference / GeneralPreferencePage.java
old mode 100755 (executable)
new mode 100644 (file)
index eb3c9b6..92cb11a
@@ -11,14 +11,18 @@ package eu.etaxonomy.taxeditor.preference;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
+import org.eclipse.swt.events.SelectionListener;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.widgets.Button;
+import org.eclipse.swt.widgets.Combo;
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Label;
 
 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.l10n.Messages;
 import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
 
@@ -27,31 +31,19 @@ import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
  * @since 29.05.2018
  *
  */
-public class GeneralPreferencePage extends CdmPreferencePage {
+public class GeneralPreferencePage extends CdmPreferencePage implements SelectionListener{
 
+    protected Boolean isShowCheckListPerspective;
 
-    protected boolean isShowIOMenu;
-//    protected boolean isShowMediaView;
-    protected boolean isShowCheckListPerspective;
-    protected boolean isShowTaxonNodeWizard;
-    protected boolean isAllowOverrideShowIOMenu;
     protected boolean isAllowOverrideShowMediaView;
     protected boolean isAllowOverrideShowCheckListPerspective;
-    protected boolean isAllowOverrideShowTaxonNodeWizard;
-    protected boolean isOverrideShowIOMenu;
+
     protected boolean isOverrideShowMediaView;
     protected boolean isOverrideShowCheckListPerspective;
-    protected boolean isOverrideShowTaxonNodeWizard;
 
-    protected Button showIOMenuButton;
-    protected Button allowOverrideShowIOMenuButton;
-    protected Button showChecklistPerspectiveButton;
+    protected Combo showChecklistPerspectiveButton;
     protected Button allowOverrideShowChecklistButton;
-    protected Button showTaxonNodeWizardButton;
-    protected Button allowOverrideShowTaxonNodeWizardButton;
-    /**
-     * {@inheritDoc}
-     */
+
     @Override
     protected Control createContents(Composite parent) {
         getValues();
@@ -62,88 +54,17 @@ public class GeneralPreferencePage extends CdmPreferencePage {
         Label separator= new Label(composite, SWT.HORIZONTAL | SWT.SEPARATOR);
         separator.setLayoutData(gridData);
         separator.setVisible(false);
-        showIOMenuButton = new Button(composite, SWT.CHECK);
-        showIOMenuButton.setText(Messages.DatabasePreferncesPage_Show_IOMenu);
-        showIOMenuButton.setSelection(isShowIOMenu);
-        showIOMenuButton.addSelectionListener(new SelectionAdapter(){
-             @Override
-             public void widgetSelected(SelectionEvent e) {
-                 isShowIOMenu = showIOMenuButton.getSelection();
-                 setApply(true);
-              }
-         });
-        allowOverrideShowIOMenuButton = createAllowOverrideButton(composite);
-        if (isAdminPreference){
-            allowOverrideShowIOMenuButton.setSelection(isAllowOverrideShowIOMenu);
-            allowOverrideShowIOMenuButton.addSelectionListener(new SelectionAdapter(){
-                @Override
-                public void widgetSelected(SelectionEvent e) {
-                    isAllowOverrideShowIOMenu = allowOverrideShowIOMenuButton.getSelection();
-                    setApply(true);
-                }
-            });
-        }else{
-            allowOverrideShowIOMenuButton.setSelection(isOverrideShowIOMenu);
-            allowOverrideShowIOMenuButton.addSelectionListener(new SelectionAdapter(){
-                @Override
-                public void widgetSelected(SelectionEvent e) {
-                    isOverrideShowIOMenu = allowOverrideShowIOMenuButton.getSelection();
-                    setApply(true);
-                }
-            });
-            if (!isAllowOverrideShowIOMenu){
-                showIOMenuButton.setEnabled(false);
-                allowOverrideShowIOMenuButton.setEnabled(false);
-            }
-        }
 
-//        final Button showMediaViewButton = new Button(composite, SWT.CHECK);
-//        showMediaViewButton.setText(Messages.DatabasePreferncesPage_Show_MediaView);
-//        showMediaViewButton.setSelection(isShowMediaView);
-//        showMediaViewButton.addSelectionListener(new SelectionAdapter(){
-//             @Override
-//             public void widgetSelected(SelectionEvent e) {
-//                 isShowMediaView = showIOMenuButton.getSelection();
-//              }
-//         });
-//
-//        Button allowOverrideShowMediaViewButton = createAllowOverrideButton(composite);
-//        if (isAdminPreference){
-//            allowOverrideShowMediaViewButton.setSelection(isAllowOverrideShowMediaView);
-//            allowOverrideShowMediaViewButton.addSelectionListener(new SelectionAdapter(){
-//                @Override
-//                public void widgetSelected(SelectionEvent e) {
-//                    isAllowOverrideShowMediaView = allowOverrideShowMediaViewButton.getSelection();
-//                }
-//            });
-//        }else{
-//            allowOverrideShowMediaViewButton.setSelection(isOverrideShowMediaView);
-//            allowOverrideShowMediaViewButton.addSelectionListener(new SelectionAdapter(){
-//                @Override
-//                public void widgetSelected(SelectionEvent e) {
-//                    isOverrideShowMediaView = allowOverrideShowMediaViewButton.getSelection();
-//                }
-//            });
-//            if (!isAllowOverrideShowMediaView){
-//                showMediaViewButton.setEnabled(false);
-//                allowOverrideShowMediaViewButton.setEnabled(false);
-//            }
-//        }
-
-        showChecklistPerspectiveButton = new Button(composite, SWT.CHECK);
-        showChecklistPerspectiveButton.setText(Messages.DatabasePreferncesPage_Show_ChecklistPerspective);
-        showChecklistPerspectiveButton.setSelection(isShowCheckListPerspective);
-        showChecklistPerspectiveButton.addSelectionListener(new SelectionAdapter(){
-             @Override
-             public void widgetSelected(SelectionEvent e) {
-                 isShowCheckListPerspective = showChecklistPerspectiveButton.getSelection();
-                 setApply(true);
-              }
-         });
-
-        allowOverrideShowChecklistButton = createAllowOverrideButton(composite);
+
+
+        showChecklistPerspectiveButton = createBooleanCombo(composite, SHOW, DO_NOT_SHOW, PreferencePredicate.ShowChecklistPerspective, "Set Checklist Perspective as Default Perspective",
+                isAdminPreference);
+
+        showChecklistPerspectiveButton.addSelectionListener(this);
+
+
         if (isAdminPreference){
-            allowOverrideShowChecklistButton.setSelection(isAllowOverrideShowCheckListPerspective);
+            allowOverrideShowChecklistButton = createAllowOverrideButton(composite);
             allowOverrideShowChecklistButton.addSelectionListener(new SelectionAdapter(){
                 @Override
                 public void widgetSelected(SelectionEvent e) {
@@ -151,58 +72,9 @@ public class GeneralPreferencePage extends CdmPreferencePage {
                     setApply(true);
                 }
             });
-        }else{
-            allowOverrideShowChecklistButton.setSelection(isOverrideShowCheckListPerspective);
-            allowOverrideShowChecklistButton.addSelectionListener(new SelectionAdapter(){
-                @Override
-                public void widgetSelected(SelectionEvent e) {
-                    isOverrideShowCheckListPerspective = allowOverrideShowChecklistButton.getSelection();
-                    setApply(true);
-                }
-            });
-            if (!isAllowOverrideShowCheckListPerspective){
-                showChecklistPerspectiveButton.setEnabled(false);
-                allowOverrideShowChecklistButton.setEnabled(false);
-            }
-        }
-
-        showTaxonNodeWizardButton = new Button(composite, SWT.CHECK);
-        showTaxonNodeWizardButton.setText(Messages.DatabasePreferncesPage_Show_TaxonNodeWizard);
-        showTaxonNodeWizardButton.setSelection(isShowTaxonNodeWizard);
-        showTaxonNodeWizardButton.addSelectionListener(new SelectionAdapter(){
-             @Override
-             public void widgetSelected(SelectionEvent e) {
-                 isShowTaxonNodeWizard = showTaxonNodeWizardButton.getSelection();
-                 setApply(true);
-              }
-         });
-
-        allowOverrideShowTaxonNodeWizardButton = createAllowOverrideButton(composite);
-        if (isAdminPreference){
-            allowOverrideShowTaxonNodeWizardButton.setSelection(isAllowOverrideShowTaxonNodeWizard);
-            allowOverrideShowTaxonNodeWizardButton.addSelectionListener(new SelectionAdapter(){
-                @Override
-                public void widgetSelected(SelectionEvent e) {
-                    isAllowOverrideShowTaxonNodeWizard = allowOverrideShowTaxonNodeWizardButton.getSelection();
-                    setApply(true);
-                }
-            });
-        }else{
-            allowOverrideShowTaxonNodeWizardButton.setSelection(isOverrideShowTaxonNodeWizard);
-            allowOverrideShowTaxonNodeWizardButton.addSelectionListener(new SelectionAdapter(){
-                @Override
-                public void widgetSelected(SelectionEvent e) {
-                    isOverrideShowTaxonNodeWizard = allowOverrideShowTaxonNodeWizardButton.getSelection();
-                    setApply(true);
-                }
-            });
-            if (!isAllowOverrideShowTaxonNodeWizard){
-                showTaxonNodeWizardButton.setEnabled(false);
-                allowOverrideShowTaxonNodeWizardButton.setEnabled(false);
-            }
         }
 
-
+        setSelections();
         return composite;
     }
 
@@ -210,59 +82,97 @@ public class GeneralPreferencePage extends CdmPreferencePage {
 
     @Override
     public boolean performOk() {
+        if (!isApply()){
+            return true;
+        }
         if (isAllowOverrideShowCheckListPerspective){
+            if (isShowCheckListPerspective != null){
+                PreferencesUtil.setBooleanValue(PreferencePredicate.ShowChecklistPerspective.getKey(), isShowCheckListPerspective);
+            }
             PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowChecklistPerspective.getKey()), isOverrideShowCheckListPerspective);
-            PreferencesUtil.setBooleanValue(PreferencePredicate.ShowChecklistPerspective.getKey(), isShowCheckListPerspective);
-        }
-        if (isAllowOverrideShowIOMenu){
-            PreferencesUtil.setBooleanValue(PreferencePredicate.ShowImportExportMenu.getKey(), isShowIOMenu);
-            PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowImportExportMenu.getKey()), isOverrideShowIOMenu);
-        }
-//        if (isAllowOverrideShowMediaView){
-//            PreferencesUtil.setBooleanValue(PreferencePredicate.ShowMediaView.getKey(), isShowMediaView);
-//        }
-        if (isAllowOverrideShowTaxonNodeWizard){
-            PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowTaxonNodeWizard.getKey()), isOverrideShowTaxonNodeWizard);
-            PreferencesUtil.setBooleanValue(PreferencePredicate.ShowTaxonNodeWizard.getKey(), isShowTaxonNodeWizard);
+
+
         }
+        return true;
+    }
 
-       return true;
-   }
     @Override
     protected void getValues(){
         isAdminPreference = false;
 
         CdmPreferenceCache cache = CdmPreferenceCache.instance();
-        isShowIOMenu = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowImportExportMenu.getKey());
-        isOverrideShowIOMenu = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowImportExportMenu.getKey()));
-        CdmPreference pref = cache.get(PreferencePredicate.ShowImportExportMenu.getKey());
-        if (pref != null){
-            isAllowOverrideShowIOMenu = pref.isAllowOverride();
-        }else{
-            isAllowOverrideShowIOMenu = true;
+        isOverrideShowCheckListPerspective = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowChecklistPerspective.getKey()), true) != null? PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowChecklistPerspective.getKey()), true): false;
+        if (isOverrideShowCheckListPerspective){
+            isShowCheckListPerspective = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowChecklistPerspective.getKey(), true);
         }
-//        isShowMediaView = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowMediaView.getKey());
-//        pref = cache.get(PreferencePredicate.ShowMediaView.getKey());
-//        if (pref != null){
-//            isAllowOverrideShowMediaView = pref.isAllowOverride();
-//        }else{
-//            isAllowOverrideShowMediaView = true;
-//        }
-        isShowCheckListPerspective = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowChecklistPerspective.getKey());
-        isOverrideShowCheckListPerspective = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowChecklistPerspective.getKey()));
-        pref = cache.get(PreferencePredicate.ShowChecklistPerspective.getKey());
+
+        PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowChecklistPerspective);
+        CdmPreference pref = cache.findBestMatching(key);
         if (pref != null){
             isAllowOverrideShowCheckListPerspective = pref.isAllowOverride();
         }else{
             isAllowOverrideShowCheckListPerspective = true;
         }
-        isShowTaxonNodeWizard = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowTaxonNodeWizard.getKey());
-        isOverrideShowTaxonNodeWizard = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowTaxonNodeWizard.getKey()));
-        pref = cache.get(PreferencePredicate.ShowTaxonNodeWizard.getKey());
-        if (pref != null){
-            isAllowOverrideShowTaxonNodeWizard = pref.isAllowOverride();
+
+
+    }
+
+    @Override
+    public void widgetSelected(SelectionEvent e) {
+        if (e.getSource().equals(this.showChecklistPerspectiveButton)) {
+            String text = showChecklistPerspectiveButton.getText();
+            if (text.startsWith(Messages.Preference_Use_Default)){
+                isOverrideShowCheckListPerspective = false;
+                isShowCheckListPerspective = null;
+
+            }else if (text.equals(SHOW)){
+                isShowCheckListPerspective = true;
+                isOverrideShowCheckListPerspective = true;
+            }else{
+                isShowCheckListPerspective = false;
+                isOverrideShowCheckListPerspective = true;
+            }
+        }
+
+        this.setSelections();
+        this.setApply(true);
+
+
+    }
+
+
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public void widgetDefaultSelected(SelectionEvent e) {
+        // TODO Auto-generated method stub
+
+    }
+
+    @Override
+    protected void performDefaults() {
+        isOverrideShowCheckListPerspective = false;
+        isShowCheckListPerspective = null;
+
+        setSelections();
+        setApply(true);
+    }
+
+    protected void setSelections(){
+        if (isShowCheckListPerspective == null || (!isOverrideShowCheckListPerspective && !isAdminPreference)){
+            showChecklistPerspectiveButton.select(0);
         }else{
-            isAllowOverrideShowTaxonNodeWizard = true;
+            if (isShowCheckListPerspective){
+                showChecklistPerspectiveButton.select(1);
+            }else{
+                showChecklistPerspectiveButton.select(2);
+            }
+        }
+
+        if (isAdminPreference){
+            allowOverrideShowChecklistButton.setSelection(isAllowOverrideShowCheckListPerspective);
         }
     }