Merge branch 'develop' of https://dev.e-taxonomy.eu/git/taxeditor into develop
authorKatja Luther <k.luther@bgbm.org>
Tue, 23 Feb 2016 10:39:45 +0000 (11:39 +0100)
committerKatja Luther <k.luther@bgbm.org>
Tue, 23 Feb 2016 10:39:45 +0000 (11:39 +0100)
eu.etaxonomy.taxeditor.navigation/src/main/java/eu/etaxonomy/taxeditor/navigation/navigator/TaxonNavigator.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/preference/IPreferenceKeys.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/PreferencesUtil.java

index 107e63a99c47c9e80d7447292caa6621dd089900..ea945e1041a8a5fcd966c4ba94a4c54566f3f969 100644 (file)
@@ -45,6 +45,7 @@ import eu.etaxonomy.cdm.model.common.ICdmBase;
 import eu.etaxonomy.cdm.model.taxon.Classification;
 import eu.etaxonomy.cdm.model.taxon.TaxonNaturalComparator;
 import eu.etaxonomy.cdm.model.taxon.TaxonNode;
+import eu.etaxonomy.cdm.model.taxon.TaxonNodeByNameComparator;
 import eu.etaxonomy.cdm.model.taxon.TaxonNodeByRankAndNameComparator;
 import eu.etaxonomy.cdm.persistence.hibernate.CdmDataChangeMap;
 import eu.etaxonomy.taxeditor.model.DataChangeBridge;
@@ -102,7 +103,9 @@ public class TaxonNavigator extends CommonNavigator implements
                Comparator<TaxonNode> comparator;
                if (PreferencesUtil.getSortNodesNaturally()){
                        comparator = new TaxonNaturalComparator();
-               } else{
+               } else if (PreferencesUtil.getSortNodesStrictlyAlphabetically()){
+                       comparator = new TaxonNodeByNameComparator();
+               }else {
                        comparator = new TaxonNodeByRankAndNameComparator();
                }
                TaxonNodeNavigatorComparator viewerComparator = new TaxonNodeNavigatorComparator(comparator);
