ref #8489: fix preference and term issues - continue
authorKatja Luther <k.luther@bgbm.org>
Wed, 4 Sep 2019 13:16:28 +0000 (15:16 +0200)
committerKatja Luther <k.luther@bgbm.org>
Wed, 4 Sep 2019 13:17:53 +0000 (15:17 +0200)
eu.etaxonomy.taxeditor.store/plugin.xml
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/TaxonNodeOrderAdminPreference.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/UIAdminPreference.java [new file with mode: 0755]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/NavigatorOrderEnum.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/OrderPreferences.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/PublishFlagLocalPreference.java

index be851e1a5b5bda5765837d9c9d7a2de35a35692e..3e626d74962a2d00213ce42768951e864aafc9a6 100755 (executable)
          id="eu.etaxonomy.taxeditor.store.supplementalDataSourcePreferences"
          name="%page.name.sources">
    </page>
+   <page
+         category="eu.etaxonomy.taxeditor.preferences.general"
+         class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.UIAdminPreference"
+         id="eu.etaxonomy.taxeditor.store.UIAdminPreference"
+         name="%page.name.53">
+   </page>
+     <page
+         category="eu.etaxonomy.taxeditor.store.UIAdminPreference"
+         class="eu.etaxonomy.taxeditor.databaseAdmin.preferencePage.TaxonNodeOrderAdminPreference"
+         id="eu.etaxonomy.taxeditor.store.TaxonNavigator"
+         name="%page.name.32">
+   </page>
 </extension>
 </plugin>
index 25dbdce4b3cbb867a00ba39a1f1846c9a07cd09c..98c550e846bc36133a941e6a4606faa80a93aded 100755 (executable)
@@ -8,7 +8,14 @@
 */
 package eu.etaxonomy.taxeditor.databaseAdmin.preferencePage;
 
+import org.eclipse.jface.dialogs.MessageDialog;
+
+import eu.etaxonomy.cdm.model.metadata.CdmPreference;
+import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
+import eu.etaxonomy.taxeditor.l10n.Messages;
+import eu.etaxonomy.taxeditor.preference.NavigatorOrderEnum;
 import eu.etaxonomy.taxeditor.preference.OrderPreferences;
+import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 
 /**
  * @author k.luther
@@ -16,4 +23,30 @@ import eu.etaxonomy.taxeditor.preference.OrderPreferences;
  */
 public class TaxonNodeOrderAdminPreference extends OrderPreferences {
 
+
+    @Override
+    public boolean performOk() {
+        if (isApply()){
+            PreferencesUtil.setPreferenceToDB(CdmPreference.NewTaxEditorInstance(PreferencePredicate.TaxonNodeOrder, this.orderActivated.getKey()));
+            MessageDialog.openInformation(getShell(), null, Messages.OrderPreferencePage_PleaseReopenNavigator);
+            setApply(false);
+        }
+        return true;
+
+    }
+
+    @Override
+    protected void getValues(){
+        isAdminPreference = true;
+        orderPref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.TaxonNodeOrder);
+        allowOverride = orderPref != null? orderPref.isAllowOverride():true;
+        if (orderPref == null){
+            orderPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.TaxonNodeOrder, PreferencePredicate.TaxonNodeOrder.getDefaultValue().toString());
+        }
+        orderActivated = orderPref.getValue() != null?NavigatorOrderEnum.valueOf(orderPref.getValue()): null;
+    }
+
+
+
+
 }
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/UIAdminPreference.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/databaseAdmin/preferencePage/UIAdminPreference.java
new file mode 100755 (executable)
index 0000000..4481cff
--- /dev/null
@@ -0,0 +1,17 @@
+/**
+* Copyright (C) 2019 EDIT
+* European Distributed Institute of Taxonomy
+* http://www.e-taxonomy.eu
+*
+* The contents of this file are subject to the Mozilla Public License Version 1.1
+* See LICENSE.TXT at the top of this package for the full license terms.
+*/
+package eu.etaxonomy.taxeditor.databaseAdmin.preferencePage;
+
+/**
+ * @author k.luther
+ * @since 04.09.2019
+ */
+public class UIAdminPreference extends EmptyAdminPreferencePage {
+
+}
index 832a6e1d391e3781907eb2d85562972836bcf514..3857d8ffaf4bcd398b7982ed385116087b5031dc 100755 (executable)
@@ -8,6 +8,7 @@
 */
 package eu.etaxonomy.taxeditor.preference;
 
