Project

General

Profile

Download (21.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.events.SelectionAdapter;
13
import org.eclipse.swt.events.SelectionEvent;
14
import org.eclipse.swt.layout.GridData;
15
import org.eclipse.swt.widgets.Button;
16
import org.eclipse.swt.widgets.Composite;
17
import org.eclipse.swt.widgets.Control;
18
import org.eclipse.swt.widgets.Label;
19

    
20
import eu.etaxonomy.cdm.model.metadata.CdmPreference;
21
import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
22
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
23
import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
24
import eu.etaxonomy.taxeditor.l10n.Messages;
25
import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
26
import eu.etaxonomy.taxeditor.store.CdmStore;
27

    
28
/**
29
 * @author pplitzner
30
 * @date 13.02.2014
31
 *
32
 */
33
public class SpecimenOrObservationPreferences extends CdmPreferencePage {
34

    
35
    private static final String LOCAL_SETTINGS_NOT_ALLOWED = Messages.SpecimenOrObservationPreferences_0;
36
    private static final String DESCRIPTION = Messages.SpecimenOrObservationPreferences_1;
37

    
38
    protected boolean isShowSpecimenRelatedIssues;
39
    protected boolean allowOverrideShowSpecimenRelatedIssues;
40
    protected boolean overrideShowSpecimenRelatedIssues;
41
    protected boolean isShowCollectingAreaInGeneralSection;
42
    protected boolean allowOverrideShowCollectingAreaInGeneralSection;
43
    protected boolean overrideShowCollectionAreaInGeneralSection;
44
    protected boolean isDeterminationOnlyForFieldUnits;
45
    protected boolean allowOverrideDeterminationOnlyForFieldUnits;
46
    protected boolean overrideDeterminationOnlyForFieldUnits;
47
    protected boolean isShowTaxonAssociation;
48
    protected boolean allowOverrideShowTaxonAssociation;
49
    protected boolean overrideShowTaxonAssociation;
50
    protected boolean isShowLifeForm;
51
    protected boolean allowOverrideShowLifeForm;
52
    protected boolean overrideShowLifeForm;
53
    Composite composite;
54

    
55
    protected Button showSpecimenButton;
56
    protected Button allowOverrideIsShowSpecimenRelatedIssuesButton;
57
    protected Button showCollectingAreaInGeneralSectionButton;
58
    protected Button allowOverrideShowCollectingAreaButton;
59
    protected Button determinationOnlyForFieldUnitsButton;
60
    protected Button allowOverridesDeterminationOnlyForFieldUnitsButton;
61
    protected Button showTaxonAssociationButton;
62
    protected Button allowOverrideIsShowTaxonAssociationButton;
63
    protected Button allowOverrideShowLifeFormButton;
64
    protected Button showLifeFormButton;
65

    
66

    
67
    @Override
68
    public void init() {
69
        super.init();
70
//        setPreferenceStore(PreferencesUtil.getPreferenceStore());
71
        if(!CdmStore.isActive()){
72
            return;
73
        }
74

    
75

    
76
    }
77

    
78
    /**
79
     * {@inheritDoc}
80
     */
81
    @Override
82
    protected Control createContents(Composite parent) {
83
        getValues();
84

    
85
        boolean isEditingAllowed = true;
86
        if(!isAdminPreference){
87
            CdmPreferenceCache cache = CdmPreferenceCache.instance();
88
            PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowSpecimen);
89
            CdmPreference showSpecimenPref = cache.findBestMatching(key);
90
            if (showSpecimenPref != null){
91
                if (!showSpecimenPref.isAllowOverride() ){
92
                    Label label = new Label(parent, SWT.NONE);
93
                    label.setText(LOCAL_SETTINGS_NOT_ALLOWED);
94
                    isEditingAllowed = false;
95

    
96
                }
97
            }
98
        }
99

    
100
        Label label = new Label(parent, SWT.NONE);
101
        label.setText(DESCRIPTION);
102
        Composite titleComp = createComposite(parent);
103
        GridData gridData = createTextGridData();
104

    
105
        Label separator= new Label(titleComp, SWT.HORIZONTAL | SWT.SEPARATOR);
106
        separator.setLayoutData(gridData);
107
        separator.setVisible(false);
108
        showSpecimenButton = new Button(titleComp, SWT.CHECK);
109

    
110
        showSpecimenButton.setText(Messages.DatabasePreferncesPage_Show_Specimen);
111

    
112
        showSpecimenButton.setSelection(isShowSpecimenRelatedIssues);
113
        showSpecimenButton.addSelectionListener(new SelectionAdapter(){
114
             @Override
115
             public void widgetSelected(SelectionEvent e) {
116
                 setApply(true);
117
                 isShowSpecimenRelatedIssues = showSpecimenButton.getSelection();
118
//                 if(isShowSpecimenRelatedIssues){
119
//                     //composite.setVisible(true);
120
//                     composite.setEnabled(true);
121
//                 }else{
122
//                     //composite.setVisible(false);
123
//                     composite.setEnabled(false);
124
//                 }
125
              }
126
         });
127
        allowOverrideIsShowSpecimenRelatedIssuesButton = createAllowOverrideButton(titleComp);
128

    
129

    
130
        if (isAdminPreference){
131
            allowOverrideIsShowSpecimenRelatedIssuesButton.setSelection(allowOverrideShowSpecimenRelatedIssues);
132
            allowOverrideIsShowSpecimenRelatedIssuesButton.addSelectionListener(new SelectionAdapter(){
133
                @Override
134
                public void widgetSelected(SelectionEvent e) {
135
                    setApply(true);
136
                    allowOverrideShowSpecimenRelatedIssues = allowOverrideIsShowSpecimenRelatedIssuesButton.getSelection();
137
                }
138
            });
139
        }else{
140
            allowOverrideIsShowSpecimenRelatedIssuesButton.setSelection(overrideShowSpecimenRelatedIssues);
141
            allowOverrideIsShowSpecimenRelatedIssuesButton.addSelectionListener(new SelectionAdapter(){
142
                @Override
143
                public void widgetSelected(SelectionEvent e) {
144
                    setApply(true);
145
                    overrideShowSpecimenRelatedIssues = allowOverrideIsShowSpecimenRelatedIssuesButton.getSelection();
146
                }
147
            });
148
            if (!allowOverrideShowSpecimenRelatedIssues){
149
                showSpecimenButton.setEnabled(false);
150
                allowOverrideIsShowSpecimenRelatedIssuesButton.setEnabled(false);
151
            }
152
        }
153
        composite = createComposite(parent);
154
        //composite.setEnabled(isShowSpecimenRelatedIssues);
155
        gridData = createTextGridData();
156

    
157
        separator= new Label(composite, SWT.HORIZONTAL | SWT.SEPARATOR);
158
        separator.setLayoutData(gridData);
159

    
160
        showCollectingAreaInGeneralSectionButton = new Button(composite, SWT.CHECK);
161

    
162
        showCollectingAreaInGeneralSectionButton.setText(Messages.DatabasePreferncesPage_Show_Collecting_Areas_in_general_section);
163

    
164
        showCollectingAreaInGeneralSectionButton.setSelection(isShowCollectingAreaInGeneralSection);
165
        showCollectingAreaInGeneralSectionButton.addSelectionListener(new SelectionAdapter(){
166
             @Override
167
             public void widgetSelected(SelectionEvent e) {
168
                 setApply(true);
169
                 isShowCollectingAreaInGeneralSection = showCollectingAreaInGeneralSectionButton.getSelection();
170

    
171
              }
172
         });
173
        allowOverrideShowCollectingAreaButton = createAllowOverrideButton(composite);
174
        if (isAdminPreference){
175
            allowOverrideShowCollectingAreaButton.setSelection(allowOverrideShowCollectingAreaInGeneralSection);
176
            allowOverrideShowCollectingAreaButton.addSelectionListener(new SelectionAdapter(){
177
                @Override
178
                public void widgetSelected(SelectionEvent e) {
179
                    setApply(true);
180
                    allowOverrideShowCollectingAreaInGeneralSection = allowOverrideShowCollectingAreaButton.getSelection();
181
                }
182
            });
183
        }else{
184
            allowOverrideShowCollectingAreaButton.setSelection(overrideShowCollectionAreaInGeneralSection);
185
            allowOverrideShowCollectingAreaButton.addSelectionListener(new SelectionAdapter(){
186
                @Override
187
                public void widgetSelected(SelectionEvent e) {
188
                    setApply(true);
189
                    overrideShowCollectionAreaInGeneralSection = allowOverrideShowCollectingAreaButton.getSelection();
190
                }
191
            });
192
            if (!allowOverrideShowCollectingAreaInGeneralSection){
193
                showCollectingAreaInGeneralSectionButton.setEnabled(false);
194
                allowOverrideShowCollectingAreaButton.setEnabled(false);
195
            }
196
        }
197

    
198
        determinationOnlyForFieldUnitsButton = new Button(composite, SWT.CHECK);
199
        determinationOnlyForFieldUnitsButton.setText(Messages.DatabasePreferncesPage_Determination_only_for_field_unnits);
200
        determinationOnlyForFieldUnitsButton.setSelection(isDeterminationOnlyForFieldUnits);
201
        determinationOnlyForFieldUnitsButton.addSelectionListener(new SelectionAdapter(){
202
             @Override
203
             public void widgetSelected(SelectionEvent e) {
204
                 setApply(true);
205
                 isDeterminationOnlyForFieldUnits = determinationOnlyForFieldUnitsButton.getSelection();
206
             }
207
         });
208

    
209
        allowOverridesDeterminationOnlyForFieldUnitsButton = createAllowOverrideButton(composite);
210
        if (isAdminPreference){
211
            allowOverridesDeterminationOnlyForFieldUnitsButton.setSelection(allowOverrideDeterminationOnlyForFieldUnits);
212
            allowOverridesDeterminationOnlyForFieldUnitsButton.addSelectionListener(new SelectionAdapter(){
213
                @Override
214
                public void widgetSelected(SelectionEvent e) {
215
                    setApply(true);
216
                    allowOverrideDeterminationOnlyForFieldUnits = allowOverridesDeterminationOnlyForFieldUnitsButton.getSelection();
217
                }
218
            });
219
        }else{
220
            allowOverridesDeterminationOnlyForFieldUnitsButton.setSelection(overrideDeterminationOnlyForFieldUnits);
221
            allowOverridesDeterminationOnlyForFieldUnitsButton.addSelectionListener(new SelectionAdapter(){
222
                @Override
223
                public void widgetSelected(SelectionEvent e) {
224
                    setApply(true);
225
                    overrideDeterminationOnlyForFieldUnits = allowOverridesDeterminationOnlyForFieldUnitsButton.getSelection();
226
                }
227
            });
228
            if (!allowOverrideDeterminationOnlyForFieldUnits){
229
                determinationOnlyForFieldUnitsButton.setEnabled(false);
230
                allowOverridesDeterminationOnlyForFieldUnitsButton.setEnabled(false);
231
            }
232
        }
233

    
234
        showTaxonAssociationButton = new Button(composite, SWT.CHECK);
235

    
236
        showTaxonAssociationButton.setText(Messages.DatabasePreferncesPage_Taxon_Associations);
237

    
238
        showTaxonAssociationButton.setSelection(isShowTaxonAssociation);
239
        showTaxonAssociationButton.addSelectionListener(new SelectionAdapter(){
240
             @Override
241
             public void widgetSelected(SelectionEvent e) {
242
                 setApply(true);
243
                 isShowTaxonAssociation = showTaxonAssociationButton.getSelection();
244

    
245
              }
246
         });
247
        allowOverrideIsShowTaxonAssociationButton = createAllowOverrideButton(composite);
248
        if (isAdminPreference){
249
            allowOverrideIsShowTaxonAssociationButton.setSelection(allowOverrideShowTaxonAssociation);
250
            allowOverrideIsShowTaxonAssociationButton.addSelectionListener(new SelectionAdapter(){
251
                @Override
252
                public void widgetSelected(SelectionEvent e) {
253
                    setApply(true);
254
                    allowOverrideShowTaxonAssociation = allowOverrideIsShowTaxonAssociationButton.getSelection();
255
                }
256
            });
257
        }else{
258
            allowOverrideIsShowTaxonAssociationButton.setSelection(overrideShowTaxonAssociation);
259
            allowOverrideIsShowTaxonAssociationButton.addSelectionListener(new SelectionAdapter(){
260
                @Override
261
                public void widgetSelected(SelectionEvent e) {
262
                    setApply(true);
263
                    overrideShowTaxonAssociation = allowOverrideIsShowTaxonAssociationButton.getSelection();
264
                }
265
            });
266
            if (!allowOverrideShowTaxonAssociation){
267
                showTaxonAssociationButton.setEnabled(false);
268
                allowOverrideIsShowTaxonAssociationButton.setEnabled(false);
269
            }
270
        }
271

    
272
        showLifeFormButton = new Button(composite, SWT.CHECK);
273
        showLifeFormButton.setText(Messages.DatabasePreferncesPage_Life_Form);
274
        showLifeFormButton.setSelection(isShowLifeForm);
275
        showLifeFormButton.addSelectionListener(new SelectionAdapter(){
276
             @Override
277
             public void widgetSelected(SelectionEvent e) {
278
                 setApply(true);
279
                 isShowLifeForm = showLifeFormButton.getSelection();
280

    
281
              }
282
         });
283

    
284
        allowOverrideShowLifeFormButton = createAllowOverrideButton(composite);
285
        if (isAdminPreference){
286
            allowOverrideShowLifeFormButton.setSelection(allowOverrideShowLifeForm);
287
            allowOverrideShowLifeFormButton.addSelectionListener(new SelectionAdapter(){
288
                @Override
289
                public void widgetSelected(SelectionEvent e) {
290
                    setApply(true);
291
                    allowOverrideShowLifeForm = allowOverrideShowLifeFormButton.getSelection();
292
                }
293
            });
294
        }else{
295
            allowOverrideShowLifeFormButton.setSelection(overrideShowLifeForm);
296
            //showLifeFormButton.setEnabled(overrideShowLifeForm);
297
            allowOverrideShowLifeFormButton.addSelectionListener(new SelectionAdapter(){
298
                @Override
299
                public void widgetSelected(SelectionEvent e) {
300
                    setApply(true);
301
                    overrideShowLifeForm = allowOverrideShowLifeFormButton.getSelection();
302
                    //showLifeFormButton.setEnabled(overrideShowLifeForm);
303
                }
304
            });
305
            if (!allowOverrideShowLifeForm){
306
                showLifeFormButton.setEnabled(false);
307
                allowOverrideShowLifeFormButton.setEnabled(false);
308
            }
309
        }
310

    
311
        if (!isEditingAllowed){
312
            PreferencesUtil.recursiveSetEnabled(composite, false);
313
        }
314
       // composite.setVisible(isShowSpecimenRelatedIssues);
315
       // composite.setEnabled(isShowSpecimenRelatedIssues);
316
        return composite;
317
    }
318

    
319

    
320
    /**
321
     * {@inheritDoc}
322
     */
323
    @Override
324
    protected void getValues() {
325
        CdmPreferenceCache cache = CdmPreferenceCache.instance();
326

    
327
        isShowSpecimenRelatedIssues = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowSpecimen.getKey(), true);
328
        PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowSpecimen);
