ref #8045: show possible entries for preferences in combo boxes and show default...
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / preference / ChecklistEditorGeneralPreference.java
1 /**
2 * Copyright (C) 2014 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
8 */
9 package eu.etaxonomy.taxeditor.preference;
10
11 import org.eclipse.swt.SWT;
12 import org.eclipse.swt.custom.CLabel;
13 import org.eclipse.swt.events.SelectionAdapter;
14 import org.eclipse.swt.events.SelectionEvent;
15 import org.eclipse.swt.events.SelectionListener;
16 import org.eclipse.swt.layout.GridData;
17 import org.eclipse.swt.layout.GridLayout;
18 import org.eclipse.swt.widgets.Button;
19 import org.eclipse.swt.widgets.Combo;
20 import org.eclipse.swt.widgets.Composite;
21 import org.eclipse.swt.widgets.Control;
22 import org.eclipse.swt.widgets.Event;
23 import org.eclipse.swt.widgets.Label;
24 import org.eclipse.swt.widgets.Listener;
25
26 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
27 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
28 import eu.etaxonomy.cdm.model.metadata.TermDisplayEnum;
29 import eu.etaxonomy.cdm.model.metadata.TermOrder;
30 import eu.etaxonomy.taxeditor.l10n.Messages;
31 import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
32 import eu.etaxonomy.taxeditor.ui.element.CommandHandlerButton;
33
34 /**
35 * @author a.oppermann
36 * @date 21.07.2014
37 *
38 */
39 public class ChecklistEditorGeneralPreference extends CdmPreferencePage implements SelectionListener {
40
41 protected boolean isEditorActivated;
42
43 protected boolean overrideActivated;
44 boolean isUseLocal;
45 protected boolean isShowRank;
46 protected String orderAreas;
47 protected String displayStatus;
48 protected String displayArea;
49 protected boolean ownDescriptionForDistributionEditor;
50
51 protected boolean overrideOwnDescriptionForDistributionEditor;
52 protected boolean overrideAreaVoc;
53 protected boolean overrideRank;
54 protected boolean overrideOrderAreas;
55 protected boolean overrideAreaDisplay;
56 protected boolean overrideStatusDisplay;
57
58 protected Combo areaOrderSelectionCombo;
59 protected Button allowOverrideOrderAreasButton;
60 protected Combo statusDisplaySelectionCombo;
61 protected Button allowOverrideStatusDisplayButton;
62 protected Combo areaDisplaySelectionCombo;
63 protected Button allowOverrideAreaDisplayButton;
64 protected String commandHandlerString;
65 protected String commandHandlerStringStatus;
66
67 protected CdmPreference distributionEditorPref;
68 protected CdmPreference prefStatus;
69 protected CdmPreference prefAreaVoc;
70 protected CdmPreference prefAreaDisplay;
71 protected CdmPreference prefStatusDisplay;
72 protected CdmPreference prefAreaSort;
73 protected CdmPreference prefRank;
74 protected CdmPreference prefOwnDescription;
75 Composite child;
76
77 protected Combo activateCombo;
78 protected Button allowOverrideActivatedButton;
79 final String ENABLE = "Enable";
80 final String DISABLE = "Disable";
81
82 protected Combo activateRankCombo;
83 protected Button allowOverrideRankButton;
84 final String SHOW_RANK = "Show Rank";
85 final String NO_RANK = "No Rank";
86
87 protected CdmPreference areaVocPref = null;
88 protected CdmPreference statusPref = null;
89 private CommandHandlerButton button_openSelectAreaVocabularies;
90
91 private CommandHandlerButton button_openStatusWizard;
92
93 @Override
94 protected Control createContents(Composite parent) {
95 getValues();
96 Composite composite = new Composite(parent, SWT.NULL);
97 composite.setLayout(new GridLayout());
98 if (!isAdminPreference && !distributionEditorPref.isAllowOverride()&& !isEditorActivated ) {
99 Label label = new Label(composite, SWT.NONE);
100 label.setText(
101 "The CDM settings don't allow to set the preferences for using the distribution editor locally. If you need to make local settings, please ask an administrator.");
102 this.setDefaultButtonActivated(false);
103 } else {
104 Composite activateComp = createComposite(composite);
105 Label separator = new Label(activateComp, SWT.HORIZONTAL | SWT.SEPARATOR);
106 GridData sepGrid = createTextGridData();
107 separator.setLayoutData(sepGrid);
108 separator.setVisible(false);
109 CdmPreference dbPref;
110 GridData textGrid = createTextGridData();
111 textGrid.verticalSpan = 2;
112 separator.setLayoutData(sepGrid);
113
114 activateCombo = createBooleanCombo(activateComp, ENABLE, DISABLE, PreferencePredicate.DistributionEditorActivated, Messages.ChecklistEditorGeneralPreference_enable, isAdminPreference);
115 if (isEditorActivated) {
116 activateCombo.select(0);
117 } else {
118 activateCombo.select(1);
119 }
120
121 activateCombo.addSelectionListener(this);
122 if (isAdminPreference) {
123 allowOverrideActivatedButton = createAllowOverrideButton(activateComp);
124 allowOverrideActivatedButton.setSelection(this.distributionEditorPref.isAllowOverride());
125 allowOverrideActivatedButton.addSelectionListener(new SelectionAdapter() {
126 @Override
127 public void widgetSelected(SelectionEvent e) {
128 setApply(true);
129 distributionEditorPref.setAllowOverride(!distributionEditorPref.isAllowOverride());
130 }
131 });
132 }
133 child = createComposite(composite);
134
135 if (!isAdminPreference) {
136 child.setEnabled(isEditorActivated);
137 }
138 separator = new Label(child, SWT.HORIZONTAL | SWT.SEPARATOR);
139 sepGrid = createTextGridData();
140 separator.setLayoutData(sepGrid);
141
142 activateRankCombo = createBooleanCombo(child, SHOW_RANK, NO_RANK,
143 PreferencePredicate.ShowRankInDistributionEditor, Messages.ChecklistEditorGeneralPreference_show_rank, isAdminPreference);
144
145 if (isShowRank) {
146 activateRankCombo.select(0);
147 } else {
148 activateRankCombo.select(1);
149 }
150 activateRankCombo.addSelectionListener(this);
151 if (isAdminPreference) {
152 allowOverrideRankButton = createAllowOverrideButton(child);
153 allowOverrideRankButton.setSelection(prefRank.isAllowOverride());
154 allowOverrideRankButton.addSelectionListener(new SelectionAdapter() {
155 @Override
156 public void widgetSelected(SelectionEvent e) {
157 setApply(true);
158 prefRank.setAllowOverride(allowOverrideRankButton.getSelection());
159 }
160 });
161 }
162
163 GridData gridData = new GridData();
164 gridData = new GridData(GridData.BEGINNING, GridData.CENTER, true, false);
165
166 areaOrderSelectionCombo = createCombo(child, TermOrder.values(), PreferencePredicate.AreasSortedInDistributionEditor, Messages.ChecklistEditorGeneralPreference_Configure_area_order, isAdminPreference);
167
168 int index = 0;
169 TermOrder areaOrder;
170 try {
171 if (orderAreas != null) {
172 areaOrder = TermOrder.valueOf(orderAreas);
173 } else {
174 areaOrder = TermOrder.IdInVoc;
175 }
176 } catch (IllegalArgumentException e) {
177 areaOrder = TermOrder.IdInVoc;
178 }
179 for (String itemLabel : areaOrderSelectionCombo.getItems()) {
180 if (itemLabel.startsWith(areaOrder.getLabel())) {
181 areaOrderSelectionCombo.select(index);
182 break;
183 }
184 index++;
185 }
186
187 areaOrderSelectionCombo.addSelectionListener(this);
188
189 if (isAdminPreference) {
190 allowOverrideOrderAreasButton = createAllowOverrideButton(child);
191 allowOverrideOrderAreasButton.setSelection(prefAreaSort.isAllowOverride());
192 allowOverrideOrderAreasButton.addSelectionListener(new SelectionAdapter() {
193 @Override
194 public void widgetSelected(SelectionEvent e) {
195 setApply(true);
196 prefAreaSort.setAllowOverride(allowOverrideOrderAreasButton.getSelection());
197 }
198 });
199 }
200
201 separator = new Label(child, SWT.HORIZONTAL | SWT.SEPARATOR);
202 separator.setLayoutData(sepGrid);
203 areaDisplaySelectionCombo = createCombo(child, TermDisplayEnum.values(), PreferencePredicate.DisplayOfAreasInDistributionEditor, Messages.ChecklistEditorGeneralPreference_Configure_display_of_Areas, isAdminPreference);
204
205 index = 0;
206 if (PreferencesUtil.getStringValue(PreferencePredicate.DistributionEditorActivated.getKey()) != null) {
207 TermDisplayEnum areaDisplay;
208 try {
209 if (displayArea != null) {
210 areaDisplay = TermDisplayEnum.byKey(displayArea);
211 } else {
212 areaDisplay = TermDisplayEnum.Title;
213 }
214 } catch (IllegalArgumentException e) {
215 areaDisplay = TermDisplayEnum.Title;
216 }
217
218 for (String itemLabel : areaDisplaySelectionCombo.getItems()) {
219 if (itemLabel.startsWith(areaDisplay.getLabel())) {
220 areaDisplaySelectionCombo.select(index);
221 break;
222 }
223 index++;
224 }
225 }
226 areaDisplaySelectionCombo.addSelectionListener(this);
227
228 if (isAdminPreference) {
229 allowOverrideAreaDisplayButton = createAllowOverrideButton(child);
230 allowOverrideAreaDisplayButton.setSelection(prefAreaDisplay.isAllowOverride());
231 allowOverrideAreaDisplayButton.addSelectionListener(new SelectionAdapter() {
232 @Override
233 public void widgetSelected(SelectionEvent e) {
234 setApply(true);
235 prefAreaDisplay.setAllowOverride(allowOverrideOrderAreasButton.getSelection());
236 }
237 });
238 }
239
240 statusDisplaySelectionCombo = createCombo(child, TermDisplayEnum.values(), PreferencePredicate.DisplayOfStatus, Messages.ChecklistEditorGeneralPreference_Configure_display_of_Status, isAdminPreference);
241
242 index = 0;
243 if (displayStatus != null) {
244 TermDisplayEnum statusDisplay;
245 try {
246 statusDisplay = TermDisplayEnum.byKey(displayStatus);
247 } catch (IllegalArgumentException e) {
248 statusDisplay = TermDisplayEnum.Title;
249 }
250 for (String itemLabel : statusDisplaySelectionCombo.getItems()) {
251 if (itemLabel.startsWith(statusDisplay.getLabel())) {
252 statusDisplaySelectionCombo.select(index);
253 break;
254 }
255 index++;
256 }
257 }
258
259 statusDisplaySelectionCombo.addSelectionListener(this);
260
261 if (isAdminPreference) {
262 allowOverrideStatusDisplayButton = createAllowOverrideButton(child);
263 allowOverrideStatusDisplayButton.setSelection(prefStatusDisplay.isAllowOverride());
264 allowOverrideStatusDisplayButton.addSelectionListener(new SelectionAdapter() {
265 @Override
266 public void widgetSelected(SelectionEvent e) {
267 setApply(true);
268 prefStatusDisplay.setAllowOverride(allowOverrideStatusDisplayButton.getSelection());
269 }
270 });
271 }
272
273 final CLabel labelStatus = new CLabel(child, SWT.NULL);
274 labelStatus.setText(Messages.DistributionAdminPreferences_SELECT_STATUS);
275 labelStatus.setLayoutData(textGrid);
276
277 button_openStatusWizard = new CommandHandlerButton(child, SWT.PUSH, commandHandlerStringStatus);
278
279 button_openStatusWizard.setText(Messages.Distribution_status_selection);
280 button_openStatusWizard.addListener(SWT.Selection, new Listener() {
281 @Override
282 public void handleEvent(Event e) {
283 switch (e.type) {
284 case SWT.Selection:
285 setApply(true);
286 break;
287 }
288 }
289 });
290
291 final CLabel label = new CLabel(child, SWT.NULL);
292 label.setText(Messages.ChecklistEditorGeneralPreference_open_wizard);
293 label.setLayoutData(textGrid);
294
295 button_openSelectAreaVocabularies = new CommandHandlerButton(child, SWT.PUSH, commandHandlerString);
296 button_openSelectAreaVocabularies
297 .setText(Messages.ChecklistEditorGeneralPreference_open_distribution_selection);
298
299 if (!isAdminPreference) {
300 PreferencesUtil.recursiveSetEnabled(child, isEditorActivated);
301 if (distributionEditorPref != null && !distributionEditorPref.isAllowOverride()){
302 activateComp.setEnabled(false);
303 }
304
305 if (prefAreaVoc != null && !prefAreaVoc.isAllowOverride()) {
306 button_openSelectAreaVocabularies.setButtonEnabled(false);
307 }
308 if (prefStatus != null && !prefStatus.isAllowOverride()) {
309 button_openStatusWizard.setButtonEnabled(false);
310 }
311 if (prefRank != null && !prefRank.isAllowOverride()) {
312 activateRankCombo.setEnabled(false);
313 }
314 if (prefAreaSort != null && !prefAreaSort.isAllowOverride()) {
315 areaOrderSelectionCombo.setEnabled(false);
316 //allowOverrideOrderAreasButton.setEnabled(false);
317 }
318 if (prefAreaDisplay != null && !prefAreaDisplay.isAllowOverride()) {
319 areaDisplaySelectionCombo.setEnabled(false);
320 }
321 if (prefStatusDisplay != null && !prefStatusDisplay.isAllowOverride()) {
322 statusDisplaySelectionCombo.setEnabled(false);
323 }
324 }
325
326 }
327 setValid(true);
328 return composite;
329 }
330
331 @Override
332 public boolean performOk() {
333 // if (distributionEditorPref == null || this.distributionEditorPref.isAllowOverride()) {
334
335 PreferencesUtil.setBooleanValue(PreferencePredicate.DistributionEditorActivated.getKey(),
336 isEditorActivated);
337
338 if (distributionEditorPref == null
339 || isEditorActivated != Boolean.parseBoolean(distributionEditorPref.getValue())) {
340 PreferencesUtil.setBooleanValue(
341 PreferencesUtil.prefOverrideKey(PreferencePredicate.DistributionEditorActivated.getKey()),
342 true);
343 }
344 PreferencesUtil.setSortNamedAreasInDistributionEditor(orderAreas);
345 if (prefAreaSort == null || orderAreas != prefAreaSort.getValue()) {
346 PreferencesUtil.setBooleanValue(
347 PreferencesUtil.prefOverrideKey(PreferencePredicate.AreasSortedInDistributionEditor.getKey()),
348 true);
349 }
350 PreferencesUtil.setShowRankInChecklistEditor(isShowRank);
351 if (prefRank == null || isShowRank != Boolean.parseBoolean(prefRank.getValue())) {
352 PreferencesUtil.setBooleanValue(
353 PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowRankInDistributionEditor.getKey()),
354 true);
355 }
356 PreferencesUtil.setDisplayStatusInChecklistEditor(displayStatus);
357 if (prefStatusDisplay == null || displayStatus != prefStatusDisplay.getValue()) {
358 PreferencesUtil.setBooleanValue(
359 PreferencesUtil.prefOverrideKey(PreferencePredicate.DisplayOfStatus.getKey()),
360 true);
361 }
362 PreferencesUtil.setAreaDisplayInChecklistEditor(displayArea);
363 if (prefAreaDisplay == null || displayArea != prefAreaDisplay.getValue()) {
364 PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(
365 PreferencePredicate.DisplayOfAreasInDistributionEditor.getKey()), overrideAreaDisplay);
366 }
367 PreferencesUtil.setOwnDescriptionForChecklistEditor(ownDescriptionForDistributionEditor);
368 PreferencesUtil.setBooleanValue(
369 PreferencesUtil.prefOverrideKey(PreferencePredicate.OwnDescriptionForDistributionEditor.getKey()),
370 true);
371
372 // if (statusPref != null){
373 // PreferencesUtil.setStringValue(PreferencePredicate.AvailableDistributionStatus.getKey(),
374 // "");
375 // //PreferencesUtil.setStringValue(PreferencePredicate.AvailableDistributionStatus.getKey(),
376 // statusPref.getValue());
377 // PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.AvailableDistributionStatus.getKey()),true);
378 //
379 // }
380 // if (areaVocPref != null){
381 // PreferencesUtil.setStringValue(PreferencePredicate.AvailableDistributionAreaVocabularies.getKey(),
382 // "");
383 // PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.AvailableDistributionAreaVocabularies.getKey()),
384 // true);
385 // }
386 PreferencesUtil.firePreferencesChanged(this.getClass());
387
388 //}
389 return true;
390 }
391
392 /**
393 * {@inheritDoc}
394 */
395 @Override
396 public void widgetSelected(SelectionEvent e) {
397 setApply(true);
398 if (e.getSource().equals(statusDisplaySelectionCombo)) {
399 String text = statusDisplaySelectionCombo.getText();
400 for (TermDisplayEnum display : TermDisplayEnum.values()) {
401 if (text.startsWith(display.getLabel())) {
402 displayStatus = display.getKey();
403 break;
404 }
405 }
406 }
407 if (e.getSource().equals(areaDisplaySelectionCombo)) {
408 String text = areaDisplaySelectionCombo.getText();
409 for (TermDisplayEnum display : TermDisplayEnum.values()) {
410 if (text.startsWith(display.getLabel())) {
411 displayArea = display.getKey();
412 break;
413 }
414 }
415 }
416 if (e.getSource().equals(areaOrderSelectionCombo)) {
417 String text = areaOrderSelectionCombo.getText();
418 for (TermOrder display : TermOrder.values()) {
419 if (text.startsWith(display.getLabel())) {
420 orderAreas = display.getKey();
421 break;
422 }
423 }
424 }
425 if (e.getSource().equals(this.activateRankCombo)) {
426 String text = activateRankCombo.getText();
427 text = text.replace(" (Default)", "");
428 if (text.equals(SHOW_RANK)){
429 isShowRank = true;
430 }else{
431 isShowRank = false;
432 }
433 }
434
435 if (e.getSource().equals(this.activateCombo)) {
436 String text = activateCombo.getText();
437 text = text.replace(" (Default)", "");
438 if (text.equals(ENABLE)){
439 isEditorActivated = true;
440 }else{
441 isEditorActivated = false;
442 }
443 }
444 PreferencesUtil.recursiveSetEnabled(child, isEditorActivated);
445 }
446
447 /**
448 * {@inheritDoc}
449 */
450 @Override
451 public void widgetDefaultSelected(SelectionEvent e) {
452 // TODO Auto-generated method stub
453
454 }
455
456 /**
457 * {@inheritDoc}
458 */
459 @Override
460 public void getValues() {
461 isAdminPreference = false;
462 setPreferenceStore(PreferencesUtil.getPreferenceStore());
463 distributionEditorPref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.DistributionEditorActivated);
464
465 if (distributionEditorPref != null) {
466 // isAllowOverride = distributionEditorPref.isAllowOverride();
467
468 if (distributionEditorPref.isAllowOverride() ) {
469 isEditorActivated = PreferencesUtil
470 .getBooleanValue(PreferencePredicate.DistributionEditorActivated.getKey(), true);
471
472 } else {
473 isEditorActivated = Boolean.valueOf(distributionEditorPref.getValue());
474
475 }
476 overrideActivated = PreferencesUtil.getBooleanValue(
477 PreferencesUtil.prefOverrideKey(PreferencePredicate.DistributionEditorActivated.getKey()), true);
478 } else {
479 isEditorActivated = PreferencesUtil
480 .getBooleanValue(PreferencePredicate.DistributionEditorActivated.getKey(), true);
481 // isAllowOverride = true;
482 overrideActivated = PreferencesUtil.getBooleanValue(
483 PreferencesUtil.prefOverrideKey(PreferencePredicate.DistributionEditorActivated.getKey()), true);
484 distributionEditorPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.DistributionEditorActivated, PreferencePredicate.DistributionEditorActivated.getDefaultValue() != null ? PreferencePredicate.DistributionEditorActivated.getDefaultValue().toString(): null);
485 }
486
487 prefAreaVoc = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.AvailableDistributionAreaVocabularies);
488 if (prefAreaVoc == null){
489 prefAreaVoc = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionAreaVocabularies, PreferencePredicate.AvailableDistributionAreaVocabularies.getDefaultValue() != null ? PreferencePredicate.AvailableDistributionAreaVocabularies.getDefaultValue().toString(): null);
490 }
491
492
493 prefStatus = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.AvailableDistributionStatus);
494 if (prefStatus == null){
495 prefStatus = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionStatus, PreferencePredicate.AvailableDistributionStatus.getDefaultValue() != null ? PreferencePredicate.AvailableDistributionStatus.getDefaultValue().toString(): null);
496 }
497
498
499 prefAreaDisplay = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.DisplayOfAreasInDistributionEditor);
500 if (prefAreaDisplay != null) {
501
502 if (prefAreaDisplay.isAllowOverride()) {
503 displayArea = PreferencesUtil.displayAreaInChecklistEditor();
504 overrideAreaDisplay = PreferencesUtil.getBooleanValue(PreferencesUtil
505 .prefOverrideKey(PreferencePredicate.DisplayOfAreasInDistributionEditor.getKey()), true);
506 } else {
507 displayArea = prefAreaDisplay.getValue();
508 }
509 } else {
510 displayArea = PreferencesUtil.displayAreaInChecklistEditor();
511
512 overrideAreaDisplay = PreferencesUtil.getBooleanValue(
513 PreferencesUtil.prefOverrideKey(PreferencePredicate.DisplayOfAreasInDistributionEditor.getKey()), true);
514 prefAreaDisplay = CdmPreference.NewTaxEditorInstance(PreferencePredicate.DisplayOfAreasInDistributionEditor, PreferencePredicate.DisplayOfAreasInDistributionEditor.getDefaultValue() != null ? PreferencePredicate.DisplayOfAreasInDistributionEditor.getDefaultValue().toString(): null);
515 }
516
517 prefStatusDisplay = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.DisplayOfStatus);
518 if (prefStatusDisplay != null) {
519
520 if (prefStatusDisplay.isAllowOverride()) {
521 displayStatus = PreferencesUtil.displayStatusInChecklistEditor();
522 overrideStatusDisplay = PreferencesUtil
523 .getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.DisplayOfStatus.getKey()), true);
524 } else {
525 this.displayStatus = prefStatusDisplay.getValue();
526 }
527 } else {
528 displayStatus = PreferencesUtil.displayStatusInChecklistEditor();
529
530 overrideStatusDisplay = PreferencesUtil
531 .getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.DisplayOfStatus.getKey()), true);
532 prefStatusDisplay = CdmPreference.NewTaxEditorInstance(PreferencePredicate.DisplayOfStatus, PreferencePredicate.DisplayOfStatus.getDefaultValue() != null ? PreferencePredicate.DisplayOfStatus.getDefaultValue().toString(): null);
533 }
534
535 prefAreaSort = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.AreasSortedInDistributionEditor);
536 if (prefAreaSort != null) {
537
538 if (prefAreaSort.isAllowOverride()) {
539 orderAreas = PreferencesUtil.getSortNamedAreasInDistributionEditor();
540 overrideOrderAreas = PreferencesUtil.getBooleanValue(
541 PreferencesUtil.prefOverrideKey(PreferencePredicate.AreasSortedInDistributionEditor.getKey()), true);
542 } else {
543 if (prefAreaSort.getValue() != null) {
544 orderAreas = prefAreaSort.getValue().toString();
545 } else {
546 orderAreas = ((TermOrder) PreferencePredicate.AreasSortedInDistributionEditor.getDefaultValue())
547 .getKey();
548 }
549 }
550 } else {
551 orderAreas = PreferencesUtil.getSortNamedAreasInDistributionEditor();
552 overrideOrderAreas = PreferencesUtil.getBooleanValue(
553 PreferencesUtil.prefOverrideKey(PreferencePredicate.AreasSortedInDistributionEditor.getKey()), true);
554 prefAreaSort = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AreasSortedInDistributionEditor, PreferencePredicate.AreasSortedInDistributionEditor.getDefaultValue() != null ? PreferencePredicate.AreasSortedInDistributionEditor.getDefaultValue().toString(): null);
555 }
556
557 prefRank = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowRankInDistributionEditor);
558 if (prefRank != null) {
559 if (prefRank.isAllowOverride()) {
560 isShowRank = PreferencesUtil.isShowRankInChecklistEditor();
561 overrideRank = PreferencesUtil.getBooleanValue(
562 PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowRankInDistributionEditor.getKey()), true);
563 } else {
564 this.isShowRank = Boolean.valueOf(prefRank.getValue().toString());
565 }
566 } else {
567 isShowRank = PreferencesUtil.isShowRankInChecklistEditor();
568 overrideRank = PreferencesUtil.getBooleanValue(
569 PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowRankInDistributionEditor.getKey()), true);
570 prefRank = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowRankInDistributionEditor, PreferencePredicate.ShowRankInDistributionEditor.getDefaultValue() != null ? PreferencePredicate.ShowRankInDistributionEditor.getDefaultValue().toString(): null);
571 }
572
573 prefOwnDescription = PreferencesUtil
574 .getPreferenceFromDB(PreferencePredicate.OwnDescriptionForDistributionEditor);
575 if (prefOwnDescription != null) {
576 if (prefOwnDescription.isAllowOverride()) {
577 ownDescriptionForDistributionEditor = PreferencesUtil.isOwnDescriptionForChecklistEditor();
578 } else {
579 ownDescriptionForDistributionEditor = Boolean.valueOf(prefOwnDescription.getValue().toString());
580 }
581 } else {
582 ownDescriptionForDistributionEditor = PreferencesUtil.isShowRankInChecklistEditor();
583 // allowOverrideOwnDescriptionForDistributionEditor = true;
584 overrideOwnDescriptionForDistributionEditor = PreferencesUtil.getBooleanValue(
585 PreferencesUtil.prefOverrideKey(PreferencePredicate.OwnDescriptionForDistributionEditor.getKey()), true);
586 prefOwnDescription = CdmPreference.NewTaxEditorInstance(PreferencePredicate.OwnDescriptionForDistributionEditor, PreferencePredicate.OwnDescriptionForDistributionEditor.getDefaultValue() != null ? PreferencePredicate.OwnDescriptionForDistributionEditor.getDefaultValue().toString(): null);
587 }
588
589 commandHandlerString = "eu.etaxonomy.taxeditor.store.open.OpenDistributionEditorWizardHandler";
590 commandHandlerStringStatus = "eu.etaxonomy.taxeditor.store.open.OpenDistributionStatusWizardHandler";
591 }
592
593 @Override
594 protected void performDefaults() {
595 if (isAdminPreference){
596 isEditorActivated = (Boolean) PreferencePredicate.DistributionEditorActivated.getDefaultValue();
597 }else{
598 isEditorActivated = Boolean.parseBoolean(distributionEditorPref.getValue().toString());
599 }
600 if (isEditorActivated) {
601 activateCombo.select(0);
602 } else {
603 activateCombo.select(1);
604 }
605
606 if (isAdminPreference){
607 displayArea = ((TermDisplayEnum) PreferencePredicate.DisplayOfAreasInDistributionEditor.getDefaultValue())
608 .getKey();
609 }else{
610 displayArea = prefAreaDisplay.getValue().toString();
611 }
612
613 TermDisplayEnum areaDisplay;
614 try {
615 if (displayArea != null) {
616 areaDisplay = TermDisplayEnum.byKey(displayArea);
617 } else {
618 areaDisplay = TermDisplayEnum.Title;
619 }
620 } catch (IllegalArgumentException e) {
621 areaDisplay = TermDisplayEnum.Title;
622 }
623 int index = 0;
624 for (String itemLabel : areaDisplaySelectionCombo.getItems()) {
625 if (itemLabel.equalsIgnoreCase(areaDisplay.getLabel())) {
626 areaDisplaySelectionCombo.select(index);
627 break;
628 }
629 index++;
630 }
631
632 if (isAdminPreference){
633 displayStatus = ((TermDisplayEnum) PreferencePredicate.DisplayOfStatus.getDefaultValue()).getKey();
634 }else{
635 displayStatus = prefStatusDisplay.getValue().toString();
636 }
637
638 TermDisplayEnum statusDisplay;
639 try {
640 if (displayStatus != null) {
641 statusDisplay = TermDisplayEnum.byKey(displayStatus);
642 } else {
643 statusDisplay = TermDisplayEnum.Title;
644 }
645 } catch (IllegalArgumentException e) {
646 statusDisplay = TermDisplayEnum.Title;
647 }
648 index = 0;
649 for (String itemLabel : statusDisplaySelectionCombo.getItems()) {
650 if (itemLabel.equalsIgnoreCase(statusDisplay.getLabel())) {
651 statusDisplaySelectionCombo.select(index);
652 break;
653 }
654 index++;
655 }
656 if (isAdminPreference){
657 orderAreas = ((TermOrder) PreferencePredicate.AreasSortedInDistributionEditor.getDefaultValue()).getKey();
658 }else{
659 orderAreas = prefAreaSort.getValue().toString();
660 }
661
662 index = 0;
663 if (PreferencesUtil.getStringValue(PreferencePredicate.DistributionEditorActivated.getKey()) != null) {
664 TermOrder areaOrder;
665 try {
666 if (orderAreas != null) {
667 areaOrder = TermOrder.valueOf(orderAreas);
668 } else {
669 areaOrder = TermOrder.IdInVoc;
670 }
671 } catch (IllegalArgumentException e) {
672 areaOrder = TermOrder.IdInVoc;
673 }
674 for (String itemLabel : areaOrderSelectionCombo.getItems()) {
675 if (itemLabel.equalsIgnoreCase(areaOrder.getLabel())) {
676 areaOrderSelectionCombo.select(index);
677 break;
678 }
679 index++;
680 }
681 }
682
683 if (isAdminPreference){
684 isShowRank = Boolean.valueOf(PreferencePredicate.ShowRankInDistributionEditor.getDefaultValue().toString());
685 }else{
686 isShowRank = Boolean.parseBoolean(prefRank.getValue().toString());
687 }
688
689 if (isShowRank) {
690 activateRankCombo.select(0);
691 } else {
692 activateRankCombo.select(1);
693 }
694
695 ownDescriptionForDistributionEditor = Boolean
696 .valueOf(PreferencePredicate.OwnDescriptionForDistributionEditor.getDefaultValue().toString());
697
698 allowOverrideActivatedButton.setSelection(true);
699 overrideActivated = true;
700
701 overrideAreaDisplay = true;
702 allowOverrideAreaDisplayButton.setSelection(true);
703
704 overrideStatusDisplay = true;
705 allowOverrideStatusDisplayButton.setSelection(true);
706
707 overrideOrderAreas = true;
708 allowOverrideOrderAreasButton.setSelection(true);
709
710 overrideRank = true;
711 allowOverrideRankButton.setSelection(true);
712
713 overrideOwnDescriptionForDistributionEditor = true;
714
715 this.statusPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionStatus, null);
716 this.areaVocPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionAreaVocabularies,
717 null);
718 if (!isAdminPreference) {
719 PreferencesUtil.recursiveSetEnabled(child, isEditorActivated);
720
721 if (!prefAreaVoc.isAllowOverride()) {
722 button_openSelectAreaVocabularies.setButtonEnabled(false);
723 }
724 if (!prefStatus.isAllowOverride()) {
725 button_openStatusWizard.setButtonEnabled(false);
726 }
727 if (!prefRank.isAllowOverride()) {
728 activateRankCombo.setEnabled(false);
729
730 if (!prefAreaSort.isAllowOverride()) {
731 areaOrderSelectionCombo.setEnabled(false);
732 allowOverrideOrderAreasButton.setEnabled(false);
733 }
734 if (!prefAreaDisplay.isAllowOverride()) {
735 allowOverrideAreaDisplayButton.setEnabled(false);
736 }
737 if (!prefStatusDisplay.isAllowOverride()) {
738 allowOverrideStatusDisplayButton.setEnabled(false);
739 }
740 }
741 super.performDefaults();
742 }
743 }
744
745 }