cleanup
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / preference / OrderPreferences.java
index 4e4bc76901603a54f4e2760b6dfc9957b7cffc0f..6370daf97fc4017c0c87c1acfe8f9deea828b4de 100644 (file)
@@ -2,9 +2,11 @@ package eu.etaxonomy.taxeditor.preference;
 \r
 import org.eclipse.jface.dialogs.MessageDialog;\r
 import org.eclipse.swt.SWT;\r
+import org.eclipse.swt.custom.CLabel;\r
 import org.eclipse.swt.events.SelectionAdapter;\r
 import org.eclipse.swt.events.SelectionEvent;\r
 import org.eclipse.swt.events.SelectionListener;\r
+import org.eclipse.swt.layout.GridData;\r
 import org.eclipse.swt.widgets.Button;\r
 import org.eclipse.swt.widgets.Combo;\r
 import org.eclipse.swt.widgets.Composite;\r
@@ -12,6 +14,8 @@ import org.eclipse.swt.widgets.Control;
 \r
 import eu.etaxonomy.cdm.model.metadata.CdmPreference;\r
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;\r
+import eu.etaxonomy.taxeditor.event.EventUtility;\r
+import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;\r
 import eu.etaxonomy.taxeditor.l10n.Messages;\r
 import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;\r
 \r
@@ -26,9 +30,17 @@ public class OrderPreferences extends CdmPreferencePage implements SelectionList
            Button activateRestoreNavigatorButton;\r
            protected Button allowOverrideButton;\r
            protected CdmPreference orderPref;\r
+           protected CdmPreference nodePref;\r
            boolean override = false;\r
            protected boolean allowOverride;\r
 \r
+           protected Combo showTaxonNodeWizardButton;\r
+           protected Button allowOverrideShowTaxonNodeWizardButton;\r
+           protected boolean isOverrideShowTaxonNodeWizard;\r
+           protected boolean isAllowOverrideShowTaxonNodeWizard;\r
+           protected Boolean isShowTaxonNodeWizard;\r
+\r
+\r
 \r
            @Override\r
            protected Control createContents(Composite parent) {\r
@@ -54,27 +66,20 @@ public class OrderPreferences extends CdmPreferencePage implements SelectionList
                 });\r
             }\r
 \r
-//            Composite composite = new Composite(parent, SWT.NULL);\r
-//             composite.setLayout(new GridLayout());\r
-//\r
-//             Label label = new Label(composite, SWT.NONE);\r
-//             label.setText(Messages.OrderPreferences_Sorting);\r
-\r
-//             GridData gridData = new GridData();\r
-//            gridData = new GridData(GridData.BEGINNING, GridData.CENTER, true, false);\r
-//            gridData.horizontalIndent = 5;\r
-\r
                orderSelectionCombo = createCombo(secondComposite, NavigatorOrderEnum.values(), PreferencePredicate.TaxonNodeOrder, Messages.OrderPreferences_Sorting, isAdminPreference);\r
-//             orderSelectionCombo.setLayoutData(gridData);\r
 \r
             int index = 0;\r
 \r
-            for (String itemLabel : orderSelectionCombo.getItems()){\r
-                if (itemLabel.equalsIgnoreCase(orderActivated.getLabel())){\r
-                    orderSelectionCombo.select(index);\r
-                    break;\r
+            if (orderActivated == null){\r
+                orderSelectionCombo.select(index);\r
+            }else{\r
+                for (String itemLabel : orderSelectionCombo.getItems()){\r
+                    if (itemLabel.equalsIgnoreCase(orderActivated.getLabel())){\r
+                        orderSelectionCombo.select(index);\r
+                        break;\r
+                    }\r
+                    index++;\r
                 }\r
-                index++;\r
             }\r
 \r
 \r
@@ -91,17 +96,50 @@ public class OrderPreferences extends CdmPreferencePage implements SelectionList
                 });\r
             }\r
 \r
