Project

General

Profile

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

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

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

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

    
52

    
53
    @Override
54
    public void init() {
55
        super.init();
56
//        setPreferenceStore(PreferencesUtil.getPreferenceStore());
57
        if(!CdmStore.isActive()){
58
            return;
59
        }
60

    
61

    
62
    }
63

    
64
    /**
65
     * {@inheritDoc}
66
     */
67
    @Override
68
    protected Control createContents(Composite parent) {
69
        getValues();
70

    
71
        boolean isEditingAllowed = true;
72
        if(!isAdminPreference){
73
            CdmPreferenceCache cache = CdmPreferenceCache.instance();
74
            CdmPreference showSpecimenPref = cache.get(EditorPreferencePredicate.ShowSpecimen.getKey());
75
            if (showSpecimenPref != null){
76
                if (!showSpecimenPref.isAllowOverride() ){
77
                    Label label = new Label(parent, SWT.NONE);
78
                    label.setText(LOCAL_SETTINGS_NOT_ALLOWED);
79
                    isEditingAllowed = false;
80

    
81
                }
82
            }
83
        }
84

    
85
        Label label = new Label(parent, SWT.NONE);
86
        label.setText(DESCRIPTION);
87
        Composite titleComp = createComposite(parent);
88
        GridData gridData = createTextGridData();
89

    
90
        Label separator= new Label(titleComp, SWT.HORIZONTAL | SWT.SEPARATOR);
91
        separator.setLayoutData(gridData);
92
        separator.setVisible(false);
93
        final Button showSpecimenButton = new Button(titleComp, SWT.CHECK);
94

    
95
        showSpecimenButton.setText(Messages.DatabasePreferncesPage_Show_Specimen);
96

    
97
        showSpecimenButton.setSelection(isShowSpecimenRelatedIssues);
98
        showSpecimenButton.addSelectionListener(new SelectionAdapter(){
99
             @Override
100
             public void widgetSelected(SelectionEvent e) {
101
                 setApply(true);
102
                 isShowSpecimenRelatedIssues = showSpecimenButton.getSelection();
103
//                 if(isShowSpecimenRelatedIssues){
104
//                     //composite.setVisible(true);
105
//                     composite.setEnabled(true);
106
//                 }else{
107
//                     //composite.setVisible(false);
108
//                     composite.setEnabled(false);
109
//                 }
110
              }
111
         });
112
        Button allowOverrideIsShowSpecimenRelatedIssuesButton = createAllowOverrideButton(titleComp);
113

    
114

    
115
        if (isAdminPreference){
116
            allowOverrideIsShowSpecimenRelatedIssuesButton.setSelection(allowOverrideShowSpecimenRelatedIssues);
117
            allowOverrideIsShowSpecimenRelatedIssuesButton.addSelectionListener(new SelectionAdapter(){
118
                @Override
119
                public void widgetSelected(SelectionEvent e) {
120
                    setApply(true);
121
                    allowOverrideShowSpecimenRelatedIssues = allowOverrideIsShowSpecimenRelatedIssuesButton.getSelection();
122
                }
123
            });
124
        }else{
125
            allowOverrideIsShowSpecimenRelatedIssuesButton.setSelection(overrideShowSpecimenRelatedIssues);
126
            allowOverrideIsShowSpecimenRelatedIssuesButton.addSelectionListener(new SelectionAdapter(){
127
                @Override
128
                public void widgetSelected(SelectionEvent e) {
129
                    setApply(true);
130
                    overrideShowSpecimenRelatedIssues = allowOverrideIsShowSpecimenRelatedIssuesButton.getSelection();
131
                }
132
            });
133
            if (!allowOverrideShowSpecimenRelatedIssues){
134
                showSpecimenButton.setEnabled(false);
135
                allowOverrideIsShowSpecimenRelatedIssuesButton.setEnabled(false);
136
            }
137
        }
138
        composite = createComposite(parent);
139
        //composite.setEnabled(isShowSpecimenRelatedIssues);
140
        gridData = createTextGridData();
141

    
142
        separator= new Label(composite, SWT.HORIZONTAL | SWT.SEPARATOR);
143
        separator.setLayoutData(gridData);
144

    
145
        final Button showCollectingAreaInGeneralSectionButton = new Button(composite, SWT.CHECK);
146

    
147
        showCollectingAreaInGeneralSectionButton.setText(Messages.DatabasePreferncesPage_Show_Collecting_Areas_in_general_section);
148

    
149
        showCollectingAreaInGeneralSectionButton.setSelection(isShowCollectingAreaInGeneralSection);
150
        showCollectingAreaInGeneralSectionButton.addSelectionListener(new SelectionAdapter(){
151
             @Override
152
             public void widgetSelected(SelectionEvent e) {
153
                 setApply(true);
154
                 isShowCollectingAreaInGeneralSection = showCollectingAreaInGeneralSectionButton.getSelection();
155

    
156
              }
157
         });
158
        Button allowOverrideShowCollectingAreaButton = createAllowOverrideButton(composite);
159
        if (isAdminPreference){
160
            allowOverrideShowCollectingAreaButton.setSelection(allowOverrideShowCollectingAreaInGeneralSection);
161
            allowOverrideShowCollectingAreaButton.addSelectionListener(new SelectionAdapter(){
162
                @Override
163
                public void widgetSelected(SelectionEvent e) {
164
                    setApply(true);
165
                    allowOverrideShowCollectingAreaInGeneralSection = allowOverrideShowCollectingAreaButton.getSelection();
166
                }
167
            });
168
        }else{
169
            allowOverrideShowCollectingAreaButton.setSelection(overrideShowCollectionAreaInGeneralSection);
170
            allowOverrideShowCollectingAreaButton.addSelectionListener(new SelectionAdapter(){
171
                @Override
172
                public void widgetSelected(SelectionEvent e) {
173
                    setApply(true);
174
                    overrideShowCollectionAreaInGeneralSection = allowOverrideShowCollectingAreaButton.getSelection();
175
                }
176
            });
177
            if (!allowOverrideShowCollectingAreaInGeneralSection){
178
                showCollectingAreaInGeneralSectionButton.setEnabled(false);
179
                allowOverrideShowCollectingAreaButton.setEnabled(false);
180
            }
181
        }
182

    
183
        final Button determinationOnlyForFieldUnitsButton = new Button(composite, SWT.CHECK);
184
        determinationOnlyForFieldUnitsButton.setText(Messages.DatabasePreferncesPage_Determination_only_for_field_unnits);
185
        determinationOnlyForFieldUnitsButton.setSelection(isDeterminationOnlyForFieldUnits);
186
        determinationOnlyForFieldUnitsButton.addSelectionListener(new SelectionAdapter(){
187
             @Override
188
             public void widgetSelected(SelectionEvent e) {
189
                 setApply(true);
190
                 isDeterminationOnlyForFieldUnits = determinationOnlyForFieldUnitsButton.getSelection();
191
             }
192
         });
193

    
194
        Button allowOverridesDeterminationOnlyForFieldUnitsButton = createAllowOverrideButton(composite);
195
        if (isAdminPreference){
196
            allowOverridesDeterminationOnlyForFieldUnitsButton.setSelection(allowOverrideDeterminationOnlyForFieldUnits);
197
            allowOverridesDeterminationOnlyForFieldUnitsButton.addSelectionListener(new SelectionAdapter(){
198
                @Override
199
                public void widgetSelected(SelectionEvent e) {
200
                    setApply(true);
201
                    allowOverrideDeterminationOnlyForFieldUnits = allowOverridesDeterminationOnlyForFieldUnitsButton.getSelection();
202
                }
203
            });
204
        }else{
205
            allowOverridesDeterminationOnlyForFieldUnitsButton.setSelection(overrideDeterminationOnlyForFieldUnits);
206
            allowOverridesDeterminationOnlyForFieldUnitsButton.addSelectionListener(new SelectionAdapter(){
207
                @Override
208
                public void widgetSelected(SelectionEvent e) {
209
                    setApply(true);
210
                    overrideDeterminationOnlyForFieldUnits = allowOverridesDeterminationOnlyForFieldUnitsButton.getSelection();
211
                }
212
            });
213
            if (!allowOverrideDeterminationOnlyForFieldUnits){
214
                determinationOnlyForFieldUnitsButton.setEnabled(false);
215
                allowOverridesDeterminationOnlyForFieldUnitsButton.setEnabled(false);
216
            }
217
        }
218

    
219
        final Button showTaxonAssociationButton = new Button(composite, SWT.CHECK);
220

    
221
        showTaxonAssociationButton.setText(Messages.DatabasePreferncesPage_Taxon_Associations);
222

    
223
        showTaxonAssociationButton.setSelection(isShowTaxonAssociation);
224
        showTaxonAssociationButton.addSelectionListener(new SelectionAdapter(){
225
             @Override
226
             public void widgetSelected(SelectionEvent e) {
227
                 setApply(true);
228
                 isShowTaxonAssociation = showTaxonAssociationButton.getSelection();
229

    
230
              }
231
         });
232
        Button allowOverrideIsShowTaxonAssociationButton = createAllowOverrideButton(composite);
233
        if (isAdminPreference){
234
            allowOverrideIsShowTaxonAssociationButton.setSelection(allowOverrideShowTaxonAssociation);
235
            allowOverrideIsShowTaxonAssociationButton.addSelectionListener(new SelectionAdapter(){
236
                @Override
237
                public void widgetSelected(SelectionEvent e) {
238
                    setApply(true);
239
                    allowOverrideShowTaxonAssociation = allowOverrideIsShowTaxonAssociationButton.getSelection();
240
                }
241
            });
242
        }else{
243
            allowOverrideIsShowTaxonAssociationButton.setSelection(overrideShowTaxonAssociation);
244
            allowOverrideIsShowTaxonAssociationButton.addSelectionListener(new SelectionAdapter(){
245
                @Override
246
                public void widgetSelected(SelectionEvent e) {
247
                    setApply(true);
248
                    overrideShowTaxonAssociation = allowOverrideIsShowTaxonAssociationButton.getSelection();
249
                }
250
            });
251
            if (!allowOverrideShowTaxonAssociation){
252
                showTaxonAssociationButton.setEnabled(false);
253
                allowOverrideIsShowTaxonAssociationButton.setEnabled(false);
254
            }
255
        }
256

    
257
        final Button showLifeFormButton = new Button(composite, SWT.CHECK);
258
        showLifeFormButton.setText(Messages.DatabasePreferncesPage_Life_Form);
259
        showLifeFormButton.setSelection(isShowLifeForm);
260
        showLifeFormButton.addSelectionListener(new SelectionAdapter(){
261
             @Override
262
             public void widgetSelected(SelectionEvent e) {
263
                 setApply(true);
264
                 isShowLifeForm = showLifeFormButton.getSelection();
265

    
266
              }
267
         });
268

    
269
        Button allowOverrideShowLifeFormButton = createAllowOverrideButton(composite);
270
        if (isAdminPreference){
271
            allowOverrideShowLifeFormButton.setSelection(allowOverrideShowLifeForm);
272
            allowOverrideShowLifeFormButton.addSelectionListener(new SelectionAdapter(){
273
                @Override
274
                public void widgetSelected(SelectionEvent e) {
275
                    setApply(true);
276
                    allowOverrideShowLifeForm = allowOverrideShowLifeFormButton.getSelection();
277
                }
278
            });
279
        }else{
280
            allowOverrideShowLifeFormButton.setSelection(overrideShowLifeForm);
281
            //showLifeFormButton.setEnabled(overrideShowLifeForm);
282
            allowOverrideShowLifeFormButton.addSelectionListener(new SelectionAdapter(){
283
                @Override
284
                public void widgetSelected(SelectionEvent e) {
285
                    setApply(true);
286
                    overrideShowLifeForm = allowOverrideShowLifeFormButton.getSelection();
287
                    //showLifeFormButton.setEnabled(overrideShowLifeForm);
288
                }
289
            });
290
            if (!allowOverrideShowLifeForm){
291
                showLifeFormButton.setEnabled(false);
292
                allowOverrideShowLifeFormButton.setEnabled(false);
293
            }
294
        }
295

    
296
        if (!isEditingAllowed){
297
            PreferencesUtil.recursiveSetEnabled(composite, false);
298
        }
299
       // composite.setVisible(isShowSpecimenRelatedIssues);
300
       // composite.setEnabled(isShowSpecimenRelatedIssues);
301
        return composite;
302
    }
