1 package eu
.etaxonomy
.taxeditor
.preference
;
3 import org
.eclipse
.jface
.dialogs
.MessageDialog
;
4 import org
.eclipse
.jface
.preference
.PreferencePage
;
5 import org
.eclipse
.swt
.SWT
;
6 import org
.eclipse
.swt
.events
.SelectionAdapter
;
7 import org
.eclipse
.swt
.events
.SelectionEvent
;
8 import org
.eclipse
.swt
.layout
.GridLayout
;
9 import org
.eclipse
.swt
.widgets
.Button
;
10 import org
.eclipse
.swt
.widgets
.Composite
;
11 import org
.eclipse
.swt
.widgets
.Control
;
12 import org
.eclipse
.swt
.widgets
.Label
;
13 import org
.eclipse
.ui
.IWorkbench
;
14 import org
.eclipse
.ui
.IWorkbenchPreferencePage
;
16 import eu
.etaxonomy
.taxeditor
.Messages
;
18 public class OrderPreferences
extends PreferencePage
implements IWorkbenchPreferencePage
{
21 boolean isNaturalOrderActivated
;
22 boolean isAlphabeticalOrderActivated
;
23 boolean isRankAndNameOrderActivated
;
24 boolean isRestoreTaxonNavigator
;
25 boolean isSelectionChanged
= false;
26 boolean isStrictlyAlphabeticallyOrdered
;
31 * org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors
35 protected Control
createContents(Composite parent
) {
37 isRestoreTaxonNavigator
= PreferencesUtil
.isStoreNavigatorState();
39 Composite secondComposite
= new Composite(parent
, SWT
.NULL
);
40 secondComposite
.setLayout(new GridLayout());
42 final Button activateRestoreNavigatorButton
= new Button(secondComposite
, SWT
.CHECK
| SWT
.LEFT
);
43 activateRestoreNavigatorButton
.setText("Restore the last Taxon Navigator state.");
44 activateRestoreNavigatorButton
.setSelection(isRestoreTaxonNavigator
);
45 activateRestoreNavigatorButton
.addSelectionListener(new SelectionAdapter(){
47 public void widgetSelected(SelectionEvent e
) {
48 if(isRestoreTaxonNavigator
!= activateRestoreNavigatorButton
.getSelection()) {
49 isRestoreTaxonNavigator
= activateRestoreNavigatorButton
.getSelection();
50 PreferencesUtil
.setStoreNavigatorState(isRestoreTaxonNavigator
);
57 Composite composite
= new Composite(parent
, SWT
.NULL
);
58 composite
.setLayout(new GridLayout());
60 isNaturalOrderActivated
= PreferencesUtil
.getSortNodesNaturally();
61 final Button activateNaturalOrderCheckButton
= new Button(composite
, SWT
.RADIO
);
62 activateNaturalOrderCheckButton
.setText("Enable Natural Order");
63 activateNaturalOrderCheckButton
.setSelection(isNaturalOrderActivated
);
65 isRankAndNameOrderActivated
= !PreferencesUtil
.getSortNodesStrictlyAlphabetically() && !PreferencesUtil
.getSortNodesNaturally();
66 final Button activateRankAndNameOrderActivatedCheckButton
= new Button(composite
, SWT
.RADIO
);
67 activateRankAndNameOrderActivatedCheckButton
.setText("Enable Rank and Aplhabetical Order");
68 activateRankAndNameOrderActivatedCheckButton
.setSelection(isRankAndNameOrderActivated
);
70 isAlphabeticalOrderActivated
= PreferencesUtil
.getSortNodesStrictlyAlphabetically();
71 final Button activateAlphabeticallyOrderedCheckButton
= new Button(composite
, SWT
.RADIO
);
72 activateAlphabeticallyOrderedCheckButton
.setText("Enable Alphabetical Order");
73 activateAlphabeticallyOrderedCheckButton
.setSelection(isAlphabeticalOrderActivated
);
75 activateNaturalOrderCheckButton
.addSelectionListener(new SelectionAdapter(){
77 public void widgetSelected(SelectionEvent e
) {
78 if(isNaturalOrderActivated
!= activateNaturalOrderCheckButton
.getSelection()) {
79 isNaturalOrderActivated
= activateNaturalOrderCheckButton
.getSelection();
80 if (isAlphabeticalOrderActivated
&& isNaturalOrderActivated
){
81 isAlphabeticalOrderActivated
= false;
82 PreferencesUtil
.setSortNodesStrictlyAlphabetically(isAlphabeticalOrderActivated
);
84 if (isRankAndNameOrderActivated
&& isNaturalOrderActivated
){
85 isRankAndNameOrderActivated
= false;
87 PreferencesUtil
.setSortNodesNaturally(isNaturalOrderActivated
);
88 isSelectionChanged
= true;
90 isSelectionChanged
= false;
95 activateAlphabeticallyOrderedCheckButton
.addSelectionListener(new SelectionAdapter(){
97 public void widgetSelected(SelectionEvent e
) {
98 if(isAlphabeticalOrderActivated
!= activateAlphabeticallyOrderedCheckButton
.getSelection()) {
99 isAlphabeticalOrderActivated
= activateAlphabeticallyOrderedCheckButton
.getSelection();
100 if (isNaturalOrderActivated
&& isAlphabeticalOrderActivated
){
101 isNaturalOrderActivated
= false;
102 PreferencesUtil
.setSortNodesNaturally(isNaturalOrderActivated
);
104 if (isRankAndNameOrderActivated
&& isAlphabeticalOrderActivated
){
105 isRankAndNameOrderActivated
= false;
107 PreferencesUtil
.setSortNodesStrictlyAlphabetically(isAlphabeticalOrderActivated
);
108 isSelectionChanged
= true;
110 isSelectionChanged
= false;
116 activateRankAndNameOrderActivatedCheckButton
.addSelectionListener(new SelectionAdapter(){
118 public void widgetSelected(SelectionEvent e
) {
119 if(isRankAndNameOrderActivated
!= activateRankAndNameOrderActivatedCheckButton
.getSelection()) {
120 isRankAndNameOrderActivated
= activateRankAndNameOrderActivatedCheckButton
.getSelection();
121 if (isAlphabeticalOrderActivated
&& isRankAndNameOrderActivated
){
122 isAlphabeticalOrderActivated
= false;
124 if (isNaturalOrderActivated
&& isRankAndNameOrderActivated
){
125 isNaturalOrderActivated
= false;
128 if (isRankAndNameOrderActivated
||(!isNaturalOrderActivated
&& !isAlphabeticalOrderActivated
)){
129 PreferencesUtil
.setSortNodesStrictlyAlphabetically(false);
130 PreferencesUtil
.setSortNodesNaturally(false);
132 isSelectionChanged
= true;
134 isSelectionChanged
= false;
144 final Label description
= new Label(parent
, SWT
.NONE
);
145 description
.setText(Messages
.OrderPreferencePage_NewNavigatorWindowRequired
);
152 public void init(IWorkbench workbench
) {
153 // TODO Auto-generated method stub
158 * @see org.eclipse.jface.preference.PreferencePage#performOk()
161 public boolean performOk() {
162 if(isSelectionChanged
){
163 MessageDialog
.openInformation(getShell(), null, Messages
.OrderPreferencePage_PleaseReopenNavigator
);
164 isSelectionChanged
= false;
165 return super.performOk();