Project

General

Profile

Download (21.5 KB) Statistics
| Branch: | Tag: | Revision:
1
package eu.etaxonomy.taxeditor.preference;
2

    
3

    
4
import org.eclipse.jface.layout.GridLayoutFactory;
5
import org.eclipse.swt.SWT;
6
import org.eclipse.swt.custom.CLabel;
7
import org.eclipse.swt.events.SelectionAdapter;
8
import org.eclipse.swt.events.SelectionEvent;
9
import org.eclipse.swt.layout.GridData;
10
import org.eclipse.swt.layout.GridLayout;
11
import org.eclipse.swt.widgets.Button;
12
import org.eclipse.swt.widgets.Combo;
13
import org.eclipse.swt.widgets.Composite;
14
import org.eclipse.swt.widgets.Control;
15
import org.eclipse.swt.widgets.Label;
16

    
17
import eu.etaxonomy.cdm.model.metadata.CdmPreference;
18
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
19
import eu.etaxonomy.taxeditor.l10n.Messages;
20
import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
21

    
22

    
23
public class NameDetailsViewConfiguration extends CdmPreferencePage {
24

    
25
    protected boolean isSimpleDetailsViewActivated;
26
	boolean isUseLocalSettings;
27
	protected NameDetailsConfigurator nameDetailsConfig;
28
    Composite localSettings ;
29

    
30
    CdmPreference nameDetailsPref;
31

    
32
    protected boolean isShowTaxon;
33
    protected boolean isShowNameApprobiation ;
34
    protected boolean isShowHybrid;
35
    protected boolean isShowNameRelationship;
36
    protected boolean isShowTypeDesignation;
37
    protected boolean isShowProtologue;
38
    protected boolean isShowNomenclaturalStatus;
39
    protected boolean isShowNomenclaturalRef;
40
    protected boolean isShowAuthorship;
41
    protected boolean isShowAuthorCache;
42
    protected boolean isShowEpithets;
43
    protected boolean isShowRank;
44
    protected boolean isShowAppendedPhrase;
45
    protected boolean isShowNameCache;
46
    protected boolean isShowNomenclaturalCode;
47
    protected boolean isShowLSID;
48
    protected boolean isSecEnabled;
49
    protected boolean isSecDetailsActivated;
50

    
51
    protected boolean isAllowOverride;
52
    private boolean isOverride;
53
    private Button showSecDetail;
54
    private Button secEnabled;
55

    
56
    protected Combo activateCheckButton;
57
    protected Button allowLocalPreference;
58
    protected Button showTaxon;
59
    protected Button showLsid;
60
    protected Button showNomenclaturalCode;
61
    protected Button showNameCache;
62
    protected Button showAppendedPhrase;
63
    protected Button showRank;
64
    protected Button showEpithets;
65
    protected Button showAuthorCache;
66
    protected Button showAuthorship;
67
    protected Button showNomenclaturalRef;
68
    protected Button showNomenclaturalStatus;
69
    protected Button showProtologue;
70
    protected Button showTypeDesignation;
71
    protected Button showNameRelationship;
72
    protected Button showHybrid;
73
    protected Button showNameApprobiation;
74

    
75
    @Override
76
    protected Control createContents(Composite parent) {
77
        getValues();
78
        if (isAllowOverride || isAdminPreference ){
79

    
80
            final CLabel description = new CLabel(parent, SWT.NULL);
81
            description.setText(Messages.NameDetailsViewConfiguration_description);
82

    
83
            Composite title  = createComposite(parent);
84
//            nameDetailsConfig = PreferencesUtil.getPreferredNameDetailsConfiguration(!isAdminPreference);
85
            if (nameDetailsConfig == null){
86
                nameDetailsConfig = new NameDetailsConfigurator(false);
87
            }
88

    
89
            activateCheckButton = createBooleanCombo(title, "Enable", "Disable", PreferencePredicate.SimpleDetailsViewActivated, Messages.NameDetailsViewConfiguration_activateSimpleDetailsView, isAdminPreference);
90
            if (isAdminPreference){
91
                allowLocalPreference = createAllowOverrideButton(title);
92

    
93
                allowLocalPreference.addSelectionListener(new SelectionAdapter(){
94
                    @Override
95
                    public void widgetSelected(SelectionEvent e) {
96
                        setApply(true);
97
                        if (isAdminPreference){
98
                            isAllowOverride = allowLocalPreference.getSelection();
99
                        }else{
100
                            isOverride = allowLocalPreference.getSelection();
101
                        }
102

    
103
                    }
104
                });
105

    
106
            }
107
            Composite dbSettings  = new Composite(parent, SWT.NONE);
108

    
109
//            activateCheckButton.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, true, 1, 1));
110
//            activateCheckButton.setText(Messages.NameDetailsViewConfiguration_activateSimpleDetailsView);
111
            isSimpleDetailsViewActivated = nameDetailsConfig.isSimpleDetailsViewActivated();
112

    
113
            activateCheckButton.addSelectionListener(new SelectionAdapter(){
114
                @Override
115
                public void widgetSelected(SelectionEvent e) {
116
                    setApply(true);
117
                    isSimpleDetailsViewActivated = activateCheckButton.getSelectionIndex() == 0? true:false;
118
                    nameDetailsConfig.setSimpleDetailsViewActivated(isSimpleDetailsViewActivated);
119
                    dbSettings.setEnabled(isSimpleDetailsViewActivated);
120
                    PreferencesUtil.recursiveSetEnabled(dbSettings, isSimpleDetailsViewActivated);
121
                    if (isSimpleDetailsViewActivated){
122
                        showSecDetail.setEnabled(isShowTaxon);
123
                        secEnabled.setEnabled(isShowTaxon);
124
                    }
125

    
126
                 }
127
             });
128

    
129

    
130
            dbSettings.setLayout(new GridLayout());
131
            dbSettings.setEnabled(isSimpleDetailsViewActivated);
132

    
133

    
134
            Label separator= new Label(dbSettings, SWT.HORIZONTAL | SWT.SEPARATOR);
135
            separator.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
136
            showTaxon = new Button(dbSettings, SWT.CHECK);
137
            showTaxon.setText(Messages.NameDetailsViewComposite_Show_Taxon);
138
            isShowTaxon = nameDetailsConfig.isTaxonSectionActivated();
139

    
140
            showTaxon.addSelectionListener(new SelectionAdapter(){
141
                 @Override
142
                 public void widgetSelected(SelectionEvent e) {
143
                     setApply(true);
144
                     isShowTaxon = showTaxon.getSelection();
145
                     nameDetailsConfig.setTaxonSectionActivated(isShowTaxon);
146
                     if (isSimpleDetailsViewActivated){
147
                         showSecDetail.setEnabled(isShowTaxon);
148
                         secEnabled.setEnabled(isShowTaxon);
149
                     }
150

    
151
                  }
152
             });
153

    
154
            Composite taxonComp = new Composite(dbSettings, SWT.NULL);
155

    
156
            GridLayoutFactory.fillDefaults().applyTo(taxonComp);
157

    
158
            GridData data = new GridData();
159
            data.horizontalIndent = 5;
160
            data.horizontalSpan = 2;
161
            taxonComp.setLayoutData(data);
162

    
163
            secEnabled = new Button(taxonComp, SWT.CHECK);
164
            secEnabled.setText(Messages.NameDetailsViewComposite_SecEnabled);
165

    
166
            isSecEnabled = nameDetailsConfig.isSecEnabled();
167

    
168
            secEnabled.addSelectionListener(new SelectionAdapter(){
169
                 @Override
170
                 public void widgetSelected(SelectionEvent e) {
171
                     setApply(true);
172
                     isSecEnabled = secEnabled.getSelection();
173
                     nameDetailsConfig.setSecEnabled(isSecEnabled);
174
                  }
175
             });
176
            showSecDetail = new Button(taxonComp, SWT.CHECK);
177
            showSecDetail.setText(Messages.NameDetailsViewComposite_Show_SecDetail);
178

    
179
            isSecDetailsActivated = nameDetailsConfig.isSecDetailsActivated();
180

    
181
            showSecDetail.addSelectionListener(new SelectionAdapter(){
182
                 @Override
183
                 public void widgetSelected(SelectionEvent e) {
184
                     setApply(true);
185
                     isSecDetailsActivated = showSecDetail.getSelection();
186
                     nameDetailsConfig.setSecDetailsActivated(isSecDetailsActivated);
187
                  }
188
             });
189

    
190
            showLsid = new Button(dbSettings, SWT.CHECK);
191
            showLsid.setText(Messages.NameDetailsViewComposite_Show_LSID);
192
            isShowLSID = nameDetailsConfig.isLSIDActivated();
193

    
194
            showLsid.addSelectionListener(new SelectionAdapter(){
195
                 @Override
196
                 public void widgetSelected(SelectionEvent e) {
197
                     setApply(true);
198
                     isShowLSID = showLsid.getSelection();
199
                     nameDetailsConfig.setLSIDActivated(isShowLSID);
200
                  }
201
             });
202

    
203
            showNomenclaturalCode = new Button(dbSettings, SWT.CHECK);
204
            showNomenclaturalCode.setText(Messages.NameDetailsViewComposite_Show_NomenclaturalCode);
205
            isShowNomenclaturalCode = nameDetailsConfig.isNomenclaturalCodeActived();
206

    
207
            showNomenclaturalCode.addSelectionListener(new SelectionAdapter(){
208
                 @Override
209
                 public void widgetSelected(SelectionEvent e) {
210
                     setApply(true);
211
                     isShowNomenclaturalCode = showNomenclaturalCode.getSelection();
212
                     nameDetailsConfig.setNomenclaturalCodeActived(isShowNomenclaturalCode);
213
                  }
214
             });
215

    
216
            showNameCache = new Button(dbSettings, SWT.CHECK);
217
            showNameCache.setText(Messages.NameDetailsViewComposite_Show_NameCache);
218
            isShowNameCache = nameDetailsConfig.isNameCacheActivated();
219

    
220
            showNameCache.addSelectionListener(new SelectionAdapter(){
221
                 @Override
222
                 public void widgetSelected(SelectionEvent e) {
223
                     setApply(true);
224
                     isShowNameCache = showNameCache.getSelection();
225
                     nameDetailsConfig.setNameCacheActivated(isShowNameCache);
226
                  }
227
             });
228
            showAppendedPhrase = new Button(dbSettings, SWT.CHECK);
229
            isShowAppendedPhrase= nameDetailsConfig.isAppendedPhraseActivated();
230
            showAppendedPhrase.setText(Messages.NameDetailsViewComposite_Show_AppendedPhrase);
231

    
232
            showAppendedPhrase.addSelectionListener(new SelectionAdapter(){
233
                 @Override
234
                 public void widgetSelected(SelectionEvent e) {
235
                     setApply(true);
236
                     isShowAppendedPhrase = showAppendedPhrase.getSelection();
237
                     nameDetailsConfig.setAppendedPhraseActivated(isShowAppendedPhrase);
238
                  }
239
             });
240

    
241
            showRank = new Button(dbSettings, SWT.CHECK);
242
            isShowRank = nameDetailsConfig.isRankActivated();
243
            showRank.setText(Messages.NameDetailsViewComposite_Show_Rank);
244

    
245
            showRank.addSelectionListener(new SelectionAdapter(){
246
                 @Override
247
                 public void widgetSelected(SelectionEvent e) {
248
                     setApply(true);
249
                     isShowRank = showRank.getSelection();
250
                     nameDetailsConfig.setRankActivated(isShowRank);
251
                  }
252
             });
253
            showEpithets = new Button(dbSettings, SWT.CHECK);
254
            isShowEpithets = nameDetailsConfig.isAtomisedEpithetsActivated();
255
            showEpithets.setText(Messages.NameDetailsViewComposite_Show_AtomisedEpithets);
256

    
257
            showEpithets.addSelectionListener(new SelectionAdapter(){
258
                 @Override
259
                 public void widgetSelected(SelectionEvent e) {
260
                     setApply(true);
261
                     isShowEpithets = showEpithets.getSelection();
262
                     nameDetailsConfig.setAtomisedEpithetsActivated(isShowEpithets);
263
                  }
264
             });
265

    
266
            showAuthorCache = new Button(dbSettings, SWT.CHECK);
267
            isShowAuthorCache = nameDetailsConfig.isAuthorCacheActivated();
268
            showAuthorCache.setText(Messages.NameDetailsViewComposite_Show_AuthorCache);
269

    
270
            showAuthorCache.addSelectionListener(new SelectionAdapter(){
271
                 @Override
272
                 public void widgetSelected(SelectionEvent e) {
273
                     setApply(true);
274
                     isShowAuthorCache = showAuthorCache.getSelection();
275
                     nameDetailsConfig.setAuthorCacheActivated(isShowAuthorCache);
276
                  }
277
             });
278

    
279
            showAuthorship = new Button(dbSettings, SWT.CHECK);
280
            isShowAuthorship = nameDetailsConfig.isAuthorshipSectionActivated();
281
            showAuthorship.setText(Messages.NameDetailsViewComposite_Show_Author);
282

    
283
            showAuthorship.addSelectionListener(new SelectionAdapter(){
284
                 @Override
285
                 public void widgetSelected(SelectionEvent e) {
286
                     setApply(true);
287
                     isShowAuthorship = showAuthorship.getSelection();
288
                     nameDetailsConfig.setAuthorshipSectionActivated(isShowAuthorship);
289
                  }
290
             });
291

    
292
            showNomenclaturalRef = new Button(dbSettings, SWT.CHECK);
293
            isShowNomenclaturalRef = nameDetailsConfig.isNomenclaturalReferenceSectionActivated();
294
            showNomenclaturalRef.setText(Messages.NameDetailsViewComposite_Show_NomenclaturalReference);
295

    
296
            showNomenclaturalRef.addSelectionListener(new SelectionAdapter(){
297
                 @Override
298
                 public void widgetSelected(SelectionEvent e) {
299
                     setApply(true);
300
                     isShowNomenclaturalRef = showNomenclaturalRef.getSelection();
301
                     nameDetailsConfig.setNomenclaturalReferenceSectionActivated(isShowNomenclaturalRef);
302
                  }
303
             });
304

    
305
            showNomenclaturalStatus = new Button(dbSettings, SWT.CHECK);
306
            isShowNomenclaturalStatus = nameDetailsConfig.isNomenclaturalStatusSectionActivated();
307
            showNomenclaturalStatus.setText(Messages.NameDetailsViewComposite_Show_NomenclaturalStatus);
308

    
309
            showNomenclaturalStatus.addSelectionListener(new SelectionAdapter(){
310
                 @Override
311
                 public void widgetSelected(SelectionEvent e) {
312
                     setApply(true);
313
                     isShowNomenclaturalStatus = showNomenclaturalStatus.getSelection();
314
                     nameDetailsConfig.setNomenclaturalStatusSectionActivated(isShowNomenclaturalStatus);
315
                  }
316
             });
317

    
318
            showProtologue = new Button(dbSettings, SWT.CHECK);
319
            isShowProtologue = nameDetailsConfig.isProtologueActivated();
320
            showProtologue.setText(Messages.NameDetailsViewComposite_Show_Protologue);
321

    
322
            showProtologue.addSelectionListener(new SelectionAdapter(){
323
                 @Override
324
                 public void widgetSelected(SelectionEvent e) {
325
                     setApply(true);
326
                     isShowProtologue = showProtologue.getSelection();
327
                     nameDetailsConfig.setProtologueActivated(isShowProtologue);
328
                  }
329
             });
330

    
331
            showTypeDesignation = new Button(dbSettings, SWT.CHECK);
332
            isShowTypeDesignation = nameDetailsConfig.isTypeDesignationSectionActivated();
333
            showTypeDesignation.setText(Messages.NameDetailsViewComposite_Show_TypeDesignation);
334

    
335
            showTypeDesignation.addSelectionListener(new SelectionAdapter(){
336
                 @Override
337
                 public void widgetSelected(SelectionEvent e) {
338
                     setApply(true);
339
                     isShowTypeDesignation = showTypeDesignation.getSelection();
340
                     nameDetailsConfig.setTypeDesignationSectionActivated(isShowTypeDesignation);
341
                  }
342
             });
343

    
344

    
345
            showNameRelationship = new Button(dbSettings, SWT.CHECK);
346
            isShowNameRelationship = nameDetailsConfig.isNameRelationsSectionActivated();
347
            showNameRelationship.setText(Messages.NameDetailsViewComposite_Show_Namerelationships);
348

    
349
            showNameRelationship.addSelectionListener(new SelectionAdapter(){
350
                 @Override
351
                 public void widgetSelected(SelectionEvent e) {
352
                     setApply(true);
353
                     isShowNameRelationship = showNameRelationship.getSelection();
354
                     nameDetailsConfig.setNameRelationsSectionActivated(isShowNameRelationship);
355
                  }
356
             });
357

    
358
            showHybrid = new Button(dbSettings, SWT.CHECK);
359
            isShowHybrid = nameDetailsConfig.isHybridActivated();
360
            showHybrid.setText(Messages.NameDetailsViewComposite_Show_Hybrid);
361

    
362
            showHybrid.addSelectionListener(new SelectionAdapter(){
363
                 @Override
364
                 public void widgetSelected(SelectionEvent e) {
365
                     setApply(true);
366
                     isShowHybrid = showHybrid.getSelection();
367
                     nameDetailsConfig.setHybridActivated(isShowHybrid);
368
                  }
369
             });
370
            showNameApprobiation = new Button(dbSettings, SWT.CHECK);
371
            isShowNameApprobiation = nameDetailsConfig.isNameApprobiationActivated();
372
            showNameApprobiation.setText(Messages.NameDetailsViewComposite_Show_NameApprobiation);
373
            showNameApprobiation.addSelectionListener(new SelectionAdapter(){
374
                 @Override
375
                 public void widgetSelected(SelectionEvent e) {
376
                     setApply(true);
377
                     isShowNameApprobiation = showNameApprobiation.getSelection();
378
                     nameDetailsConfig.setNameApprobiationActivated(isShowNameApprobiation);
379
                  }
380
             });
381
            PreferencesUtil.recursiveSetEnabled(dbSettings, isSimpleDetailsViewActivated);
382
            if (isSimpleDetailsViewActivated){
383
                showSecDetail.setEnabled(isShowTaxon);
384
                secEnabled.setEnabled(isShowTaxon);
385
            }
386
            setButtonSelections();
387

    
388
        }else{
389
            final CLabel description = new CLabel(parent, SWT.NULL);
390
            description.setText(Messages.NameDetailsViewConfiguration_description_not_available);
391
            this.setDefaultButtonActivated(false);
392
        }
393

    
394

    
395

    
396

    
397
        return parent;
398
	}
399

    
400
    @Override
401
    public boolean performOk() {
402
        if (nameDetailsConfig != null){
403
            PreferencesUtil.setStringValue(PreferencePredicate.NameDetailsView.getKey(), nameDetailsConfig.toString());
404
            if (nameDetailsPref == null || !nameDetailsConfig.toString().equals(nameDetailsPref.getValue())) {
405
                PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.NameDetailsView.getKey()), true);
406
            }
407
        }