index ec73e3044249d9213fe8f10bcbe8411632524d53..57e7465ce85c7cc3cbe7c018da45df965bb6c1f1 100644 (file)
@@ -101,7 +101,8 @@ public interface IPreferenceKeys {
        public static final String SORT_RANKS_HIERARCHICHALLY = "eu.etaxonomy.taxeditor.menus.sortRanksHierarchichally";
        /** Constant <code>SORT_NODES_NATURALL="eu.etaxonomy.taxeditor.menus.sortNodesN"{trunked}</code> */
        public static final String SORT_NODES_NATURALLY = "eu.etaxonomy.taxeditor.menus.sortNodesNaturally";
-
+       /** Constant <code>SORT_NODES_NATURALL="eu.etaxonomy.taxeditor.menus.sortNodesN"{trunked}</code> */
+       public static final String SORT_NODES_ALPHABETICALLY = "eu.etaxonomy.taxeditor.menus.sortNodesAlphabetically";
        /**
         * Whether multilanguage text fields should be editable in multiple languages.
         */
index 3e434a9d56a6f1c89cd3ee3682c57aab529c6d75..bc51c0d98dc13a3f531a5d1ec83ef01f6185c67c 100644 (file)
@@ -5,6 +5,8 @@ import java.io.IOException;
 import org.eclipse.jface.dialogs.MessageDialog;\r
 import org.eclipse.jface.preference.PreferencePage;\r
 import org.eclipse.jface.resource.ImageDescriptor;\r
+import org.eclipse.jface.viewers.ArrayContentProvider;\r
+import org.eclipse.jface.viewers.LabelProvider;\r
 import org.eclipse.swt.SWT;\r
 import org.eclipse.swt.events.SelectionAdapter;\r
 import org.eclipse.swt.events.SelectionEvent;\r
@@ -18,6 +20,7 @@ import org.eclipse.swt.widgets.Label;
 import org.eclipse.ui.IWorkbench;\r
 import org.eclipse.ui.IWorkbenchPreferencePage;\r
 import org.eclipse.ui.PlatformUI;\r
+import org.eclipse.ui.dialogs.ListSelectionDialog;\r
 \r
 import eu.etaxonomy.taxeditor.Messages;\r
 \r
@@ -25,7 +28,10 @@ public class OrderPreferences extends PreferencePage implements IWorkbenchPrefer
        \r
 \r
            boolean isNaturalOrderActivated;\r
+           boolean isAlphabeticalOrderActivated;\r
+           boolean isRankAndNameOrderActivated;\r
            boolean isSelectionChanged = false;\r
+           boolean isStrictlyAlphabeticallyOrdered;\r
            /*\r
             * (non-Javadoc)\r
             *\r
@@ -40,16 +46,54 @@ public class OrderPreferences extends PreferencePage implements IWorkbenchPrefer
                composite.setLayout(new GridLayout());\r
                final Label description = new Label(parent, SWT.NONE);\r
                description.setText(Messages.OrderPreferencePage_NewNavigatorWindowRequired);\r
-               isNaturalOrderActivated = PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.SORT_NODES_NATURALLY);\r
-               final Button activateCheckButton = new Button(composite, SWT.CHECK);\r
-               activateCheckButton.setText("Enable Natural Order");\r
-               activateCheckButton.setSelection(isNaturalOrderActivated);\r
-               activateCheckButton.addSelectionListener(new SelectionAdapter(){\r
+               isNaturalOrderActivated = PreferencesUtil.getSortNodesNaturally();\r
+               final Button activateNaturalOrderCheckButton = new Button(composite, SWT.RADIO);\r
+               activateNaturalOrderCheckButton.setText("Enable Natural Order");\r
+               activateNaturalOrderCheckButton.setSelection(isNaturalOrderActivated);\r
+              \r
+               isRankAndNameOrderActivated = !PreferencesUtil.getSortNodesStrictlyAlphabetically() && !PreferencesUtil.getSortNodesNaturally();\r
+               final Button activateRankAndNameOrderActivatedCheckButton = new Button(composite, SWT.RADIO);\r
+               activateRankAndNameOrderActivatedCheckButton.setText("Enable Rank and Aplhabetical Order");\r
+               activateRankAndNameOrderActivatedCheckButton.setSelection(isRankAndNameOrderActivated);\r
+               \r
+               isAlphabeticalOrderActivated = PreferencesUtil.getSortNodesStrictlyAlphabetically();\r
+               final Button activateAlphabeticallyOrderedCheckButton = new Button(composite, SWT.RADIO);\r
+               activateAlphabeticallyOrderedCheckButton.setText("Enable Alphabetical Order");\r
+               activateAlphabeticallyOrderedCheckButton.setSelection(isAlphabeticalOrderActivated);\r
+               \r
+               activateNaturalOrderCheckButton.addSelectionListener(new SelectionAdapter(){\r
+                   @Override\r
+                   public void widgetSelected(SelectionEvent e) {\r
+                       if(isNaturalOrderActivated != activateNaturalOrderCheckButton.getSelection()) {\r
+                               isNaturalOrderActivated = activateNaturalOrderCheckButton.getSelection();\r
+                               if (isAlphabeticalOrderActivated && isNaturalOrderActivated){\r
+                                       isAlphabeticalOrderActivated = false;\r
+                                       PreferencesUtil.setSortNodesStrictlyAlphabetically(isAlphabeticalOrderActivated);\r
+                               } \r
+                               if (isRankAndNameOrderActivated && isNaturalOrderActivated){\r
+                                       isRankAndNameOrderActivated = false;\r
+                               } \r
+                               PreferencesUtil.setSortNodesNaturally(isNaturalOrderActivated);\r
+                        isSelectionChanged = true;\r
+                    }else{\r
+                        isSelectionChanged = false;\r
+                    }\r
+\r
+                   }\r
+               });\r
+               activateAlphabeticallyOrderedCheckButton.addSelectionListener(new SelectionAdapter(){\r
                    @Override\r
                    public void widgetSelected(SelectionEvent e) {\r
-                       if(isNaturalOrderActivated != activateCheckButton.getSelection()) {\r
-                               isNaturalOrderActivated = activateCheckButton.getSelection();\r
-                               PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.SORT_NODES_NATURALLY, isNaturalOrderActivated);\r
+                       if(isAlphabeticalOrderActivated != activateAlphabeticallyOrderedCheckButton.getSelection()) {\r
+                               isAlphabeticalOrderActivated = activateAlphabeticallyOrderedCheckButton.getSelection();\r
+                               if (isNaturalOrderActivated && isAlphabeticalOrderActivated){\r
+                                       isNaturalOrderActivated = false;\r
+                                       PreferencesUtil.setSortNodesNaturally(isNaturalOrderActivated);\r
+                               } \r
+                               if (isRankAndNameOrderActivated && isAlphabeticalOrderActivated){\r
+                                       isRankAndNameOrderActivated = false;\r
+                               }  \r
+                               PreferencesUtil.setSortNodesStrictlyAlphabetically(isAlphabeticalOrderActivated);\r
                         isSelectionChanged = true;\r
                     }else{\r
                         isSelectionChanged = false;\r
@@ -57,6 +101,31 @@ public class OrderPreferences extends PreferencePage implements IWorkbenchPrefer
 \r
                    }\r
                });\r
+               \r
+               activateRankAndNameOrderActivatedCheckButton.addSelectionListener(new SelectionAdapter(){\r
+                   @Override\r
+                   public void widgetSelected(SelectionEvent e) {\r
+                       if(isRankAndNameOrderActivated != activateRankAndNameOrderActivatedCheckButton.getSelection()) {\r
+                               isRankAndNameOrderActivated = activateRankAndNameOrderActivatedCheckButton.getSelection();\r
+                               if (isAlphabeticalOrderActivated && isRankAndNameOrderActivated){\r
+                                        isAlphabeticalOrderActivated = false;\r
+                               } \r
+                               if (isNaturalOrderActivated && isRankAndNameOrderActivated){\r
+                                       isNaturalOrderActivated = false;\r
+                               } \r
+                               \r
+                               if (isRankAndNameOrderActivated ||(!isNaturalOrderActivated && !isAlphabeticalOrderActivated)){\r
+                                       PreferencesUtil.setSortNodesStrictlyAlphabetically(false);\r
+                                       PreferencesUtil.setSortNodesNaturally(false);\r
+                               }\r
+                        isSelectionChanged = true;\r
+                    }else{\r
+                        isSelectionChanged = false;\r
+                    }\r
+\r
+                   }\r
+               });\r
+\r
 \r
               \r
 \r
@@ -76,7 +145,8 @@ public class OrderPreferences extends PreferencePage implements IWorkbenchPrefer
                @Override\r
                public boolean performOk() {\r
               if(isSelectionChanged){\r
-                 MessageDialog.openInformation(getShell(), null, Messages.OrderPreferencePage_PleaseReopenNavigator);            \r
+                 MessageDialog.openInformation(getShell(), null, Messages.OrderPreferencePage_PleaseReopenNavigator);\r
+                 isSelectionChanged = false;\r
                        return super.performOk();\r
               }\r
               return true;\r
index 83e6756fc4caf2d40451b9b1ed628662057fc2e4..1f9f25b2631ae4f8d5efd2f8427dbe6b1bf23a77 100644 (file)
@@ -774,4 +774,29 @@ public class PreferencesUtil implements IPreferenceKeys {
        public static void setSortNodesNaturally(boolean selection) {
                getPreferenceStore().setValue(SORT_NODES_NATURALLY, selection);
        }
+
+       
+       /**
+        * <p>
+        * getSortRanksNaturally
+        * </p>
+        *
+        * @return a boolean.
+        */
+       public static boolean getSortNodesStrictlyAlphabetically() {
+               return getPreferenceStore().getBoolean(SORT_NODES_ALPHABETICALLY);
+       }
+       
+       /**
+        * <p>
+        * setSortRanksNaturally
+        * </p>
+        *
+        * @param selection
+        *            a boolean.
+        */
+       public static void setSortNodesStrictlyAlphabetically(boolean selection) {
+               getPreferenceStore().setValue(SORT_NODES_ALPHABETICALLY, selection);
+       }
+       
 }