-//            final CLabel description = new CLabel(secondComposite, SWT.NULL);\r
-//            description.setText(Messages.OrderPreferencePage_NewNavigatorWindowRequired);\r
-//            GridData textGrid = createTextGridData();\r
-//            textGrid.verticalSpan = 2;\r
-//            description.setLayoutData(textGrid);\r
-\r
-//            final Label description = new Label(secondComposite, SWT.NONE);\r
-//            description.setText(Messages.OrderPreferencePage_NewNavigatorWindowRequired);\r
-//            GridData textGrid = createTextGridData();\r
-//            textGrid.verticalSpan = 2;\r
-//            description.setLayoutData(textGrid);\r
+            if (orderPref != null && !isAdminPreference){\r
+                if (!orderPref.isAllowOverride()){\r
+                    orderSelectionCombo.setEnabled(false);\r
+                    final CLabel description = new CLabel(secondComposite, SWT.NULL);\r
+                  description.setText(Messages.OrderPreferencePage_NotAllowed);\r
+                  GridData textGrid = createTextGridData();\r
+                  textGrid.verticalSpan = 2;\r
+                  description.setLayoutData(textGrid);\r
+                }\r
+            }\r
+\r
+            showTaxonNodeWizardButton = createBooleanCombo(secondComposite, SHOW, DO_NOT_SHOW, PreferencePredicate.ShowTaxonNodeWizard, "Show Taxonnode Wizard",\r
+                    isAdminPreference);\r
+            showTaxonNodeWizardButton.setText(Messages.DatabasePreferncesPage_Show_TaxonNodeWizard);\r
+            showTaxonNodeWizardButton.addSelectionListener(this);\r
+\r
+\r
+            if (isAdminPreference){\r
+                allowOverrideShowTaxonNodeWizardButton = createAllowOverrideButton(secondComposite);\r
+                allowOverrideShowTaxonNodeWizardButton.addSelectionListener(new SelectionAdapter(){\r
+                    @Override\r
+                    public void widgetSelected(SelectionEvent e) {\r
+                        isAllowOverrideShowTaxonNodeWizard = allowOverrideShowTaxonNodeWizardButton.getSelection();\r
+                        setApply(true);\r
+                    }\r
+                });\r
+                allowOverrideShowTaxonNodeWizardButton.setSelection(isAllowOverrideShowTaxonNodeWizard);\r
+            }else{\r
+                if (!isAllowOverrideShowTaxonNodeWizard){\r
+                    showTaxonNodeWizardButton.setEnabled(false);\r
+\r
+                }\r
+            }\r
+\r
+            if (isShowTaxonNodeWizard == null || (!isOverrideShowTaxonNodeWizard && !isAdminPreference)){\r
+                showTaxonNodeWizardButton.select(0);\r
+            }else{\r
+                if (isShowTaxonNodeWizard){\r
+                    showTaxonNodeWizardButton.select(1);\r
+                }else{\r
+                    showTaxonNodeWizardButton.select(2);\r
+                }\r
+            }\r
+\r
                return secondComposite;\r
            }\r
 \r
@@ -110,10 +148,23 @@ public class OrderPreferences extends CdmPreferencePage implements SelectionList
                public boolean performOk() {\r
                    if (isApply()){\r
                    PreferencesUtil.setSortNodes(this.orderActivated);\r
-                   //PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.TaxonNodeOrder), value);\r
+                   if (orderActivated != null){\r
+                       PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.TaxonNodeOrder.getKey()), true);\r
+                   }else{\r
+                       PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.TaxonNodeOrder.getKey()), false);\r
+                   }\r
                    PreferencesUtil.setStoreNavigatorState(isRestoreTaxonNavigator);\r
-               MessageDialog.openInformation(getShell(), null, Messages.OrderPreferencePage_PleaseReopenNavigator);\r
+\r
+\r
+               if (isAllowOverrideShowTaxonNodeWizard){\r
+                   if (isShowTaxonNodeWizard != null){\r
+                         PreferencesUtil.setBooleanValue(PreferencePredicate.ShowTaxonNodeWizard.getKey(), isShowTaxonNodeWizard);\r
+                   }\r
+                   PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowTaxonNodeWizard.getKey()), isOverrideShowTaxonNodeWizard);\r
+               }\r
+               EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAVIGATOR, true);\r
                    }\r
