Project

General

Profile

Download (20.3 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.PreferencePredicate;
22
import eu.etaxonomy.taxeditor.l10n.Messages;
23
import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
24
import eu.etaxonomy.taxeditor.store.CdmStore;
25

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

    
33
    private static final String LOCAL_SETTINGS_NOT_ALLOWED = Messages.SpecimenOrObservationPreferences_0;
34
    private static final String DESCRIPTION = Messages.SpecimenOrObservationPreferences_1;
35

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

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

    
64

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

    
73

    
74
    }
75

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

    
83
        boolean isEditingAllowed = true;
84
        if(!isAdminPreference){
85
            CdmPreferenceCache cache = CdmPreferenceCache.instance();
86
            CdmPreference showSpecimenPref = cache.get(PreferencePredicate.ShowSpecimen.getKey());
87
            if (showSpecimenPref != null){
88
                if (!showSpecimenPref.isAllowOverride() ){
89
                    Label label = new Label(parent, SWT.NONE);
90
                    label.setText(LOCAL_SETTINGS_NOT_ALLOWED);
91
                    isEditingAllowed = false;
92

    
93
                }
94
            }
95
        }
96

    
97
        Label label = new Label(parent, SWT.NONE);
98
        label.setText(DESCRIPTION);
99
        Composite titleComp = createComposite(parent);
100
        GridData gridData = createTextGridData();
101

    
102
        Label separator= new Label(titleComp, SWT.HORIZONTAL | SWT.SEPARATOR);
103
        separator.setLayoutData(gridData);
104
        separator.setVisible(false);
105
        showSpecimenButton = new Button(titleComp, SWT.CHECK);
106

    
107
        showSpecimenButton.setText(Messages.DatabasePreferncesPage_Show_Specimen);
108

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

    
126

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

    
154
        separator= new Label(composite, SWT.HORIZONTAL | SWT.SEPARATOR);
155
        separator.setLayoutData(gridData);
156

    
157
        showCollectingAreaInGeneralSectionButton = new Button(composite, SWT.CHECK);
158

    
159
        showCollectingAreaInGeneralSectionButton.setText(Messages.DatabasePreferncesPage_Show_Collecting_Areas_in_general_section);
160

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

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

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

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

    
231
        showTaxonAssociationButton = new Button(composite, SWT.CHECK);
232

    
233
        showTaxonAssociationButton.setText(Messages.DatabasePreferncesPage_Taxon_Associations);
234

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

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

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

    
278
              }
279
         });
280

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

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

    
316

    
317
    /**
318
     * {@inheritDoc}
319
     */
320
    @Override
321
    protected void getValues() {
322
        CdmPreferenceCache cache = CdmPreferenceCache.instance();
323

    
324
        isShowSpecimenRelatedIssues = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowSpecimen.getKey());
325

    
326
        allowOverrideShowSpecimenRelatedIssues = cache.get(PreferencePredicate.ShowSpecimen.getKey())!= null ? cache.get(PreferencePredicate.ShowSpecimen.getKey()).isAllowOverride():true;
327

    
328
        overrideShowSpecimenRelatedIssues = PreferencesUtil.getBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.ShowSpecimen.getKey()));
329

    
330
        isShowCollectingAreaInGeneralSection = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowCollectingAreasInGeneralSection.getKey());
331
        allowOverrideShowCollectingAreaInGeneralSection = cache.get(PreferencePredicate.ShowCollectingAreasInGeneralSection.getKey())!= null ? cache.get(PreferencePredicate.ShowCollectingAreasInGeneralSection.getKey()).isAllowOverride():true;
332
        overrideShowCollectionAreaInGeneralSection = PreferencesUtil.getBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.ShowCollectingAreasInGeneralSection.getKey()));
333

    
334
        isDeterminationOnlyForFieldUnits = PreferencesUtil.getBooleanValue(PreferencePredicate.DeterminationOnlyForFieldUnits.getKey());
335
        allowOverrideDeterminationOnlyForFieldUnits = cache.get(PreferencePredicate.DeterminationOnlyForFieldUnits.getKey())!= null ? cache.get(PreferencePredicate.DeterminationOnlyForFieldUnits.getKey()).isAllowOverride():true;
336
        overrideDeterminationOnlyForFieldUnits = PreferencesUtil.getBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.DeterminationOnlyForFieldUnits.getKey()));
337

    
338
        isShowTaxonAssociation = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowTaxonAssociations.getKey());
339
        allowOverrideShowTaxonAssociation = cache.get(PreferencePredicate.ShowTaxonAssociations.getKey())!= null ? cache.get(PreferencePredicate.ShowTaxonAssociations.getKey()).isAllowOverride():true;
