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
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
\r
\r
boolean isNaturalOrderActivated;\r
+ boolean isAlphabeticalOrderActivated;\r
+ boolean isRankAndNameOrderActivated;\r
boolean isSelectionChanged = false;\r
+ boolean isStrictlyAlphabeticallyOrdered;\r
/*\r
* (non-Javadoc)\r
*\r
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
\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
@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