Project

General

Profile

Download (36.2 KB) Statistics
| Branch: | Tag: | Revision:
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
    protected boolean allowOverrideActivated;
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
    protected boolean allowOverrideOwnDescriptionForDistributionEditor;
51
    protected boolean overrideOwnDescriptionForDistributionEditor;
52
    protected boolean allowOverrideAreaVoc;
53
    protected boolean overrideAreaVoc;
54
    protected boolean allowOverrideRank;
55
    protected boolean overrideRank;
56
    protected boolean allowOverrideOrderAreas;
57
    protected boolean overrideOrderAreas;
58
    protected boolean allowOverrideAreaDisplay;
59
    protected boolean overrideAreaDisplay;
60
    protected boolean allowOverrideStatusDisplay;
61
    protected boolean overrideStatusDisplay;
62

    
63
    protected boolean allowOverrideStatus;
64
    protected Combo areaOrderSelectionCombo;
65
    protected Button allowOverrideOrderAreasButton;
66
    protected Combo statusDisplaySelectionCombo;
67
    protected Button allowOverrideStatusDisplayButton;
68
    protected Combo areaDisplaySelectionCombo;
69
    protected Button allowOverrideAreaDisplayButton;
70
    protected String commandHandlerString;
71
    protected String commandHandlerStringStatus;
72

    
73

    
74

    
75
    protected CdmPreference distributionEditorPref;
76
    Composite child ;
77
    protected boolean isAllowOverride;
78

    
79
    protected Combo activateCombo;
80
   // protected Button allowOverrideActivatedButton;
81

    
82
    protected Button activateRankButton;
83
    protected Button allowOverrideRankButton;
84

    
85
    protected CdmPreference areaVocPref = null;
86
    protected CdmPreference statusPref = null;
87
    private CommandHandlerButton button_openSelectAreas;
88
    private CommandHandlerButton button_openStatusWizard;
89

    
90
    @Override
