move restore navigator status to taxonNavigator preferences
[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.isRestoreNavigator();
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.setRestoreNavigator(isRestoreTaxonNavigator);
51 }
52 }
53
54 });
55
56
57 Composite composite = new Composite(parent, SWT.NULL);
58 composite.setLayout(new GridLayout());
59
60 isNaturalOrderActivated = PreferencesUtil.getSortNodesNaturally();
61 final Button activateNaturalOrderCheckButton = new Button(composite, SWT.RADIO);
62 activateNaturalOrderCheckButton.setText("Enable Natural Order");
63 activateNaturalOrderCheckButton.setSelection(isNaturalOrderActivated);
64
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);
69
70 isAlphabeticalOrderActivated = PreferencesUtil.getSortNodesStrictlyAlphabetically();
71 final Button activateAlphabeticallyOrderedCheckButton = new Button(composite, SWT.RADIO);
72 activateAlphabeticallyOrderedCheckButton.setText("Enable Alphabetical Order");
73 activateAlphabeticallyOrderedCheckButton.setSelection(isAlphabeticalOrderActivated);
74
75 activateNaturalOrderCheckButton.addSelectionListener(new SelectionAdapter(){
76 @Override
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);
83 }
84 if (isRankAndNameOrderActivated && isNaturalOrderActivated){
85 isRankAndNameOrderActivated = false;
86 }
87 PreferencesUtil.setSortNodesNaturally(isNaturalOrderActivated);
88 isSelectionChanged = true;
89 }else{
90 isSelectionChanged = false;
91 }
92
93 }
94 });
95 activateAlphabeticallyOrderedCheckButton.addSelectionListener(new SelectionAdapter(){
96 @Override
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);
103 }
104 if (isRankAndNameOrderActivated && isAlphabeticalOrderActivated){
105 isRankAndNameOrderActivated = false;
106 }
107 PreferencesUtil.setSortNodesStrictlyAlphabetically(isAlphabeticalOrderActivated);
108 isSelectionChanged = true;
109 }else{
110 isSelectionChanged = false;
111 }
112
113 }
114 });
115
116 activateRankAndNameOrderActivatedCheckButton.addSelectionListener(new SelectionAdapter(){
117 @Override
118 public void widgetSelected(SelectionEvent e) {
119 if(isRankAndNameOrderActivated != activateRankAndNameOrderActivatedCheckButton.getSelection()) {
120 isRankAndNameOrderActivated = activateRankAndNameOrderActivatedCheckButton.getSelection();
121 if (isAlphabeticalOrderActivated && isRankAndNameOrderActivated){
122 isAlphabeticalOrderActivated = false;
123 }
124 if (isNaturalOrderActivated && isRankAndNameOrderActivated){
125 isNaturalOrderActivated = false;
126 }
127
128 if (isRankAndNameOrderActivated ||(!isNaturalOrderActivated && !isAlphabeticalOrderActivated)){
129 PreferencesUtil.setSortNodesStrictlyAlphabetically(false);
130 PreferencesUtil.setSortNodesNaturally(false);
131 }
132 isSelectionChanged = true;
133 }else{
134 isSelectionChanged = false;
135 }
136
137 }
138 });
139
140
141
142
143
144 final Label description = new Label(parent, SWT.NONE);
145 description.setText(Messages.OrderPreferencePage_NewNavigatorWindowRequired);
146
147 return composite;
148 }
149
150
151 @Override
152 public void init(IWorkbench workbench) {
153 // TODO Auto-generated method stub
154
155 }
156
157 /* (non-Javadoc)
158 * @see org.eclipse.jface.preference.PreferencePage#performOk()
159 */
160 @Override
161 public boolean performOk() {
162 if(isSelectionChanged){
163 MessageDialog.openInformation(getShell(), null, Messages.OrderPreferencePage_PleaseReopenNavigator);
164 isSelectionChanged = false;
165 return super.performOk();
166 }
167 return true;
168 }
169
170
171 }