cleanup
[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.swt.SWT;
5 import org.eclipse.swt.custom.CLabel;
6 import org.eclipse.swt.events.SelectionAdapter;
7 import org.eclipse.swt.events.SelectionEvent;
8 import org.eclipse.swt.events.SelectionListener;
9 import org.eclipse.swt.layout.GridData;
10 import org.eclipse.swt.widgets.Button;
11 import org.eclipse.swt.widgets.Combo;
12 import org.eclipse.swt.widgets.Composite;
13 import org.eclipse.swt.widgets.Control;
14
15 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
16 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
17 import eu.etaxonomy.taxeditor.event.EventUtility;
18 import eu.etaxonomy.taxeditor.event.WorkbenchEventConstants;
19 import eu.etaxonomy.taxeditor.l10n.Messages;
20 import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
21
22 public class OrderPreferences extends CdmPreferencePage implements SelectionListener{
23
24
25 protected NavigatorOrderEnum orderActivated;
26 private Combo orderSelectionCombo;
27 boolean isRestoreTaxonNavigator;
28
29
30 Button activateRestoreNavigatorButton;
31 protected Button allowOverrideButton;
32 protected CdmPreference orderPref;
33 protected CdmPreference nodePref;
34 boolean override = false;
35 protected boolean allowOverride;
36
37 protected Combo showTaxonNodeWizardButton;
38 protected Button allowOverrideShowTaxonNodeWizardButton;
39 protected boolean isOverrideShowTaxonNodeWizard;
40 protected boolean isAllowOverrideShowTaxonNodeWizard;
41 protected Boolean isShowTaxonNodeWizard;
42
43
44
45 @Override
46 protected Control createContents(Composite parent) {
47
48 isRestoreTaxonNavigator = PreferencesUtil.isStoreNavigatorState();
49 getValues();
50 Composite secondComposite = createComposite(parent);
51
52 if(!isAdminPreference) {
53 activateRestoreNavigatorButton = new Button(secondComposite, SWT.CHECK | SWT.LEFT);
54 activateRestoreNavigatorButton.setText(Messages.OrderPreferences_Restore);
55 activateRestoreNavigatorButton.setSelection(isRestoreTaxonNavigator);
56 activateRestoreNavigatorButton.addSelectionListener(new SelectionAdapter(){
57 @Override
58 public void widgetSelected(SelectionEvent e) {
59 setApply(true);
60 if(isRestoreTaxonNavigator != activateRestoreNavigatorButton.getSelection()) {
61 isRestoreTaxonNavigator = activateRestoreNavigatorButton.getSelection();
62
63 }
64 }
65
66 });
67 }
68
69 orderSelectionCombo = createCombo(secondComposite, NavigatorOrderEnum.values(), PreferencePredicate.TaxonNodeOrder, Messages.OrderPreferences_Sorting, isAdminPreference);
70
71 int index = 0;
72
73 if (orderActivated == null){
74 orderSelectionCombo.select(index);
75 }else{
76 for (String itemLabel : orderSelectionCombo.getItems()){
77 if (itemLabel.equalsIgnoreCase(orderActivated.getLabel())){
78 orderSelectionCombo.select(index);
79 break;
80 }
81 index++;
82 }
83 }
84
85
86 orderSelectionCombo.addSelectionListener(this);
87 if (isAdminPreference){
88 allowOverrideButton = createAllowOverrideButton(secondComposite);
89 allowOverrideButton.setSelection(allowOverride);
90 allowOverrideButton.addSelectionListener(new SelectionAdapter(){
91 @Override
92 public void widgetSelected(SelectionEvent e) {
93 allowOverride = !allowOverride;
94 setApply(true);
95 }
96 });
97 }
98
99 if (orderPref != null && !isAdminPreference){
100 if (!orderPref.isAllowOverride()){
101 orderSelectionCombo.setEnabled(false);
102 final CLabel description = new CLabel(secondComposite, SWT.NULL);
103 description.setText(Messages.OrderPreferencePage_NotAllowed);
104 GridData textGrid = createTextGridData();
105 textGrid.verticalSpan = 2;
106 description.setLayoutData(textGrid);
107 }
108 }
109
110 showTaxonNodeWizardButton = createBooleanCombo(secondComposite, SHOW, DO_NOT_SHOW, PreferencePredicate.ShowTaxonNodeWizard, "Show Taxonnode Wizard",
111 isAdminPreference);
112 showTaxonNodeWizardButton.setText(Messages.DatabasePreferncesPage_Show_TaxonNodeWizard);
113 showTaxonNodeWizardButton.addSelectionListener(this);
114
115
116 if (isAdminPreference){
117 allowOverrideShowTaxonNodeWizardButton = createAllowOverrideButton(secondComposite);
118 allowOverrideShowTaxonNodeWizardButton.addSelectionListener(new SelectionAdapter(){
119 @Override
120 public void widgetSelected(SelectionEvent e) {
121 isAllowOverrideShowTaxonNodeWizard = allowOverrideShowTaxonNodeWizardButton.getSelection();
122 setApply(true);
123 }
124 });
125 allowOverrideShowTaxonNodeWizardButton.setSelection(isAllowOverrideShowTaxonNodeWizard);
126 }else{
127 if (!isAllowOverrideShowTaxonNodeWizard){
128 showTaxonNodeWizardButton.setEnabled(false);
129
130 }
131 }
132
133 if (isShowTaxonNodeWizard == null || (!isOverrideShowTaxonNodeWizard && !isAdminPreference)){
134 showTaxonNodeWizardButton.select(0);
135 }else{
136 if (isShowTaxonNodeWizard){
137 showTaxonNodeWizardButton.select(1);
138 }else{
139 showTaxonNodeWizardButton.select(2);
140 }
141 }
142
143 return secondComposite;
144 }
145
146
147 @Override
148 public boolean performOk() {
149 if (isApply()){
150 PreferencesUtil.setSortNodes(this.orderActivated);
151 if (orderActivated != null){
152 PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.TaxonNodeOrder.getKey()), true);
153 }else{
154 PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.TaxonNodeOrder.getKey()), false);
155 }
156 PreferencesUtil.setStoreNavigatorState(isRestoreTaxonNavigator);
157
158
159 if (isAllowOverrideShowTaxonNodeWizard){
160 if (isShowTaxonNodeWizard != null){
161 PreferencesUtil.setBooleanValue(PreferencePredicate.ShowTaxonNodeWizard.getKey(), isShowTaxonNodeWizard);
162 }
163 PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowTaxonNodeWizard.getKey()), isOverrideShowTaxonNodeWizard);
164 }
165 EventUtility.postEvent(WorkbenchEventConstants.REFRESH_NAVIGATOR, true);
166 }
167
168 return true;
169
170 }
171
172
173 /**
174 * {@inheritDoc}
175 */
176 @Override
177 public void widgetSelected(SelectionEvent e) {
178 setApply(true);
179 if (e.getSource().equals(orderSelectionCombo)){
180 for (NavigatorOrderEnum item : NavigatorOrderEnum.values()){
181 if (!orderSelectionCombo.getText().startsWith(Messages.Preference_Use_Default)){
182 orderActivated = (NavigatorOrderEnum)orderSelectionCombo.getData(orderSelectionCombo.getText());
183 }else{
184 orderActivated = null;
185 }
186
187 }
188 MessageDialog.openInformation(getShell(), null, Messages.OrderPreferencePage_PleaseReopenNavigator);
189 }
190 if (e.getSource().equals(this.showTaxonNodeWizardButton)) {
191 String text = showTaxonNodeWizardButton.getText();
192 if (text.startsWith(Messages.Preference_Use_Default)){
193 isOverrideShowTaxonNodeWizard = false;
194 isShowTaxonNodeWizard = null;
195
196 }else if (text.equals(SHOW)){
197 isShowTaxonNodeWizard = true;
198 isOverrideShowTaxonNodeWizard = true;
199 }else{
200 isShowTaxonNodeWizard = false;
201 isOverrideShowTaxonNodeWizard = true;
202 }
203
204 }
205 }
206
207
208 /**
209 * {@inheritDoc}
210 */
211 @Override
212 public void widgetDefaultSelected(SelectionEvent e) {
213 // TODO Auto-generated method stub
214
215 }
216
217 @Override
218 protected void performDefaults() {
219 if (!isAdminPreference) {
220 activateRestoreNavigatorButton.setSelection(false);
221 }
222
223 isRestoreTaxonNavigator = false;
224 orderActivated = null;
225
226 orderSelectionCombo.select(0);
227 isOverrideShowTaxonNodeWizard = false;
228 isShowTaxonNodeWizard = null;
229 showTaxonNodeWizardButton.select(0);
230
231 super.performDefaults();
232 }
233
234 @Override
235 protected void getValues(){
236 orderPref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.TaxonNodeOrder);
237 override = PreferencesUtil.getOverrideForPreference(PreferencePredicate.TaxonNodeOrder.getKey());
238 allowOverride = orderPref != null? orderPref.isAllowOverride():true;
239 if (orderPref == null || allowOverride ){
240 if (override){
241 orderActivated = NavigatorOrderEnum.valueOf(PreferencesUtil.getStringValue(PreferencePredicate.TaxonNodeOrder.getKey()));
242 }
243 }else{
244 orderActivated = orderPref.getValue()!= null? NavigatorOrderEnum.valueOf(orderPref.getValue()):null;
245 }
246
247 isOverrideShowTaxonNodeWizard = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowTaxonNodeWizard.getKey()), true) != null? PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowTaxonNodeWizard.getKey()), true): false;
248 if (isOverrideShowTaxonNodeWizard){
249 isShowTaxonNodeWizard = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowTaxonNodeWizard.getKey(), true);
250 }
251
252
253 nodePref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowTaxonNodeWizard);
254 if (nodePref != null){
255 isAllowOverrideShowTaxonNodeWizard = nodePref.isAllowOverride();
256 }else{
257 isAllowOverrideShowTaxonNodeWizard = true;
258 }
259
260 }
261
262 }