329
        CdmPreference showSpecimenPref = cache.findBestMatching(key);
330
        allowOverrideShowSpecimenRelatedIssues = showSpecimenPref != null ? showSpecimenPref.isAllowOverride():true;
331

    
332
        overrideShowSpecimenRelatedIssues = PreferencesUtil.getBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.ShowSpecimen.getKey()), true);
333

    
334
        isShowCollectingAreaInGeneralSection = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowCollectingAreasInGeneralSection.getKey(), true);
335
        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowCollectingAreasInGeneralSection);
336
        CdmPreference showCollectingAreaInGeneralSection = cache.findBestMatching(key);
337
        allowOverrideShowCollectingAreaInGeneralSection = showCollectingAreaInGeneralSection != null ? showCollectingAreaInGeneralSection.isAllowOverride():true;
338
        overrideShowCollectionAreaInGeneralSection = PreferencesUtil.getBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.ShowCollectingAreasInGeneralSection.getKey()), true);
339

    
340
        isDeterminationOnlyForFieldUnits = PreferencesUtil.getBooleanValue(PreferencePredicate.DeterminationOnlyForFieldUnits.getKey());
341
        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.DeterminationOnlyForFieldUnits);
342
        CdmPreference showDeterminationOnlyForFieldUnits = cache.findBestMatching(key);