340
        overrideShowTaxonAssociation = PreferencesUtil.getBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.ShowTaxonAssociations.getKey()));
341

    
342
        isShowLifeForm = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowLifeForm.getKey());
343
        allowOverrideShowLifeForm = cache.get(PreferencePredicate.ShowLifeForm.getKey())!= null ? cache.get(PreferencePredicate.ShowLifeForm.getKey()).isAllowOverride():true;
344
        overrideShowLifeForm = PreferencesUtil.getBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.ShowLifeForm.getKey()));
345

    
346

    
347
    }
348

    
349
    @Override
350
    public boolean performOk() {
351
        if (allowOverrideShowSpecimenRelatedIssues){
352
            PreferencesUtil.setBooleanValue(PreferencePredicate.ShowSpecimen.getKey(), isShowSpecimenRelatedIssues);
353
            PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.ShowSpecimen.getKey()), overrideShowSpecimenRelatedIssues);
354
        }
355
        if (allowOverrideShowCollectingAreaInGeneralSection){
356
            PreferencesUtil.setBooleanValue(PreferencePredicate.ShowCollectingAreasInGeneralSection.getKey(), isShowCollectingAreaInGeneralSection);
357
            PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.ShowCollectingAreasInGeneralSection.getKey()), overrideShowCollectionAreaInGeneralSection);
358
        }
359
        if (allowOverrideDeterminationOnlyForFieldUnits){
360
            PreferencesUtil.setBooleanValue(PreferencePredicate.DeterminationOnlyForFieldUnits.getKey(), isDeterminationOnlyForFieldUnits);
361
            PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.DeterminationOnlyForFieldUnits.getKey()), overrideDeterminationOnlyForFieldUnits);
362
        }
363
        if (allowOverrideShowTaxonAssociation){
364
            PreferencesUtil.setBooleanValue(PreferencePredicate.ShowTaxonAssociations.getKey(), isShowTaxonAssociation);
365
            PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.ShowTaxonAssociations.getKey()), overrideShowTaxonAssociation);
366
        }
367
        if (allowOverrideShowLifeForm){
368
            PreferencesUtil.setBooleanValue(PreferencePredicate.ShowLifeForm.getKey(), isShowLifeForm);
369
            PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(PreferencePredicate.ShowLifeForm.getKey()), overrideShowLifeForm);
370
        }
371
        return true;
372
    }
373

    
374

    
375

    
376
    @Override
377
    protected void performDefaults() {
378
        isShowSpecimenRelatedIssues = (Boolean)PreferencePredicate.ShowSpecimen.getDefaultValue();
379
        showSpecimenButton.setSelection(isShowSpecimenRelatedIssues);
380

    
381
        allowOverrideShowSpecimenRelatedIssues = true;
382
        allowOverrideIsShowSpecimenRelatedIssuesButton.setSelection(allowOverrideShowSpecimenRelatedIssues);
383

    
384
        isShowCollectingAreaInGeneralSection = (Boolean)PreferencePredicate.ShowCollectingAreasInGeneralSection.getDefaultValue();
385
        showCollectingAreaInGeneralSectionButton.setSelection(isShowCollectingAreaInGeneralSection);
386

    
387
        allowOverrideShowCollectingAreaInGeneralSection = true;
388
        allowOverrideShowCollectingAreaButton.setSelection(allowOverrideShowCollectingAreaInGeneralSection);
389

    
390
        isDeterminationOnlyForFieldUnits = (Boolean) PreferencePredicate.DeterminationOnlyForFieldUnits.getDefaultValue();
391
        determinationOnlyForFieldUnitsButton.setSelection(isDeterminationOnlyForFieldUnits);
392

    
393
        allowOverrideDeterminationOnlyForFieldUnits = true;
394
        allowOverridesDeterminationOnlyForFieldUnitsButton.setSelection(allowOverrideDeterminationOnlyForFieldUnits);
395

    
396
        isShowTaxonAssociation = (Boolean) PreferencePredicate.ShowTaxonAssociations.getDefaultValue();
397
        showTaxonAssociationButton.setSelection(isShowTaxonAssociation);
398

    
399
        allowOverrideShowTaxonAssociation = true;
400
        allowOverrideIsShowTaxonAssociationButton.setSelection(allowOverrideShowTaxonAssociation);
401

    
402
        isShowLifeForm = (Boolean) PreferencePredicate.ShowLifeForm.getDefaultValue();
403
        showLifeFormButton.setSelection(isShowLifeForm);
404

    
405
        allowOverrideShowLifeForm = true;
406
        allowOverrideShowLifeFormButton.setSelection(allowOverrideShowLifeForm);
407

    
408
        super.performDefaults();
409
    }
410

    
411

    
412
}
(33-33/41)