408

    
409
        return true;
410

    
411
    }
412

    
413
    @Override
414
    public void getValues(){
415
        if (nameDetailsConfig == null){
416
            nameDetailsPref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.NameDetailsView);
417
            isAdminPreference = false;
418
            isAllowOverride = true;
419
            if (nameDetailsPref != null){
420
                isAllowOverride = nameDetailsPref.isAllowOverride();
421

    
422
            }
423
            isOverride = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.NameDetailsView.getKey()), true);
424
            nameDetailsConfig = PreferencesUtil.getPreferredNameDetailsConfiguration(true);
425
        }
426
    }
427

    
428
    protected void setButtonSelections(){
429
        int index = isSimpleDetailsViewActivated?0:1;
430
        activateCheckButton.select(index);
431
        if (isAdminPreference){
432
            allowLocalPreference.setSelection(isAllowOverride);
433
        }
434
        showTaxon.setSelection(isShowTaxon);
435
        showLsid.setSelection(isShowLSID);
436
        showNomenclaturalCode.setSelection(isShowNomenclaturalCode);
437
        showNameCache.setSelection(isShowNameCache);
438
        showAppendedPhrase.setSelection(isShowAppendedPhrase);
439
        showRank.setSelection(isShowRank);
440
        showEpithets.setSelection(isShowEpithets);
441
        showAuthorCache.setSelection(isShowAuthorCache);
442
        showAuthorship.setSelection(isShowAuthorship);
443
        showNomenclaturalRef.setSelection(isShowNomenclaturalRef);
444
        showNomenclaturalStatus.setSelection(isShowNomenclaturalStatus);
445
        showProtologue.setSelection(isShowProtologue);
446
        showTypeDesignation.setSelection(isShowTypeDesignation);
447
        showNameRelationship.setSelection(isShowNameRelationship);
448
        showHybrid.setSelection(isShowHybrid);
449
        showNameApprobiation.setSelection(isShowNameApprobiation);
450
        secEnabled.setSelection(isSecEnabled);
451
        secEnabled.setEnabled(isShowTaxon);
452
        showSecDetail.setSelection(isSecDetailsActivated);
453
        showSecDetail.setEnabled(isShowTaxon);
454

    
455
    }
