Project

General

Profile

Download (18.9 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.Composite;
13
import org.eclipse.swt.widgets.Control;
14
import org.eclipse.swt.widgets.Label;
15

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

    
21

    
22
public class NameDetailsViewConfiguration extends CdmPreferencePage {
23

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

    
29

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

    
49
    protected boolean isAllowOverride;
50
    private boolean isOverride;
51
    private Button showSecDetail;
52
    private Button secEnabled;
53

    
54
    @Override
55
    protected Control createContents(Composite parent) {
56
        getValues();
57
        if (isAllowOverride || isAdminPreference ){
58

    
59
            final CLabel description = new CLabel(parent, SWT.NULL);
60
            description.setText(Messages.NameDetailsViewConfiguration_description);
61

    
62
            Composite title  = createComposite(parent);
63
//            nameDetailsConfig = PreferencesUtil.getPreferredNameDetailsConfiguration(!isAdminPreference);
64
            if (nameDetailsConfig == null){
65
                nameDetailsConfig = new NameDetailsConfigurator(false);
66
            }
67

    
68
            final Button activateCheckButton = new Button(title, SWT.CHECK);
69
            final Button allowLocalPreference = createAllowOverrideButton(title);
70
            Composite dbSettings  = new Composite(parent, SWT.NONE);
71

    
72
            activateCheckButton.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, true, 1, 1));
73
            activateCheckButton.setText(Messages.NameDetailsViewConfiguration_activateSimpleDetailsView);
74
            isSimpleDetailsViewActivated = nameDetailsConfig.isSimpleDetailsViewActivated();
75
            activateCheckButton.setSelection(isSimpleDetailsViewActivated);
76
            activateCheckButton.addSelectionListener(new SelectionAdapter(){
77
                @Override
78
                public void widgetSelected(SelectionEvent e) {
79
                    setApply(true);
80
                    isSimpleDetailsViewActivated = activateCheckButton.getSelection();
81
                    nameDetailsConfig.setSimpleDetailsViewActivated(isSimpleDetailsViewActivated);
82
                    dbSettings.setEnabled(isSimpleDetailsViewActivated);
83
                    PreferencesUtil.recursiveSetEnabled(dbSettings, isSimpleDetailsViewActivated);
84
                    if (isSimpleDetailsViewActivated){
85
                        showSecDetail.setEnabled(isShowTaxon);
86
                        secEnabled.setEnabled(isShowTaxon);
87
                    }
88

    
89
                 }
90
             });
91

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

    
107
                }
108
            });
109

    
110
            dbSettings.setLayout(new GridLayout());
111
            dbSettings.setEnabled(isSimpleDetailsViewActivated);
112

    
113

    
114
            Label separator= new Label(dbSettings, SWT.HORIZONTAL | SWT.SEPARATOR);
115
            separator.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
116
            final Button showTaxon = new Button(dbSettings, SWT.CHECK);
117
            showTaxon.setText(Messages.NameDetailsViewComposite_Show_Taxon);
118
            isShowTaxon = nameDetailsConfig.isTaxonSectionActivated();
119
            showTaxon.setSelection(isShowTaxon);
120
            showTaxon.addSelectionListener(new SelectionAdapter(){
121
                 @Override
122
                 public void widgetSelected(SelectionEvent e) {
123
                     setApply(true);
124
                     isShowTaxon = showTaxon.getSelection();
125
                     nameDetailsConfig.setTaxonSectionActivated(isShowTaxon);
126
                     if (isSimpleDetailsViewActivated){
127
                         showSecDetail.setEnabled(isShowTaxon);
128
                         secEnabled.setEnabled(isShowTaxon);
129
                     }
130

    
131
                  }
132
             });
133

    
134
            Composite taxonComp = new Composite(dbSettings, SWT.NULL);
135

    
136
            GridLayoutFactory.fillDefaults().applyTo(taxonComp);
137

    
138
            GridData data = new GridData();
139
            data.horizontalIndent = 5;
140
            data.horizontalSpan = 2;
141
            taxonComp.setLayoutData(data);
142

    
143
            secEnabled = new Button(taxonComp, SWT.CHECK);
144
            secEnabled.setText(Messages.NameDetailsViewComposite_SecEnabled);
145

    
146
            isSecEnabled = nameDetailsConfig.isSecEnabled();
147
            secEnabled.setSelection(isSecEnabled);