91
    protected Control createContents(Composite parent) {
92
        getValues();
93
        Composite composite = new Composite(parent, SWT.NULL);
94
        composite.setLayout(new GridLayout());
95
        if(!isAdminPreference && !isEditorActivated && !isAllowOverride){
96
            Label label = new Label(composite, SWT.NONE);
97
            label.setText("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.");
98
            this.setDefaultButtonActivated(false);
99
         }else{
100
            Composite activateComp = createComposite(composite);
101
            Label separator= new Label(activateComp, SWT.HORIZONTAL | SWT.SEPARATOR);
102
            GridData sepGrid = createTextGridData();
103
            separator.setLayoutData(sepGrid);
104
            separator.setVisible(false);
105
            activateCombo = new Combo(activateComp, SWT.BORDER| SWT.READ_ONLY);
106
            CdmPreference dbPref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.DistributionEditorActivated);
107
            if (dbPref != null){
108
                if (Boolean.valueOf(dbPref.getValue())){
109
                    activateCombo.add("Enable (default)");
110
                    activateCombo.add("Disable");
111
                }else{
112
                    activateCombo.add("Enable");
113
                    activateCombo.add("Disable (default)");
114
                }
115
            }else{
116
                boolean defaultValue = (Boolean)PreferencePredicate.DistributionEditorActivated.getDefaultValue();
117
                if (defaultValue){
118
                    activateCombo.add("Enable (default)");
119
                    activateCombo.add("Disable");
120
                }else{
121
                    activateCombo.add("Enable");
122
                    activateCombo.add("Disable (default)");
123
                }
124
            }
125

    
126
            if (isEditorActivated){
127
                activateCombo.select(0);
128
            }else{
129
                activateCombo.select(1);
130
            }
131

    
132

    
133
            activateCombo.addSelectionListener(this);
134
//            allowOverrideActivatedButton = createAllowOverrideButton(activateComp);
135
//            if (isAdminPreference){
136
//                allowOverrideActivatedButton.setSelection(allowOverrideActivated);
137
//                allowOverrideActivatedButton.addSelectionListener(new SelectionAdapter(){
138
//                    @Override
139
//                    public void widgetSelected(SelectionEvent e) {
140
//                        setApply(true);
141
//                        allowOverrideActivated = allowOverrideActivatedButton.getSelection();
142
//                    }
143
//                });
144
//            }else{
145
//                allowOverrideActivatedButton.setSelection(overrideActivated);
146
//                allowOverrideActivatedButton.addSelectionListener(new SelectionAdapter(){
147
//                    @Override
148
//                    public void widgetSelected(SelectionEvent e) {
149
//                        setApply(true);
150
//                        overrideActivated = allowOverrideActivatedButton.getSelection();
151
//                    }
152
//                });
153
//            }
154

    
155

    
156
            child  = createComposite(composite);
157

    
158
            if(!isAdminPreference){
159
               child.setEnabled(isEditorActivated);
160
            }
161
            separator= new Label(child, SWT.HORIZONTAL | SWT.SEPARATOR);
162
            sepGrid = createTextGridData();
163

    
164
            GridData textGrid = createTextGridData();
165
            textGrid.verticalSpan = 2;
166
            separator.setLayoutData(sepGrid);
167

    
168

    
169
            activateRankButton = new Button(child, SWT.CHECK);
170
            activateRankButton.setText(Messages.ChecklistEditorGeneralPreference_show_rank);
171
            activateRankButton.setSelection(isShowRank);
172
            activateRankButton.addSelectionListener(new SelectionAdapter(){
173
                @Override
174
                public void widgetSelected(SelectionEvent e) {
175
                    setApply(true);
176
                    isShowRank = activateRankButton.getSelection();
177
                }
178
            });
179
            allowOverrideRankButton = createAllowOverrideButton(child);
180
            if (isAdminPreference){
181
                allowOverrideRankButton.setSelection(allowOverrideRank);
182
                allowOverrideRankButton.addSelectionListener(new SelectionAdapter(){
183
                    @Override
184
                    public void widgetSelected(SelectionEvent e) {
185
                        setApply(true);
186
                        allowOverrideRank = allowOverrideRankButton.getSelection();
187
                    }
188
                });
189
            }else{
190
                allowOverrideRankButton.setSelection(overrideRank);
191
                allowOverrideRankButton.addSelectionListener(new SelectionAdapter(){
192
                    @Override
193
                    public void widgetSelected(SelectionEvent e) {
194
                        setApply(true);
195
                        overrideRank = !overrideRank;
196
                    }
197
                });
198

    
199
            }
200

    
201
            final CLabel areaOrderLabel = new CLabel(child, SWT.NULL);
202
            areaOrderLabel.setText(Messages.ChecklistEditorGeneralPreference_Configure_area_order);
203
            areaOrderLabel.setLayoutData(textGrid);
204

    
205

    
206
            GridData gridData = new GridData();
207
            gridData = new GridData(GridData.BEGINNING, GridData.CENTER, true, false);
208
            areaOrderSelectionCombo = new Combo(child, SWT.BORDER| SWT.READ_ONLY);
209
            areaOrderSelectionCombo.setLayoutData(gridData);
210

    
211
            for(TermOrder display: TermOrder.values()){
212
                areaOrderSelectionCombo.add(display.getLabel());
213
            }
214
            int index = 0;
215
            if (PreferencesUtil.getStringValue(PreferencePredicate.DistributionEditorActivated.getKey()) != null){
216
                TermOrder areaOrder;
217
                try{
218
                    if (orderAreas != null){
219
                        areaOrder  = TermOrder.valueOf(orderAreas);
220
                    }else{
221
                        areaOrder = TermOrder.IdInVoc;
222
                    }
223
                }catch(IllegalArgumentException e){
224
                    areaOrder = TermOrder.IdInVoc;
225
                }
226
                for (String itemLabel : areaOrderSelectionCombo.getItems()){
227
                    if (itemLabel.equalsIgnoreCase(areaOrder.getLabel())){
228
                        areaOrderSelectionCombo.select(index);
229
                        break;
230
                    }
231
                    index++;
232
                }
233
            }
234
            areaOrderSelectionCombo.addSelectionListener(this);
235

    
236

    
237

    
238
//            final Button sortNamedAreaByVocabularyOrder = new Button(child, SWT.CHECK);
239
//            sortNamedAreaByVocabularyOrder.setText(Messages.ChecklistEditorGeneralPreference_sort_areas);
240
//            sortNamedAreaByVocabularyOrder.setSelection(isSortByVocabularyOrder);
241
//            sortNamedAreaByVocabularyOrder.addSelectionListener(new SelectionAdapter(){
242
//                @Override
243
//                public void widgetSelected(SelectionEvent e) {
244
//                    setApply(true);
245
//                    isSortByVocabularyOrder = sortNamedAreaByVocabularyOrder.getSelection();
246
//                 }
247
//            });
248
            allowOverrideOrderAreasButton = createAllowOverrideButton(child);
249
            if (isAdminPreference){
250
                allowOverrideOrderAreasButton.setSelection(allowOverrideOrderAreas);
251
                allowOverrideOrderAreasButton.addSelectionListener(new SelectionAdapter(){
252
                    @Override
253
                    public void widgetSelected(SelectionEvent e) {
254
                        setApply(true);
255
                        allowOverrideOrderAreas = allowOverrideOrderAreasButton.getSelection();
256
                    }
257
                });
258
            }else{
259
                allowOverrideOrderAreasButton.setSelection(overrideOrderAreas);
260
                allowOverrideOrderAreasButton.addSelectionListener(new SelectionAdapter(){
261
                    @Override
262
                    public void widgetSelected(SelectionEvent e) {
263
                        setApply(true);
264
                        overrideOrderAreas = allowOverrideOrderAreasButton.getSelection();
265
                    }
266
                });
267

    
268
            }
269

    
270
//            final Button ownDescription = new Button(child, SWT.CHECK);
271
//            ownDescription.setText(Messages.ChecklistEditorGeneralPreference_own_Description);
272
//            ownDescription.setToolTipText(Messages.ChecklistEditorGeneralPreference_own_DescriptionToolTip);
273
//            ownDescription.setSelection(ownDescriptionForDistributionEditor);
274
//            ownDescription.addSelectionListener(new SelectionAdapter(){
275
//                @Override
276
//                public void widgetSelected(SelectionEvent e) {
277
//                    setApply(true);
278
//                    ownDescriptionForDistributionEditor = ownDescription.getSelection();
279
//                 }
280
//            });
281
//            Button allowOverrideDescription = createAllowOverrideButton(child);
282
//            if (isAdminPreference){
283
//                allowOverrideDescription.setSelection(allowOverrideOwnDescriptionForDistributionEditor);
284
//                allowOverrideDescription.addSelectionListener(new SelectionAdapter(){
285
//                    @Override
286
//                    public void widgetSelected(SelectionEvent e) {
287
//                        setApply(true);
288
//                        allowOverrideOwnDescriptionForDistributionEditor = allowOverrideDescription.getSelection();
289
//                    }
290
//                });
291
//            }else{
292
//                allowOverrideDescription.setSelection(overrideOwnDescriptionForDistributionEditor);
293
//                allowOverrideDescription.addSelectionListener(new SelectionAdapter(){
294
//                    @Override
295
//                    public void widgetSelected(SelectionEvent e) {
296
//                        setApply(true);
297
//                        overrideOwnDescriptionForDistributionEditor = allowOverrideDescription.getSelection();
298
//                    }
299
//                });
300
//                if (!allowOverrideOwnDescriptionForDistributionEditor){
301
//                    ownDescription.setEnabled(false);
302
//                    allowOverrideDescription.setEnabled(false);
303
//                }
304
//            }
305

    
306

    
307
            separator= new Label(child, SWT.HORIZONTAL | SWT.SEPARATOR);
308
            separator.setLayoutData(sepGrid);
309

    
310
//
311

    
312
            final CLabel description = new CLabel(child, SWT.NULL);
313
            description.setText(Messages.ChecklistEditorGeneralPreference_Configure_display_of_Areas);
314
            description.setLayoutData(textGrid);
315

    
316

    
317
            //gridData.horizontalIndent = 5;
318

    
319

    
320
            areaDisplaySelectionCombo = new Combo(child, SWT.BORDER| SWT.READ_ONLY);
321
            areaDisplaySelectionCombo.setLayoutData(gridData);
322

    
323
            for(TermDisplayEnum display: TermDisplayEnum.values()){
324
                areaDisplaySelectionCombo.add(display.getLabel());
325
            }
326
            index = 0;
327
            if (PreferencesUtil.getStringValue(PreferencePredicate.DistributionEditorActivated.getKey()) != null){
328
                TermDisplayEnum areaDisplay;
329
                try{
330
                    if (displayArea != null){
331
                        areaDisplay  = TermDisplayEnum.byKey(displayArea);
332
                    }else{
333
                        areaDisplay = TermDisplayEnum.Title;
334
                    }
335
                }catch(IllegalArgumentException e){
336
                    areaDisplay = TermDisplayEnum.Title;
337
                }
338

    
339
                for (String itemLabel : areaDisplaySelectionCombo.getItems()){
340
                    if (itemLabel.equalsIgnoreCase(areaDisplay.getLabel())){
341
                        areaDisplaySelectionCombo.select(index);
342
                        break;
343
                    }
344
                    index++;
345
                }
346
            }
347
            areaDisplaySelectionCombo.addSelectionListener(this);
348
            allowOverrideAreaDisplayButton = createAllowOverrideButton(child);
349
            if (isAdminPreference){
350
                allowOverrideAreaDisplayButton.setSelection(allowOverrideAreaDisplay);
351
                allowOverrideAreaDisplayButton.addSelectionListener(new SelectionAdapter(){
352
                    @Override
353
                    public void widgetSelected(SelectionEvent e) {
354
                        setApply(true);
355
                        allowOverrideAreaDisplay = allowOverrideAreaDisplayButton.getSelection();
356
                    }
357
                });
358
            }else{
359
                allowOverrideAreaDisplayButton.setSelection(overrideAreaDisplay);
360
                allowOverrideAreaDisplayButton.addSelectionListener(new SelectionAdapter(){
361
                    @Override
362
                    public void widgetSelected(SelectionEvent e) {
363
                        setApply(true);
364
                        overrideAreaDisplay = allowOverrideAreaDisplayButton.getSelection();
365
                    }
366
                });
367
                if (!allowOverrideAreaDisplay){
368
                    areaDisplaySelectionCombo.setEnabled(false);
369
                    allowOverrideAreaDisplayButton.setEnabled(false);
370
                }
371
            }
372

    
373
            final CLabel descriptionStatus = new CLabel(child, SWT.NULL);
374
            descriptionStatus.setText(Messages.ChecklistEditorGeneralPreference_Configure_display_of_Status);
375
            descriptionStatus.setLayoutData(textGrid);
376

    
377

    
378

    
379
            statusDisplaySelectionCombo = new Combo(child, SWT.BORDER| SWT.READ_ONLY);
380
            statusDisplaySelectionCombo.setLayoutData(gridData);
381

    
382
            for(TermDisplayEnum display: TermDisplayEnum.values()){
383
                statusDisplaySelectionCombo.add(display.getLabel());
384
            }
385
            index = 0;
386
            if (displayStatus != null){
387
                TermDisplayEnum statusDisplay = TermDisplayEnum.byKey(displayStatus);
388
                for (String itemLabel : statusDisplaySelectionCombo.getItems()){
389
                    if (itemLabel.equalsIgnoreCase(statusDisplay.getLabel())){
390
                        statusDisplaySelectionCombo.select(index);
391
                        break;
392
                    }
393
                    index++;
394
                }
395
            }
396

    
397
            statusDisplaySelectionCombo.addSelectionListener(this);
398
            allowOverrideStatusDisplayButton = createAllowOverrideButton(child);
399
            if (isAdminPreference){
400
                allowOverrideStatusDisplayButton.setSelection(allowOverrideStatusDisplay);
401
                allowOverrideStatusDisplayButton.addSelectionListener(new SelectionAdapter(){
402
                    @Override
403
                    public void widgetSelected(SelectionEvent e) {
404
                        setApply(true);
405
                        allowOverrideStatusDisplay = allowOverrideStatusDisplayButton.getSelection();
406
                    }
407
                });
408
            }else{
409
                allowOverrideStatusDisplayButton.setSelection(overrideStatusDisplay);
410
                allowOverrideStatusDisplayButton.addSelectionListener(new SelectionAdapter(){
411
                    @Override
412
                    public void widgetSelected(SelectionEvent e) {
413
                        setApply(true);
414
                        overrideStatusDisplay = allowOverrideStatusDisplayButton.getSelection();
415
                    }
416
                });
417
                if (!allowOverrideStatusDisplay){
418
                    statusDisplaySelectionCombo.setEnabled(false);
419
                    allowOverrideStatusDisplayButton.setEnabled(false);
420
                }
421
            }
422

    
423

    
424
            final CLabel labelStatus = new CLabel(child, SWT.NULL);
425
            labelStatus.setText(Messages.DistributionAdminPreferences_SELECT_STATUS);
426
            labelStatus.setLayoutData(textGrid);
427

    
428
            button_openStatusWizard = new CommandHandlerButton(child, SWT.PUSH,
429
                    commandHandlerStringStatus);
430

    
431
            button_openStatusWizard.setText(Messages.Distribution_status_selection);
432
            button_openStatusWizard.addListener(SWT.Selection, new Listener() {
433
                @Override
434
                public void handleEvent(Event e) {
435
                  switch (e.type) {
436
                  case SWT.Selection:
437
                    setApply(true);
438
                    break;
439
                  }
440
                }
441
              });
442

    
443

    
444
            final CLabel label = new CLabel(child, SWT.NULL);
445
            label.setText(Messages.ChecklistEditorGeneralPreference_open_wizard);
446
            label.setLayoutData(textGrid);
447

    
448
            button_openSelectAreas = new CommandHandlerButton(child, SWT.PUSH,
449
                      commandHandlerString);
450
            button_openSelectAreas.setText(Messages.ChecklistEditorGeneralPreference_open_distribution_selection);
451

    
452

    
453

    
454

    
455
//            if(isEditorActivated){
456
//                child.setEnabled(true);
457
//            }else{
458
//                child.setEnabled(false);
459
//            }
460
            if (!isAdminPreference){
461
                PreferencesUtil.recursiveSetEnabled(child, isEditorActivated);
462

    
463
                if (!allowOverrideAreaVoc){
464
                    button_openSelectAreas.setButtonEnabled(false);
465
                 }
466
                if (!allowOverrideStatus){
467
                    button_openStatusWizard.setButtonEnabled(false);
468
                }
469
                if (!allowOverrideRank){
470
                    activateRankButton.setEnabled(false);
471
                    allowOverrideRankButton.setEnabled(false);
472
                }
473
                if (!allowOverrideOrderAreas){
474
                    areaOrderSelectionCombo.setEnabled(false);
475
                    allowOverrideOrderAreasButton.setEnabled(false);
476
                }
477
                if (!allowOverrideAreaDisplay){
478

    
479
                    allowOverrideAreaDisplayButton.setEnabled(false);
480
                }
481
                if (!allowOverrideStatusDisplay){
482

    
483
                    allowOverrideStatusDisplayButton.setEnabled(false);
484
                }
485
             }
486
        }