303

    
304

    
305
    /**
306
     * {@inheritDoc}
307
     */
308
    @Override
309
    protected void getValues() {
310
        CdmPreferenceCache cache = CdmPreferenceCache.instance();
311

    
312
        isShowSpecimenRelatedIssues = PreferencesUtil.getBooleanValue(EditorPreferencePredicate.ShowSpecimen.getKey());
313

    
314
        allowOverrideShowSpecimenRelatedIssues = cache.get(EditorPreferencePredicate.ShowSpecimen.getKey())!= null ? cache.get(EditorPreferencePredicate.ShowSpecimen.getKey()).isAllowOverride():true;
315

    
316
        overrideShowSpecimenRelatedIssues = PreferencesUtil.getBooleanValue(PreferencesUtil.createOverridePreferenceString(EditorPreferencePredicate.ShowSpecimen.getKey()));
317

    
318
        isShowCollectingAreaInGeneralSection = PreferencesUtil.getBooleanValue(EditorPreferencePredicate.ShowCollectingAreasInGeneralSection.getKey());
319
        allowOverrideShowCollectingAreaInGeneralSection = cache.get(EditorPreferencePredicate.ShowCollectingAreasInGeneralSection.getKey())!= null ? cache.get(EditorPreferencePredicate.ShowCollectingAreasInGeneralSection.getKey()).isAllowOverride():true;
320
        overrideShowCollectionAreaInGeneralSection = PreferencesUtil.getBooleanValue(PreferencesUtil.createOverridePreferenceString(EditorPreferencePredicate.ShowCollectingAreasInGeneralSection.getKey()));
321

    
322
        isDeterminationOnlyForFieldUnits = PreferencesUtil.getBooleanValue(EditorPreferencePredicate.DeterminationOnlyForFieldUnits.getKey());
323
        allowOverrideDeterminationOnlyForFieldUnits = cache.get(EditorPreferencePredicate.DeterminationOnlyForFieldUnits.getKey())!= null ? cache.get(EditorPreferencePredicate.DeterminationOnlyForFieldUnits.getKey()).isAllowOverride():true;
324
        overrideDeterminationOnlyForFieldUnits = PreferencesUtil.getBooleanValue(PreferencesUtil.createOverridePreferenceString(EditorPreferencePredicate.DeterminationOnlyForFieldUnits.getKey()));
325

    
326
        isShowTaxonAssociation = PreferencesUtil.getBooleanValue(EditorPreferencePredicate.ShowTaxonAssociations.getKey());
327
        allowOverrideShowTaxonAssociation = cache.get(EditorPreferencePredicate.ShowTaxonAssociations.getKey())!= null ? cache.get(EditorPreferencePredicate.ShowTaxonAssociations.getKey()).isAllowOverride():true;
328
        overrideShowTaxonAssociation = PreferencesUtil.getBooleanValue(PreferencesUtil.createOverridePreferenceString(EditorPreferencePredicate.ShowTaxonAssociations.getKey()));
329

    
330
        isShowLifeForm = PreferencesUtil.getBooleanValue(EditorPreferencePredicate.ShowLifeForm.getKey());
331
        allowOverrideShowLifeForm = cache.get(EditorPreferencePredicate.ShowLifeForm.getKey())!= null ? cache.get(EditorPreferencePredicate.ShowLifeForm.getKey()).isAllowOverride():true;
332
        overrideShowLifeForm = PreferencesUtil.getBooleanValue(PreferencesUtil.createOverridePreferenceString(EditorPreferencePredicate.ShowLifeForm.getKey()));
333

    
334

    
335
    }