148
            secEnabled.addSelectionListener(new SelectionAdapter(){
149
                 @Override
150
                 public void widgetSelected(SelectionEvent e) {
151
                     setApply(true);
152
                     isSecEnabled = secEnabled.getSelection();
153
                     nameDetailsConfig.setSecEnabled(isSecEnabled);
154
                  }
155
             });
156
            showSecDetail = new Button(taxonComp, SWT.CHECK);
157
            showSecDetail.setText(Messages.NameDetailsViewComposite_Show_SecDetail);
158

    
159
            isSecDetailsActivated = nameDetailsConfig.isSecDetailsActivated();
160
            showSecDetail.setSelection(isSecDetailsActivated);
161
            showSecDetail.addSelectionListener(new SelectionAdapter(){
162
                 @Override
163
                 public void widgetSelected(SelectionEvent e) {
164
                     setApply(true);
165
                     isSecDetailsActivated = showSecDetail.getSelection();
166
                     nameDetailsConfig.setSecDetailsActivated(isSecDetailsActivated);
167
                  }
168
             });
169

    
170
            final Button showLsid = new Button(dbSettings, SWT.CHECK);
171
            showLsid.setText(Messages.NameDetailsViewComposite_Show_LSID);
172
            isShowLSID = nameDetailsConfig.isLSIDActivated();
173
            showLsid.setSelection(isShowLSID);
174
            showLsid.addSelectionListener(new SelectionAdapter(){
175
                 @Override
176
                 public void widgetSelected(SelectionEvent e) {
177
                     setApply(true);
178
                     isShowLSID = showLsid.getSelection();
179
                     nameDetailsConfig.setLSIDActivated(isShowLSID);
180
                  }
181
             });
182

    
183
            final Button showNomenclaturalCode = new Button(dbSettings, SWT.CHECK);
184
            showNomenclaturalCode.setText(Messages.NameDetailsViewComposite_Show_NomenclaturalCode);
185
            isShowNomenclaturalCode = nameDetailsConfig.isNomenclaturalCodeActived();
186
            showNomenclaturalCode.setSelection(isShowNomenclaturalCode);
187
            showNomenclaturalCode.addSelectionListener(new SelectionAdapter(){
188
                 @Override
189
                 public void widgetSelected(SelectionEvent e) {
190
                     setApply(true);
191
                     isShowNomenclaturalCode = showNomenclaturalCode.getSelection();
192
                     nameDetailsConfig.setNomenclaturalCodeActived(isShowNomenclaturalCode);
193
                  }
194
             });
195

    
196
            final Button showNameCache = new Button(dbSettings, SWT.CHECK);
197
            showNameCache.setText(Messages.NameDetailsViewComposite_Show_NameCache);
198
            isShowNameCache = nameDetailsConfig.isNameCacheActivated();
199
            showNameCache.setSelection(isShowNameCache);
200
            showNameCache.addSelectionListener(new SelectionAdapter(){
201
                 @Override
202
                 public void widgetSelected(SelectionEvent e) {
203
                     setApply(true);
204
                     isShowNameCache = showNameCache.getSelection();
205
                     nameDetailsConfig.setNameCacheActivated(isShowNameCache);
206
                  }
207
             });
208
            final Button showAppendedPhrase = new Button(dbSettings, SWT.CHECK);
209
            isShowAppendedPhrase= nameDetailsConfig.isAppendedPhraseActivated();
210
            showAppendedPhrase.setText(Messages.NameDetailsViewComposite_Show_AppendedPhrase);
211
            showAppendedPhrase.setSelection(isShowAppendedPhrase);
212
            showAppendedPhrase.addSelectionListener(new SelectionAdapter(){
213
                 @Override
214
                 public void widgetSelected(SelectionEvent e) {
215
                     setApply(true);
216
                     isShowAppendedPhrase = showAppendedPhrase.getSelection();
217
                     nameDetailsConfig.setAppendedPhraseActivated(isShowAppendedPhrase);
218
                  }
219
             });
220

    
221
            final Button showRank = new Button(dbSettings, SWT.CHECK);
222
            isShowRank = nameDetailsConfig.isRankActivated();
223
            showRank.setText(Messages.NameDetailsViewComposite_Show_Rank);
224
            showRank.setSelection(isShowRank);
225
            showRank.addSelectionListener(new SelectionAdapter(){
226
                 @Override
227
                 public void widgetSelected(SelectionEvent e) {
228
                     setApply(true);
229
                     isShowRank = showRank.getSelection();
230
                     nameDetailsConfig.setRankActivated(isShowRank);
231
                  }
232
             });