+                   \r
                        return true;\r
 \r
                }\r
@@ -125,12 +176,29 @@ public class OrderPreferences extends CdmPreferencePage implements SelectionList
         @Override\r
         public void widgetSelected(SelectionEvent e) {\r
             setApply(true);\r
+            if (e.getSource().equals(orderSelectionCombo)){\r
+                for (NavigatorOrderEnum item : NavigatorOrderEnum.values()){\r
+                    if (!orderSelectionCombo.getText().startsWith(Messages.Preference_Use_Default)){\r
+                        orderActivated = (NavigatorOrderEnum)orderSelectionCombo.getData(orderSelectionCombo.getText());\r
+                    }else{\r
+                        orderActivated = null;\r
+                    }\r
 \r
-            for (NavigatorOrderEnum item : NavigatorOrderEnum.values()){\r
-                if (!orderSelectionCombo.getText().startsWith(Messages.Preference_Use_Default)){\r
-                    orderActivated = (NavigatorOrderEnum)orderSelectionCombo.getData(orderSelectionCombo.getText());\r
+                }\r
+                MessageDialog.openInformation(getShell(), null, Messages.OrderPreferencePage_PleaseReopenNavigator);\r
+            }\r
+            if (e.getSource().equals(this.showTaxonNodeWizardButton)) {\r
+                String text = showTaxonNodeWizardButton.getText();\r
+                if (text.startsWith(Messages.Preference_Use_Default)){\r
+                    isOverrideShowTaxonNodeWizard = false;\r
+                    isShowTaxonNodeWizard = null;\r
+\r
+                }else if (text.equals(SHOW)){\r
+                    isShowTaxonNodeWizard = true;\r
+                    isOverrideShowTaxonNodeWizard = true;\r
                 }else{\r
-                    orderActivated = null;\r
+                    isShowTaxonNodeWizard = false;\r
+                    isOverrideShowTaxonNodeWizard = true;\r
                 }\r
 \r
             }\r
@@ -153,29 +221,42 @@ public class OrderPreferences extends CdmPreferencePage implements SelectionList
             }\r
 \r
             isRestoreTaxonNavigator = false;\r
-            orderActivated = NavigatorOrderEnum.RankAndNameOrder;\r
-            int index = 0;\r
-            for (String itemLabel : orderSelectionCombo.getItems()){\r
-                if (itemLabel.equalsIgnoreCase(orderActivated.getLabel())){\r
-                    orderSelectionCombo.select(index);\r
-                    break;\r
-                }\r
-                index++;\r
-            }\r
+            orderActivated = null;\r
+\r
+            orderSelectionCombo.select(0);\r
+            isOverrideShowTaxonNodeWizard = false;\r
+            isShowTaxonNodeWizard = null;\r
+            showTaxonNodeWizardButton.select(0);\r
+\r
             super.performDefaults();\r
         }\r
 \r
         @Override\r
         protected void getValues(){\r
             orderPref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.TaxonNodeOrder);\r
-            override = PreferencesUtil.getBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.TaxonNodeOrder.getKey()));\r
+            override = PreferencesUtil.getOverrideForPreference(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
 \r
+            isOverrideShowTaxonNodeWizard = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowTaxonNodeWizard.getKey()), true) != null? PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowTaxonNodeWizard.getKey()), true): false;\r
+            if (isOverrideShowTaxonNodeWizard){\r
+                isShowTaxonNodeWizard = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowTaxonNodeWizard.getKey(), true);\r
+            }\r
+\r
+\r
+            nodePref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowTaxonNodeWizard);\r
+            if (nodePref != null){\r
+                isAllowOverrideShowTaxonNodeWizard = nodePref.isAllowOverride();\r
+            }else{\r
+                isAllowOverrideShowTaxonNodeWizard = true;\r
+            }\r
+\r
         }\r
 \r
 }\r