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
\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
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
}\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
* @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