487

    
488

    
489
        setValid(true);
490
        return composite;
491
    }
492

    
493

    
494

    
495

    
496

    
497

    
498

    
499

    
500

    
501
    @Override
502
    public boolean performOk() {
503
        if (isAllowOverride){
504

    
505
            PreferencesUtil.setBooleanValue(PreferencePredicate.DistributionEditorActivated.getKey(), isEditorActivated);
506
            PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.DistributionEditorActivated.getKey()), overrideActivated);
507
            PreferencesUtil.setSortNamedAreasInDistributionEditor(orderAreas);
508
            PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.AreasSortedInDistributionEditor.getKey()), overrideOrderAreas);
509
            PreferencesUtil.setShowRankInChecklistEditor(isShowRank);
510
            PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowRankInDistributionEditor.getKey()), overrideRank);
511
            PreferencesUtil.setDisplayStatusInChecklistEditor(displayStatus);
512
            PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.DisplayOfStatus.getKey()), overrideStatusDisplay);
513
            PreferencesUtil.setAreaDisplayInChecklistEditor(displayArea);
514
            PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.DisplayOfAreasInDistributionEditor.getKey()), overrideAreaDisplay);
515
            PreferencesUtil.setOwnDescriptionForChecklistEditor(ownDescriptionForDistributionEditor);
