fixes #795
authorn.hoffmann <n.hoffmann@localhost>
Fri, 12 Jun 2009 09:19:51 +0000 (09:19 +0000)
committern.hoffmann <n.hoffmann@localhost>
Fri, 12 Jun 2009 09:19:51 +0000 (09:19 +0000)
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/preference/RankMenuPreferences.java
taxeditor-store/src/main/java/eu/etaxonomy/taxeditor/store/CdmStore.java

index 3796b0febc568f9f5eca108e346ee56adf53b9c4..9859862b0440ce802b2195aa41f38578d1bdced2 100644 (file)
@@ -11,17 +11,20 @@ package eu.etaxonomy.taxeditor.preference;
 import java.util.HashMap;\r
 import java.util.List;\r
 import java.util.Map;\r
-import java.util.SortedSet;\r
 \r
 import org.eclipse.jface.preference.PreferencePage;\r
 import org.eclipse.swt.SWT;\r
+import org.eclipse.swt.events.MouseAdapter;\r
+import org.eclipse.swt.events.MouseEvent;\r
 import org.eclipse.swt.layout.GridLayout;\r
 import org.eclipse.swt.widgets.Button;\r
 import org.eclipse.swt.widgets.Composite;\r
 import org.eclipse.swt.widgets.Control;\r
+import org.eclipse.swt.widgets.Label;\r
 import org.eclipse.ui.IWorkbench;\r
 import org.eclipse.ui.IWorkbenchPreferencePage;\r
 \r
+import eu.etaxonomy.cdm.model.common.OrderedTermVocabulary;\r
 import eu.etaxonomy.cdm.model.name.Rank;\r
 import eu.etaxonomy.taxeditor.store.CdmStore;\r
 \r
@@ -40,6 +43,8 @@ public class RankMenuPreferences extends PreferencePage implements
        \r
        private Map<Rank, Button> rankButtons;\r
 \r
+       private Button toggleButton;\r
+\r
        public RankMenuPreferences() {\r
                super();\r
                setDescription("Choose which ranks to display in the property sheet drop-down menu.");\r
@@ -61,7 +66,7 @@ public class RankMenuPreferences extends PreferencePage implements
                container.setLayout(gridLayout);\r
 \r
                CdmStore.getDefault();\r
-               List<Rank> ranks = CdmStore.getPreferredRanks();\r
+               OrderedTermVocabulary<Rank> ranks = CdmStore.getRanks();\r
                \r
                for (Rank rank : ranks) {\r
                                                \r
@@ -74,6 +79,22 @@ public class RankMenuPreferences extends PreferencePage implements
                        }\r
                }\r
                \r
+               Composite toggleContainer = new Composite(parent, SWT.NULL);\r
+               toggleContainer.setLayout(new GridLayout());\r
+               \r
+               toggleButton = new Button(toggleContainer, SWT.TOGGLE);\r
+               toggleButton.setText("Toggle Selection");\r
+               toggleButton.addMouseListener(new MouseAdapter(){\r
+\r
+                       /* (non-Javadoc)\r
+                        * @see org.eclipse.swt.events.MouseAdapter#mouseDown(org.eclipse.swt.events.MouseEvent)\r
+                        */\r
+                       @Override\r
+                       public void mouseDown(MouseEvent e) {\r
+                               setSelectionForAll(toggleButton.getSelection());\r
+                       }                       \r
+               });\r
+               \r
                return container;\r
        }\r
 \r
@@ -89,10 +110,17 @@ public class RankMenuPreferences extends PreferencePage implements
         * @see org.eclipse.jface.preference.PreferencePage#performDefaults()\r
         */\r
        protected void performDefaults() {\r
-               \r
-               // Set all buttons to show feature\r
+               setSelectionForAll(true);\r
+       }\r
+       \r
+       /**\r
+        * Set all buttons to the given value\r
+        * \r
+        * @param selection true to activate all of the checkboxes, false otherwise\r
+        */\r
+       private void setSelectionForAll(boolean selection){\r
                for (Button button : rankButtons.values()) {\r
-                       button.setSelection(true);\r
+                       button.setSelection(selection);\r
                }\r
        }\r
        \r
index 9fa6fd013aa3dd6f9cd243c7d242a8225c50cf4c..5b4f81c0e662ca6a21a011a1b218a6d2be78bb67 100644 (file)
@@ -173,6 +173,10 @@ public class CdmStore{
                return HibernateProxyHelper.deproxy(vocabulary, OrderedTermVocabulary.class);
        }
        
+       public static OrderedTermVocabulary<Rank> getRanks(){
+               return getDefault().getRanksInternal();
+       }
+       
        public static List<Rank> getPreferredRanks(){
                return PreferencesUtil.getPreferredRanks();
        }