343
        allowOverrideDeterminationOnlyForFieldUnits = showDeterminationOnlyForFieldUnits != null ? showDeterminationOnlyForFieldUnits.isAllowOverride():true;
344
        overrideDeterminationOnlyForFieldUnits = PreferencesUtil.getBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.DeterminationOnlyForFieldUnits.getKey()), true);
345

    
346
        isShowTaxonAssociation = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowTaxonAssociations.getKey());
347
        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.DeterminationOnlyForFieldUnits);
348
        CdmPreference showTaxonAssociation = cache.findBestMatching(key);
349
        allowOverrideShowTaxonAssociation = showTaxonAssociation != null ? showTaxonAssociation.isAllowOverride():true;
350
        overrideShowTaxonAssociation = PreferencesUtil.getBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.ShowTaxonAssociations.getKey()), true);
351

    
352
        isShowLifeForm = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowLifeForm.getKey());
353
        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.DeterminationOnlyForFieldUnits);
354
        CdmPreference showLifeForm = cache.findBestMatching(key);
355
        allowOverrideShowLifeForm = showLifeForm != null ? showLifeForm.isAllowOverride():true;
356
        overrideShowLifeForm = PreferencesUtil.getBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.ShowLifeForm.getKey()), true);
357

    
358

    
359
    }