336

    
337
    @Override
338
    public boolean performOk() {
339
        if (allowOverrideShowSpecimenRelatedIssues){
340
            PreferencesUtil.setBooleanValue(EditorPreferencePredicate.ShowSpecimen.getKey(), isShowSpecimenRelatedIssues);
341
            PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(EditorPreferencePredicate.ShowSpecimen.getKey()), overrideShowSpecimenRelatedIssues);
342
        }
343
        if (allowOverrideShowCollectingAreaInGeneralSection){
344
            PreferencesUtil.setBooleanValue(EditorPreferencePredicate.ShowCollectingAreasInGeneralSection.getKey(), isShowCollectingAreaInGeneralSection);
345
            PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(EditorPreferencePredicate.ShowCollectingAreasInGeneralSection.getKey()), overrideShowCollectionAreaInGeneralSection);
346
        }
347
        if (allowOverrideDeterminationOnlyForFieldUnits){
348
            PreferencesUtil.setBooleanValue(EditorPreferencePredicate.DeterminationOnlyForFieldUnits.getKey(), isDeterminationOnlyForFieldUnits);
349
            PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(EditorPreferencePredicate.DeterminationOnlyForFieldUnits.getKey()), overrideDeterminationOnlyForFieldUnits);
350
        }
351
        if (allowOverrideShowTaxonAssociation){
352
            PreferencesUtil.setBooleanValue(EditorPreferencePredicate.ShowTaxonAssociations.getKey(), isShowTaxonAssociation);
353
            PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(EditorPreferencePredicate.ShowTaxonAssociations.getKey()), overrideShowTaxonAssociation);
354
        }
355
        if (allowOverrideShowLifeForm){
356
            PreferencesUtil.setBooleanValue(EditorPreferencePredicate.ShowLifeForm.getKey(), isShowLifeForm);
357
            PreferencesUtil.setBooleanValue(PreferencesUtil.createOverridePreferenceString(EditorPreferencePredicate.ShowLifeForm.getKey()), overrideShowLifeForm);
358
        }
359
        return true;
360
    }
361

    
362

    
363
}
(33-33/41)