233
            final Button showEpithets = new Button(dbSettings, SWT.CHECK);
234
            isShowEpithets = nameDetailsConfig.isAtomisedEpithetsActivated();
235
            showEpithets.setText(Messages.NameDetailsViewComposite_Show_AtomisedEpithets);
236
            showEpithets.setSelection(isShowEpithets);
237
            showEpithets.addSelectionListener(new SelectionAdapter(){
238
                 @Override
239
                 public void widgetSelected(SelectionEvent e) {
240
                     setApply(true);
241
                     isShowEpithets = showEpithets.getSelection();
242
                     nameDetailsConfig.setAtomisedEpithetsActivated(isShowEpithets);
243
                  }
244
             });
245

    
246
            final Button showAuthorCache = new Button(dbSettings, SWT.CHECK);
247
            isShowAuthorCache = nameDetailsConfig.isAuthorCacheActivated();
248
            showAuthorCache.setText(Messages.NameDetailsViewComposite_Show_AuthorCache);
249
            showAuthorCache.setSelection(isShowAuthorCache);
250
            showAuthorCache.addSelectionListener(new SelectionAdapter(){
251
                 @Override
252
                 public void widgetSelected(SelectionEvent e) {
253
                     setApply(true);
254
                     isShowAuthorCache = showAuthorCache.getSelection();
255
                     nameDetailsConfig.setAuthorCacheActivated(isShowAuthorCache);
256
                  }
257
             });
258

    
259
            final Button showAuthorship = new Button(dbSettings, SWT.CHECK);
260
            isShowAuthorship = nameDetailsConfig.isAuthorshipSectionActivated();
261
            showAuthorship.setText(Messages.NameDetailsViewComposite_Show_Author);
262
            showAuthorship.setSelection(isShowAuthorship);
263
            showAuthorship.addSelectionListener(new SelectionAdapter(){
264
                 @Override
265
                 public void widgetSelected(SelectionEvent e) {
266
                     setApply(true);
267
                     isShowAuthorship = showAuthorship.getSelection();
268
                     nameDetailsConfig.setAuthorshipSectionActivated(isShowAuthorship);
269
                  }
270
             });
271

    
272
            final Button showNomenclaturalRef = new Button(dbSettings, SWT.CHECK);
273
            isShowNomenclaturalRef = nameDetailsConfig.isNomenclaturalReferenceSectionActivated();
274
            showNomenclaturalRef.setText(Messages.NameDetailsViewComposite_Show_NomenclaturalReference);
275
            showNomenclaturalRef.setSelection(isShowNomenclaturalRef);
276
            showNomenclaturalRef.addSelectionListener(new SelectionAdapter(){
277
                 @Override
278
                 public void widgetSelected(SelectionEvent e) {
279
                     setApply(true);
280
                     isShowNomenclaturalRef = showNomenclaturalRef.getSelection();
281
                     nameDetailsConfig.setNomenclaturalReferenceSectionActivated(isShowNomenclaturalRef);
282
                  }
283
             });
284

    
285
            final Button showNomenclaturalStatus = new Button(dbSettings, SWT.CHECK);
286
            isShowNomenclaturalStatus = nameDetailsConfig.isNomenclaturalStatusSectionActivated();
287
            showNomenclaturalStatus.setText(Messages.NameDetailsViewComposite_Show_NomenclaturalStatus);
288
            showNomenclaturalStatus.setSelection(isShowNomenclaturalStatus);
289
            showNomenclaturalStatus.addSelectionListener(new SelectionAdapter(){
290
                 @Override
291
                 public void widgetSelected(SelectionEvent e) {
292
                     setApply(true);
293
                     isShowNomenclaturalStatus = showNomenclaturalStatus.getSelection();
294
                     nameDetailsConfig.setNomenclaturalStatusSectionActivated(isShowNomenclaturalStatus);
295
                  }
296
             });
297

    
298
            final Button showProtologue = new Button(dbSettings, SWT.CHECK);
299
            isShowProtologue = nameDetailsConfig.isProtologueActivated();
300
            showProtologue.setText(Messages.NameDetailsViewComposite_Show_Protologue);
301
            showProtologue.setSelection(isShowProtologue);
302
            showProtologue.addSelectionListener(new SelectionAdapter(){
303
                 @Override
304
                 public void widgetSelected(SelectionEvent e) {
305
                     setApply(true);
306
                     isShowProtologue = showProtologue.getSelection();
307
                     nameDetailsConfig.setProtologueActivated(isShowProtologue);
308
                  }
309
             });