360

    
361
    @Override
362
    public boolean performOk() {
363
        if (allowOverrideShowSpecimenRelatedIssues){
364
            PreferencesUtil.setBooleanValue(PreferencePredicate.ShowSpecimen.getKey(), isShowSpecimenRelatedIssues);
365
            PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.ShowSpecimen.getKey()), overrideShowSpecimenRelatedIssues);
366
        }
367
        if (allowOverrideShowCollectingAreaInGeneralSection){
368
            PreferencesUtil.setBooleanValue(PreferencePredicate.ShowCollectingAreasInGeneralSection.getKey(), isShowCollectingAreaInGeneralSection);
369
            PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.ShowCollectingAreasInGeneralSection.getKey()), overrideShowCollectionAreaInGeneralSection);
370
        }
371
        if (allowOverrideDeterminationOnlyForFieldUnits){
372
            PreferencesUtil.setBooleanValue(PreferencePredicate.DeterminationOnlyForFieldUnits.getKey(), isDeterminationOnlyForFieldUnits);
373
            PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.DeterminationOnlyForFieldUnits.getKey()), overrideDeterminationOnlyForFieldUnits);
374
        }
375
        if (allowOverrideShowTaxonAssociation){
376
            PreferencesUtil.setBooleanValue(PreferencePredicate.ShowTaxonAssociations.getKey(), isShowTaxonAssociation);
377
            PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.ShowTaxonAssociations.getKey()), overrideShowTaxonAssociation);