516
            PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.OwnDescriptionForDistributionEditor.getKey()), overrideOwnDescriptionForDistributionEditor);
517

    
518
            if (statusPref != null){
519
                PreferencesUtil.setStringValue(PreferencePredicate.AvailableDistributionStatus.getKey(), "");
520
                //PreferencesUtil.setStringValue(PreferencePredicate.AvailableDistributionStatus.getKey(), statusPref.getValue());
521
                PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.AvailableDistributionStatus.getKey()),true);
522

    
523
            }
524
            if (areaVocPref != null){
525
                PreferencesUtil.setStringValue(PreferencePredicate.AvailableDistributionAreaVocabularies.getKey(), "");
526
                PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.AvailableDistributionAreaVocabularies.getKey()), true);
527
            }
528
            PreferencesUtil.firePreferencesChanged(this.getClass());
529

    
530
        }
531
        return true;
532
    }
533

    
534
    /**
535
     * {@inheritDoc}
536
     */
537
    @Override
538
    public void widgetSelected(SelectionEvent e) {
539
        setApply(true);
540
        if (e.getSource().equals(statusDisplaySelectionCombo)){
541
            String text = statusDisplaySelectionCombo.getText();
542
            for (TermDisplayEnum display: TermDisplayEnum.values()){
543
                if (display.getLabel().equals(text)){
544
                    displayStatus = display.getKey();
545
                    break;
546
                }
547
            }
548
        }
549
        if (e.getSource().equals(areaDisplaySelectionCombo)){
550
            String text = areaDisplaySelectionCombo.getText();
551
            for (TermDisplayEnum display: TermDisplayEnum.values()){
552
                if (display.getLabel().equals(text)){
553
                    displayArea = display.getKey();
554
                    break;
555
                }
556
            }
557
        }
558
        if (e.getSource().equals(areaOrderSelectionCombo)){
559
            String text = areaOrderSelectionCombo.getText();
560
            for (TermOrder display: TermOrder.values()){
561
                if (display.getLabel().equals(text)){
562
                    orderAreas = display.getKey();
563
                    break;
564
                }
565
            }
566
        }
567

    
568
    }
