ref #6347 fix typo and add label
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / preference / OrderPreferences.java
1 package eu.etaxonomy.taxeditor.preference;
2
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;
15
16 import eu.etaxonomy.taxeditor.Messages;
17
18 public class OrderPreferences extends PreferencePage implements IWorkbenchPreferencePage {
19
20
21 boolean isNaturalOrderActivated;
22 boolean isAlphabeticalOrderActivated;
23 boolean isRankAndNameOrderActivated;
24 boolean isRestoreTaxonNavigator;
25 boolean isSelectionChanged = false;
26 boolean isStrictlyAlphabeticallyOrdered;
27 /*
28 * (non-Javadoc)
29 *
30 * @see
31 * org.eclipse.jface.preference.FieldEditorPreferencePage#createFieldEditors
32 * ()
33 */
34 @Override
35 protected Control createContents(Composite parent) {
36
37 isRestoreTaxonNavigator = PreferencesUtil.isStoreNavigatorState();
38
39 Composite secondComposite = new Composite(parent, SWT.NULL);
40 secondComposite.setLayout(new GridLayout());
41
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(){
46 @Override
47 public void widgetSelected(SelectionEvent e) {
48 if(isRestoreTaxonNavigator != activateRestoreNavigatorButton.getSelection()) {
49 isRestoreTaxonNavigator = activateRestoreNavigatorButton.getSelection();
50 PreferencesUtil.setStoreNavigatorState(isRestoreTaxonNavigator);
51 }
52 }
53
54 });
55
56
57 Composite composite = new Composite(parent, SWT.NULL);
58 composite.setLayout(new GridLayout());
59
60 Label label = new Label(composite, SWT.NONE);
61 label.setText("Sorting");
62
63
64 isNaturalOrderActivated = PreferencesUtil.getSortNodesNaturally();
65 final Button activateNaturalOrderCheckButton = new Button(composite, SWT.RADIO);
66 activateNaturalOrderCheckButton.setText("Enable Natural Order");
67 activateNaturalOrderCheckButton.setSelection(isNaturalOrderActivated);
68
69 isRankAndNameOrderActivated = !PreferencesUtil.getSortNodesStrictlyAlphabetically() && !PreferencesUtil.getSortNodesNaturally();
70 final Button activateRankAndNameOrderActivatedCheckButton = new Button(composite, SWT.RADIO);
71 activateRankAndNameOrderActivatedCheckButton.setText("Enable Rank and Alphabetical Order");
72 activateRankAndNameOrderActivatedCheckButton.setSelection(isRankAndNameOrderActivated);
73
74 isAlphabeticalOrderActivated = PreferencesUtil.getSortNodesStrictlyAlphabetically();
75 final Button activateAlphabeticallyOrderedCheckButton = new Button(composite, SWT.RADIO);
76 activateAlphabeticallyOrderedCheckButton.setText("Enable Alphabetical Order");
77 activateAlphabeticallyOrderedCheckButton.setSelection(isAlphabeticalOrderActivated);
78
79 activateNaturalOrderCheckButton.addSelectionListener(new SelectionAdapter(){
80 @Override
81 public void widgetSelected(SelectionEvent e) {
82 if(isNaturalOrderActivated != activateNaturalOrderCheckButton.getSelection()) {
83 isNaturalOrderActivated = activateNaturalOrderCheckButton.getSelection();
84 if (isAlphabeticalOrderActivated && isNaturalOrderActivated){
85 isAlphabeticalOrderActivated = false;
86 PreferencesUtil.setSortNodesStrictlyAlphabetically(isAlphabeticalOrderActivated);
87 }
88 if (isRankAndNameOrderActivated && isNaturalOrderActivated){
89 isRankAndNameOrderActivated = false;
90 }
91 PreferencesUtil.setSortNodesNaturally(isNaturalOrderActivated);
92 isSelectionChanged = true;
93 }else{
94 isSelectionChanged = false;
95 }
96
97 }
98 });
99 activateAlphabeticallyOrderedCheckButton.addSelectionListener(new SelectionAdapter(){
100 @Override
101 public void widgetSelected(SelectionEvent e) {
102 if(isAlphabeticalOrderActivated != activateAlphabeticallyOrderedCheckButton.getSelection()) {
103 isAlphabeticalOrderActivated = activateAlphabeticallyOrderedCheckButton.getSelection();
104 if (isNaturalOrderActivated && isAlphabeticalOrderActivated){
105 isNaturalOrderActivated = false;
106 PreferencesUtil.setSortNodesNaturally(isNaturalOrderActivated);
107 }
108 if (isRankAndNameOrderActivated && isAlphabeticalOrderActivated){
109 isRankAndNameOrderActivated = false;
110 }
111 PreferencesUtil.setSortNodesStrictlyAlphabetically(isAlphabeticalOrderActivated);
112 isSelectionChanged = true;
113 }else{
114 isSelectionChanged = false;
115 }
116
117 }
118 });
119
120 activateRankAndNameOrderActivatedCheckButton.addSelectionListener(new SelectionAdapter(){
121 @Override
122 public void widgetSelected(SelectionEvent e) {
123 if(isRankAndNameOrderActivated != activateRankAndNameOrderActivatedCheckButton.getSelection()) {
124 isRankAndNameOrderActivated = activateRankAndNameOrderActivatedCheckButton.getSelection();
125 if (isAlphabeticalOrderActivated && isRankAndNameOrderActivated){
126 isAlphabeticalOrderActivated = false;
127 }
128 if (isNaturalOrderActivated && isRankAndNameOrderActivated){
129 isNaturalOrderActivated = false;
130 }
131
132 if (isRankAndNameOrderActivated ||(!isNaturalOrderActivated && !isAlphabeticalOrderActivated)){
133 PreferencesUtil.setSortNodesStrictlyAlphabetically(false);
134 PreferencesUtil.setSortNodesNaturally(false);
135 }
136 isSelectionChanged = true;
137 }else{
138 isSelectionChanged = false;
139 }
140
141 }
142 });
143
144
145
146
147
148 final Label description = new Label(parent, SWT.NONE);
149 description.setText(Messages.OrderPreferencePage_NewNavigatorWindowRequired);
150
151 return composite;
152 }
153
154
155 @Override
156 public void init(IWorkbench workbench) {
157 // TODO Auto-generated method stub
158
159 }
160
161 /* (non-Javadoc)
162 * @see org.eclipse.jface.preference.PreferencePage#performOk()
163 */
164 @Override
165 public boolean performOk() {
166 if(isSelectionChanged){
167 MessageDialog.openInformation(getShell(), null, Messages.OrderPreferencePage_PleaseReopenNavigator);
168 isSelectionChanged = false;
169 return super.performOk();
170 }
171 return true;
172 }
173
174
175 }