378
        }
379
        if (allowOverrideShowLifeForm){
380
            PreferencesUtil.setBooleanValue(PreferencePredicate.ShowLifeForm.getKey(), isShowLifeForm);
381
            PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.ShowLifeForm.getKey()), overrideShowLifeForm);
382
        }
383
        return true;
384
    }
385

    
386

    
387

    
388
    @Override
389
    protected void performDefaults() {
390
        isShowSpecimenRelatedIssues = (Boolean)PreferencePredicate.ShowSpecimen.getDefaultValue();
391
        showSpecimenButton.setSelection(isShowSpecimenRelatedIssues);
392

    
393
        allowOverrideShowSpecimenRelatedIssues = true;
394
        allowOverrideIsShowSpecimenRelatedIssuesButton.setSelection(allowOverrideShowSpecimenRelatedIssues);
395

    
396
        isShowCollectingAreaInGeneralSection = (Boolean)PreferencePredicate.ShowCollectingAreasInGeneralSection.getDefaultValue();
397
        showCollectingAreaInGeneralSectionButton.setSelection(isShowCollectingAreaInGeneralSection);
398

    
399
        allowOverrideShowCollectingAreaInGeneralSection = true;
400
        allowOverrideShowCollectingAreaButton.setSelection(allowOverrideShowCollectingAreaInGeneralSection);
401

    
402
        isDeterminationOnlyForFieldUnits = (Boolean) PreferencePredicate.DeterminationOnlyForFieldUnits.getDefaultValue();
403
        determinationOnlyForFieldUnitsButton.setSelection(isDeterminationOnlyForFieldUnits);
404

    
405
        allowOverrideDeterminationOnlyForFieldUnits = true;
406
        allowOverridesDeterminationOnlyForFieldUnitsButton.setSelection(allowOverrideDeterminationOnlyForFieldUnits);
407

    
408
        isShowTaxonAssociation = (Boolean) PreferencePredicate.ShowTaxonAssociations.getDefaultValue();
409
        showTaxonAssociationButton.setSelection(isShowTaxonAssociation);
410

    
411
        allowOverrideShowTaxonAssociation = true;
412
        allowOverrideIsShowTaxonAssociationButton.setSelection(allowOverrideShowTaxonAssociation);
413

    
414
        isShowLifeForm = (Boolean) PreferencePredicate.ShowLifeForm.getDefaultValue();
415
        showLifeFormButton.setSelection(isShowLifeForm);
416

    
417
        allowOverrideShowLifeForm = true;
418
        allowOverrideShowLifeFormButton.setSelection(allowOverrideShowLifeForm);
419

    
420
        super.performDefaults();
421
    }
422

    
423

    
424
}
(33-33/41)