569

    
570
    /**
571
     * {@inheritDoc}
572
     */
573
    @Override
574
    public void widgetDefaultSelected(SelectionEvent e) {
575
        // TODO Auto-generated method stub
576

    
577
    }
578

    
579

    
580
    /**
581
     * {@inheritDoc}
582
     */
583
    @Override
584
    public void getValues() {
585
        isAdminPreference = false;
586
        setPreferenceStore(PreferencesUtil.getPreferenceStore());
587
        distributionEditorPref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.DistributionEditorActivated);
588

    
589

    
590
        if (distributionEditorPref != null){
591
            isAllowOverride = distributionEditorPref.isAllowOverride();
592

    
593
            if (isAllowOverride && PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.DistributionEditorActivated.getKey()))){
594
                isEditorActivated = PreferencesUtil.getBooleanValue(PreferencePredicate.DistributionEditorActivated.getKey());
595
                overrideActivated = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.DistributionEditorActivated.getKey()));
596
            }else{
597
                isEditorActivated = Boolean.valueOf(distributionEditorPref.getValue());
598
            }
599
        }else{
600
            isEditorActivated = PreferencesUtil.getBooleanValue(PreferencePredicate.DistributionEditorActivated.getKey());
601
            isAllowOverride = true;
602
            overrideActivated = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.DistributionEditorActivated.getKey()));