456

    
457
    @Override
458
    protected void performDefaults() {
459
        nameDetailsConfig = new NameDetailsConfigurator(false);
460
        isShowAppendedPhrase = nameDetailsConfig.isAppendedPhraseActivated();
461
        isShowEpithets = nameDetailsConfig.isAtomisedEpithetsActivated();
462
        isShowAuthorship = nameDetailsConfig.isAuthorshipSectionActivated();
463
        isShowAuthorCache = nameDetailsConfig.isAuthorCacheActivated();
464
        isShowLSID = nameDetailsConfig.isLSIDActivated();
465
        isShowNameApprobiation = nameDetailsConfig.isNameApprobiationActivated();
466
        isShowNameCache = nameDetailsConfig.isNameCacheActivated();
467
        isShowNameRelationship = nameDetailsConfig.isNameRelationsSectionActivated();
468
        isShowNomenclaturalCode = nameDetailsConfig.isNomenclaturalCodeActived();
469
        isShowNomenclaturalStatus = nameDetailsConfig.isNomenclaturalStatusSectionActivated();
470
        isShowNomenclaturalRef = nameDetailsConfig.isNomenclaturalReferenceSectionActivated();
471
        isShowProtologue = nameDetailsConfig.isProtologueActivated();
472
        isShowRank = nameDetailsConfig.isRankActivated();
473
        isShowTaxon = nameDetailsConfig.isTaxonSectionActivated();
474
        isSecDetailsActivated = nameDetailsConfig.isSecDetailsActivated();
475
        isSecEnabled = nameDetailsConfig.isSecEnabled();
476
        isShowTypeDesignation = nameDetailsConfig.isTypeDesignationSectionActivated();
477
        isShowHybrid = nameDetailsConfig.isHybridActivated();
478
        this.setButtonSelections();
479
        super.performDefaults();
480
    }
481

    
482
}
(22-22/41)