310

    
311
            final Button showTypeDesignation = new Button(dbSettings, SWT.CHECK);
312
            isShowTypeDesignation = nameDetailsConfig.isTypeDesignationSectionActivated();
313
            showTypeDesignation.setText(Messages.NameDetailsViewComposite_Show_TypeDesignation);
314
            showTypeDesignation.setSelection(isShowTypeDesignation);
315
            showTypeDesignation.addSelectionListener(new SelectionAdapter(){
316
                 @Override
317
                 public void widgetSelected(SelectionEvent e) {
318
                     setApply(true);
319
                     isShowTypeDesignation = showTypeDesignation.getSelection();
320
                     nameDetailsConfig.setTypeDesignationSectionActivated(isShowTypeDesignation);
321
                  }
322
             });
323

    
324

    
325
            final Button showNameRelationship = new Button(dbSettings, SWT.CHECK);
326
            isShowNameRelationship = nameDetailsConfig.isNameRelationsSectionActivated();
327
            showNameRelationship.setText(Messages.NameDetailsViewComposite_Show_Namerelationships);
328
            showNameRelationship.setSelection(isShowNameRelationship);
329
            showNameRelationship.addSelectionListener(new SelectionAdapter(){
330
                 @Override
331
                 public void widgetSelected(SelectionEvent e) {
332
                     setApply(true);
333
                     isShowNameRelationship = showNameRelationship.getSelection();
334
                     nameDetailsConfig.setNameRelationsSectionActivated(isShowNameRelationship);
335
                  }
336
             });
337

    
338
            final Button showHybrid = new Button(dbSettings, SWT.CHECK);
339
            isShowHybrid = nameDetailsConfig.isHybridActivated();
340
            showHybrid.setText(Messages.NameDetailsViewComposite_Show_Hybrid);
341
            showHybrid.setSelection(isShowHybrid);
342
            showHybrid.addSelectionListener(new SelectionAdapter(){
343
                 @Override
344
                 public void widgetSelected(SelectionEvent e) {
345
                     setApply(true);
346
                     isShowHybrid = showHybrid.getSelection();
347
                     nameDetailsConfig.setHybridActivated(isShowHybrid);
348
                  }
349
             });
350
            final Button showNameApprobiation = new Button(dbSettings, SWT.CHECK);
351
            isShowNameApprobiation = nameDetailsConfig.isNameApprobiationActivated();
352
            showNameApprobiation.setText(Messages.NameDetailsViewComposite_Show_NameApprobiation);
353
            showNameApprobiation.setSelection(isShowNameApprobiation);
354
            showNameApprobiation.addSelectionListener(new SelectionAdapter(){
355
                 @Override
356
                 public void widgetSelected(SelectionEvent e) {
357
                     setApply(true);
358
                     isShowNameApprobiation = showNameApprobiation.getSelection();
359
                     nameDetailsConfig.setNameApprobiationActivated(isShowNameApprobiation);
360
                  }
361
             });
362
            PreferencesUtil.recursiveSetEnabled(dbSettings, isSimpleDetailsViewActivated);
363
            if (isSimpleDetailsViewActivated){
364
                showSecDetail.setEnabled(isShowTaxon);
365
                secEnabled.setEnabled(isShowTaxon);
366
            }
367

    
368
        }else{
369
            final CLabel description = new CLabel(parent, SWT.NULL);
370
            description.setText(Messages.NameDetailsViewConfiguration_description_not_available);
371
        }
372

    
373

    
374

    
375

    
376
        return parent;
377
	}
378

    
379
    @Override
380
    public boolean performOk() {
381
        if (nameDetailsConfig != null){
382
            PreferencesUtil.setStringValue(PreferencePredicate.NameDetailsView.getKey(), nameDetailsConfig.toString());
383
            PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.NameDetailsView.getKey()), isOverride);
384
        }
385

    
386
        return true;
387

    
388
    }
389

    
390
    @Override
391
    public void getValues(){
392
        CdmPreference nameDetailsPref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.NameDetailsView);
393
        isAdminPreference = false;
394
        isAllowOverride = true;
395
        if (nameDetailsPref != null){
396
            isAllowOverride = nameDetailsPref.isAllowOverride();
397

    
398
        }
399
        isOverride = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.NameDetailsView.getKey()));
400
        nameDetailsConfig = PreferencesUtil.getPreferredNameDetailsConfiguration(true);
401
    }
402

    
403
}
(22-22/41)