603
        }
604

    
605
        CdmPreference prefStatus = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.AvailableDistributionAreaVocabularies);
606
        allowOverrideAreaVoc = prefStatus != null?prefStatus.isAllowOverride():true;
607

    
608
        prefStatus = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.AvailableDistributionStatus);
609
        allowOverrideStatus = prefStatus != null?prefStatus.isAllowOverride():true;
610

    
611
        CdmPreference pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.DisplayOfAreasInDistributionEditor);
612
        if (pref != null){
613
            this.allowOverrideAreaDisplay = pref.isAllowOverride();
614
            if (allowOverrideAreaDisplay){
615
                displayArea = PreferencesUtil.displayAreaInChecklistEditor();
616
                overrideAreaDisplay = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.DisplayOfAreasInDistributionEditor.getKey()));
617
            }else{
618
                displayArea = pref.getValue();
619
            }
620
        }else{
621
            displayArea = PreferencesUtil.displayAreaInChecklistEditor();;
622
            this.allowOverrideAreaDisplay = true;
623
            overrideAreaDisplay = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.DisplayOfAreasInDistributionEditor.getKey()));
624
        }
625

    
626
        pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.DisplayOfStatus);
627
        if (pref != null){
628
            this.allowOverrideStatusDisplay = pref.isAllowOverride();
629
            if (allowOverrideStatusDisplay){
630
                displayStatus = PreferencesUtil.displayStatusInChecklistEditor();
631
                overrideStatusDisplay = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.DisplayOfStatus.getKey()));
632
            }else{
633
                this.displayStatus = pref.getValue();
634
            }