+import eu.etaxonomy.cdm.model.metadata.IKeyLabel;
 import eu.etaxonomy.taxeditor.l10n.Messages;
 
 /**
@@ -15,7 +16,7 @@ import eu.etaxonomy.taxeditor.l10n.Messages;
  * @since 19.11.2018
  *
  */
-public enum NavigatorOrderEnum {
+public enum NavigatorOrderEnum implements IKeyLabel{
     AlphabeticalOrder("AlphabeticalOrder", Messages.NavigatorOrderEnum_1), //$NON-NLS-1$
     NaturalOrder("NaturalOrder", Messages.NavigatorOrderEnum_3), //$NON-NLS-1$
     RankAndNameOrder("RankAndNameOrder", Messages.NavigatorOrderEnum_5); //$NON-NLS-1$
@@ -29,10 +30,12 @@ public enum NavigatorOrderEnum {
         this.key = key;
     }
 
+    @Override
     public String getLabel(){
         return label;
     }
 
+    @Override
     public String getKey(){
         return key;
     }
index bc169b319945f48d0d544ad07fb5b0c8e7cd4c3c..4e4bc76901603a54f4e2760b6dfc9957b7cffc0f 100644 (file)
@@ -1,19 +1,16 @@
 package eu.etaxonomy.taxeditor.preference;\r
 \r
-import org.apache.commons.lang.StringUtils;\r
 import org.eclipse.jface.dialogs.MessageDialog;\r
 import org.eclipse.swt.SWT;\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.layout.GridLayout;\r
 import org.eclipse.swt.widgets.Button;\r
 import org.eclipse.swt.widgets.Combo;\r
 import org.eclipse.swt.widgets.Composite;\r
 import org.eclipse.swt.widgets.Control;\r
-import org.eclipse.swt.widgets.Label;\r
 \r
+import eu.etaxonomy.cdm.model.metadata.CdmPreference;\r
 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;\r
 import eu.etaxonomy.taxeditor.l10n.Messages;\r
 import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;\r
@@ -21,75 +18,91 @@ import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
 public class OrderPreferences extends CdmPreferencePage implements SelectionListener{\r
 \r
 \r
-        NavigatorOrderEnum orderActivated;\r
+        protected NavigatorOrderEnum orderActivated;\r
         private Combo orderSelectionCombo;\r
            boolean isRestoreTaxonNavigator;\r
-           boolean isSelectionChanged = false;\r
-           boolean isStrictlyAlphabeticallyOrdered;\r
+\r
+\r
            Button activateRestoreNavigatorButton;\r
+           protected Button allowOverrideButton;\r
+           protected CdmPreference orderPref;\r
+           boolean override = false;\r
+           protected boolean allowOverride;\r
+\r
 \r
            @Override\r
            protected Control createContents(Composite parent) {\r
 \r
                isRestoreTaxonNavigator = PreferencesUtil.isStoreNavigatorState();\r
-\r
-            Composite secondComposite = new Composite(parent, SWT.NULL);\r
-            secondComposite.setLayout(new GridLayout());\r
-\r
-            activateRestoreNavigatorButton = new Button(secondComposite, SWT.CHECK | SWT.LEFT);\r
-            activateRestoreNavigatorButton.setText(Messages.OrderPreferences_Restore);\r
-            activateRestoreNavigatorButton.setSelection(isRestoreTaxonNavigator);\r
-            activateRestoreNavigatorButton.addSelectionListener(new SelectionAdapter(){\r
-                @Override\r
-                public void widgetSelected(SelectionEvent e) {\r
-                    setApply(true);\r
-                    if(isRestoreTaxonNavigator != activateRestoreNavigatorButton.getSelection()) {\r
-                        isRestoreTaxonNavigator = activateRestoreNavigatorButton.getSelection();\r
-\r
+               getValues();\r
+            Composite secondComposite = createComposite(parent);\r
+\r
+            if(!isAdminPreference) {\r
+                activateRestoreNavigatorButton = new Button(secondComposite, SWT.CHECK | SWT.LEFT);\r
+                activateRestoreNavigatorButton.setText(Messages.OrderPreferences_Restore);\r
+                activateRestoreNavigatorButton.setSelection(isRestoreTaxonNavigator);\r
+                activateRestoreNavigatorButton.addSelectionListener(new SelectionAdapter(){\r
+                    @Override\r
+                    public void widgetSelected(SelectionEvent e) {\r
+                        setApply(true);\r
+                        if(isRestoreTaxonNavigator != activateRestoreNavigatorButton.getSelection()) {\r
+                            isRestoreTaxonNavigator = activateRestoreNavigatorButton.getSelection();\r
+\r
+                        }\r
                     }\r
-                }\r
-\r
-            });\r
 \r
+                });\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
+//            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
-               orderSelectionCombo = new Combo(composite, SWT.BORDER| SWT.READ_ONLY);\r
-               orderSelectionCombo.setLayoutData(gridData);\r
+//             GridData gridData = new GridData();\r
+//            gridData = new GridData(GridData.BEGINNING, GridData.CENTER, true, false);\r
+//            gridData.horizontalIndent = 5;\r
 \r
-            for(NavigatorOrderEnum display: NavigatorOrderEnum.values()){\r
-                orderSelectionCombo.add(display.getLabel());\r
-            }\r
+               orderSelectionCombo = createCombo(secondComposite, NavigatorOrderEnum.values(), PreferencePredicate.TaxonNodeOrder, Messages.OrderPreferences_Sorting, isAdminPreference);\r
+//             orderSelectionCombo.setLayoutData(gridData);\r
 \r
             int index = 0;\r
 \r
-            if (!StringUtils.isBlank(PreferencesUtil.getStringValue(PreferencePredicate.TaxonNodeOrder.getKey()))){\r
-                this.orderActivated = NavigatorOrderEnum.valueOf(PreferencesUtil.getStringValue(PreferencePredicate.TaxonNodeOrder.getKey()));\r
-\r
-                for (String itemLabel : orderSelectionCombo.getItems()){\r
-                    if (itemLabel.equalsIgnoreCase(orderActivated.getLabel())){\r
-                        orderSelectionCombo.select(index);\r
-                        break;\r
-                    }\r
-                    index++;\r
+            for (String itemLabel : orderSelectionCombo.getItems()){\r
+                if (itemLabel.equalsIgnoreCase(orderActivated.getLabel())){\r
+                    orderSelectionCombo.select(index);\r
+                    break;\r
                 }\r
+                index++;\r
             }\r
 \r
-            // TODO remember last selection\r
-            orderSelectionCombo.addSelectionListener(this);\r
 \r
-            final Label description = new Label(parent, SWT.NONE);\r
-            description.setText(Messages.OrderPreferencePage_NewNavigatorWindowRequired);\r
+            orderSelectionCombo.addSelectionListener(this);\r
+            if (isAdminPreference){\r
+                allowOverrideButton = createAllowOverrideButton(secondComposite);\r
+                allowOverrideButton.setSelection(allowOverride);\r
+                allowOverrideButton.addSelectionListener(new SelectionAdapter(){\r
+                    @Override\r
+                    public void widgetSelected(SelectionEvent e) {\r
+                        allowOverride = !allowOverride;\r
+                        setApply(true);\r
+                        }\r
+                });\r
+            }\r
 \r
-               return composite;\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
+               return secondComposite;\r
            }\r
 \r
 \r
@@ -97,10 +110,11 @@ public class OrderPreferences extends CdmPreferencePage implements SelectionList
                public boolean performOk() {\r
                    if (isApply()){\r
                    PreferencesUtil.setSortNodes(this.orderActivated);\r
-               PreferencesUtil.setStoreNavigatorState(isRestoreTaxonNavigator);\r
+                   //PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.TaxonNodeOrder), value);\r
+                   PreferencesUtil.setStoreNavigatorState(isRestoreTaxonNavigator);\r
                MessageDialog.openInformation(getShell(), null, Messages.OrderPreferencePage_PleaseReopenNavigator);\r
                    }\r
-                       return super.performOk();\r
+                       return true;\r
 \r
                }\r
 \r
@@ -111,11 +125,14 @@ public class OrderPreferences extends CdmPreferencePage implements SelectionList
         @Override\r
         public void widgetSelected(SelectionEvent e) {\r
             setApply(true);\r
-            isSelectionChanged = true;\r
+\r
             for (NavigatorOrderEnum item : NavigatorOrderEnum.values()){\r
-                if (item.getLabel().equalsIgnoreCase(orderSelectionCombo.getText())){\r
-                    this.orderActivated = item;\r
+                if (!orderSelectionCombo.getText().startsWith(Messages.Preference_Use_Default)){\r
+                    orderActivated = (NavigatorOrderEnum)orderSelectionCombo.getData(orderSelectionCombo.getText());\r
+                }else{\r
+                    orderActivated = null;\r
                 }\r
+\r
             }\r
         }\r
 \r
@@ -131,7 +148,10 @@ public class OrderPreferences extends CdmPreferencePage implements SelectionList
 \r
         @Override\r
         protected void performDefaults() {\r
-            activateRestoreNavigatorButton.setSelection(false);\r
+            if (!isAdminPreference) {\r
+                activateRestoreNavigatorButton.setSelection(false);\r
+            }\r
+\r
             isRestoreTaxonNavigator = false;\r
             orderActivated = NavigatorOrderEnum.RankAndNameOrder;\r
             int index = 0;\r
@@ -145,5 +165,17 @@ public class OrderPreferences extends CdmPreferencePage implements SelectionList
             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
+            allowOverride = orderPref != null? orderPref.isAllowOverride():true;\r
+            if (orderPref == null || (allowOverride && override)) {\r
+                orderActivated = NavigatorOrderEnum.valueOf(PreferencesUtil.getStringValue(PreferencePredicate.TaxonNodeOrder.getKey()));\r
+            }else{\r
+                orderActivated = orderPref.getValue()!= null? NavigatorOrderEnum.valueOf(orderPref.getValue()):null;\r
+            }\r
+\r
+        }\r
 \r
 }\r
index 9742983a4c75abde9791914bc2a419c6fbf2b75f..404cc2533c69315dbbf74c05d063cac9afeaadb0 100755 (executable)
@@ -8,9 +8,6 @@
 */
 package eu.etaxonomy.taxeditor.preference;
 
-import java.util.ArrayList;
-import java.util.List;
-
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.CLabel;
 import org.eclipse.swt.events.SelectionAdapter;
@@ -70,22 +67,7 @@ public class PublishFlagLocalPreference extends CdmPreferencePage {
             return composite;
         }
 
-
-//        description.setText(Messages.PublishFlagPreference_description);
-//        description.setLayoutData(createTextGridData());
-//        publishFlagBehaviour = new Combo(composite, SWT.READ_ONLY);
-        List<String> enumValues = new ArrayList();
-
         publishFlagBehaviour = createCombo(composite, PublishEnum.values(), PreferencePredicate.DefaultBehaviourForPublishFlag, Messages.PublishFlagPreference_description, isAdminPreference);
-
-//        publishFlagBehaviour.setFont(parent.getFont());
-//        for(PublishEnum display: PublishEnum.values()){
-//            if (pref.getValue().equals(display.getKey())){
-//                publishFlagBehaviour.add(display.getLabel() + " (Default)");
-//            }
-//            else
-//        }
-
         publishFlagBehaviour.addSelectionListener(new SelectionListener() {
 
             @Override
@@ -107,7 +89,6 @@ public class PublishFlagLocalPreference extends CdmPreferencePage {
         });
         if (this.isAdminPreference){
             allowOverrideButton = createAllowOverrideButton(composite);
-            allowOverrideButton.setText(Messages.GeneralPreference_override);
             allowOverrideButton.setSelection(allowOverride);
             allowOverrideButton.addSelectionListener(new SelectionAdapter(){
                 @Override