635
        }else{
636
            displayStatus = PreferencesUtil.displayStatusInChecklistEditor();
637
            this.allowOverrideStatusDisplay = true;
638
            overrideStatusDisplay = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.DisplayOfStatus.getKey()));
639
        }
640

    
641
        pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.AreasSortedInDistributionEditor);
642
        if (pref != null){
643

    
644
            this.allowOverrideOrderAreas = pref.isAllowOverride();
645
            if (allowOverrideOrderAreas){
646
                orderAreas = PreferencesUtil.getSortNamedAreasInDistributionEditor();
647
                overrideOrderAreas = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.AreasSortedInDistributionEditor.getKey()));
648
            }else{
649
                if (pref.getValue() != null){
650
                    orderAreas = pref.getValue().toString();
651
                }else{
652
                    orderAreas = ((TermOrder)PreferencePredicate.AreasSortedInDistributionEditor.getDefaultValue()).getKey();
653
                }
654
            }
655
        }else{
656
            orderAreas = PreferencesUtil.getSortNamedAreasInDistributionEditor();
657
            this.allowOverrideOrderAreas = true;
658
            overrideOrderAreas = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.AreasSortedInDistributionEditor.getKey()));
659
        }
660

    
661
        pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowRankInDistributionEditor);
662
        if (pref != null){
663

    
664
            allowOverrideRank = pref.isAllowOverride();
665
            if (allowOverrideRank){
666
                isShowRank = PreferencesUtil.isShowRankInChecklistEditor();
667
                overrideRank = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowRankInDistributionEditor.getKey()));
668
            }else{
669
                this.isShowRank = Boolean.valueOf(pref.getValue().toString());
670
            }
671
        }else{
672
            isShowRank = PreferencesUtil.isShowRankInChecklistEditor();
673
            this.allowOverrideRank = true;
674
            overrideRank = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowRankInDistributionEditor.getKey()));
675
        }
676

    
677
        pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.OwnDescriptionForDistributionEditor);
678
        if (pref != null){
679

    
680
            allowOverrideOwnDescriptionForDistributionEditor = pref.isAllowOverride();
681
            if (allowOverrideOwnDescriptionForDistributionEditor){
682
                ownDescriptionForDistributionEditor = PreferencesUtil.isOwnDescriptionForChecklistEditor();
683
            }else{
684
                ownDescriptionForDistributionEditor = Boolean.valueOf(pref.getValue().toString());
685
            }
686
        }else{
687
            ownDescriptionForDistributionEditor = PreferencesUtil.isShowRankInChecklistEditor();
688
            allowOverrideOwnDescriptionForDistributionEditor = true;
689
            overrideOwnDescriptionForDistributionEditor = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.OwnDescriptionForDistributionEditor.getKey()));
690
        }
691

    
692

    
693
        commandHandlerString = "eu.etaxonomy.taxeditor.store.open.OpenDistributionEditorWizardHandler";
694
        commandHandlerStringStatus = "eu.etaxonomy.taxeditor.store.open.OpenDistributionStatusWizardHandler";
695

    
696

    
697
    }
698

    
699
    @Override
700
    protected void performDefaults() {
701
        isEditorActivated = (Boolean)PreferencePredicate.DistributionEditorActivated.getDefaultValue();
702
        if (isEditorActivated){
703
            activateCombo.select(0);
704
        }else{
705
            activateCombo.select(1);
706
        }
707

    
708
        displayArea = ((TermDisplayEnum)PreferencePredicate.DisplayOfAreasInDistributionEditor.getDefaultValue()).getKey();
709
        TermDisplayEnum areaDisplay;
710
        try{
711
            if (displayArea != null){
712
                areaDisplay  = TermDisplayEnum.byKey(displayArea);
713
            }else{
714
                areaDisplay = TermDisplayEnum.Title;
715
            }
716
        }catch(IllegalArgumentException e){
717
            areaDisplay = TermDisplayEnum.Title;
718
        }
719
        int index = 0;
720
        for (String itemLabel : areaDisplaySelectionCombo.getItems()){
721
            if (itemLabel.equalsIgnoreCase(areaDisplay.getLabel())){
722
                areaDisplaySelectionCombo.select(index);
723
                break;
724
            }
725
            index++;
726
        }
727

    
728
        displayStatus = ((TermDisplayEnum)PreferencePredicate.DisplayOfStatus.getDefaultValue()).getKey();
729
        TermDisplayEnum statusDisplay;
730
        try{
731
            if (displayStatus != null){
732
                statusDisplay  = TermDisplayEnum.byKey(displayStatus);
733
            }else{
734
                statusDisplay = TermDisplayEnum.Title;
735
            }
736
        }catch(IllegalArgumentException e){
737
            statusDisplay = TermDisplayEnum.Title;
738
        }
739
        index = 0;
740
        for (String itemLabel : statusDisplaySelectionCombo.getItems()){
741
            if (itemLabel.equalsIgnoreCase(statusDisplay.getLabel())){
742
                statusDisplaySelectionCombo.select(index);
743
                break;
744
            }
745
            index++;
746
        }
747

    
748

    
749

    
750
        orderAreas = ((TermOrder)PreferencePredicate.AreasSortedInDistributionEditor.getDefaultValue()).getKey();
751
        index = 0;
752
        if (PreferencesUtil.getStringValue(PreferencePredicate.DistributionEditorActivated.getKey()) != null){
753
            TermOrder areaOrder;
754
            try{
755
                if (orderAreas != null){
756
                    areaOrder  = TermOrder.valueOf(orderAreas);
757
                }else{
758
                    areaOrder = TermOrder.IdInVoc;
759
                }
760
            }catch(IllegalArgumentException e){
761
                areaOrder = TermOrder.IdInVoc;
762
            }
763
            for (String itemLabel : areaOrderSelectionCombo.getItems()){
764
                if (itemLabel.equalsIgnoreCase(areaOrder.getLabel())){
765
                    areaOrderSelectionCombo.select(index);
766
                    break;
767
                }
768
                index++;
769
            }
770
        }
771

    
772

    
773
        isShowRank = Boolean.valueOf(PreferencePredicate.ShowRankInDistributionEditor.getDefaultValue().toString());
774
        activateRankButton.setSelection(isShowRank);
775

    
776
        ownDescriptionForDistributionEditor = Boolean.valueOf(PreferencePredicate.OwnDescriptionForDistributionEditor.getDefaultValue().toString());
777

    
778
        allowOverrideActivated = true;
779
      //  allowOverrideActivatedButton.setSelection(allowOverrideActivated);
780
        overrideActivated = true;
781
        allowOverrideAreaDisplay = true;
782
        overrideAreaDisplay = true;
783
        allowOverrideAreaDisplayButton.setSelection(allowOverrideAreaDisplay);
784
        allowOverrideStatusDisplay = true;
785
        overrideStatusDisplay = true;
786
        allowOverrideStatusDisplayButton.setSelection(allowOverrideStatusDisplay);
787
        allowOverrideOrderAreas = true;
788
        overrideOrderAreas = true;
789
        allowOverrideOrderAreasButton.setSelection(allowOverrideOrderAreas);
790
        allowOverrideRank = true;
791
        overrideRank = true;
792
        allowOverrideRankButton.setSelection(allowOverrideRank);
793
        allowOverrideOwnDescriptionForDistributionEditor = true;
794
        overrideOwnDescriptionForDistributionEditor = true;
795

    
796
        this.statusPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionStatus, null);
797
        this.areaVocPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AvailableDistributionAreaVocabularies, null);
798
        if (!isAdminPreference){
799
            PreferencesUtil.recursiveSetEnabled(child, isEditorActivated);
800

    
801
            if (!allowOverrideAreaVoc){
802
                button_openSelectAreas.setButtonEnabled(false);
803
             }
804
            if (!allowOverrideStatus){
805
                button_openStatusWizard.setButtonEnabled(false);
806
            }
807
            if (!allowOverrideRank){
808
                activateRankButton.setEnabled(false);
809
                allowOverrideRankButton.setEnabled(false);
810
            }
811
            if (!allowOverrideOrderAreas){
812
                areaOrderSelectionCombo.setEnabled(false);
813
                allowOverrideOrderAreasButton.setEnabled(false);
814
            }
815
            if (!allowOverrideAreaDisplay){
816

    
817
                allowOverrideAreaDisplayButton.setEnabled(false);
818
            }
819
            if (!allowOverrideStatusDisplay){
820

    
821
                allowOverrideStatusDisplayButton.setEnabled(false);
822
            }
823
         }
824
        super.performDefaults();
825
    }
826

    
827

    
828
}
(3-3/41)