Project

General

Profile

Download (9.65 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2018 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.databaseAdmin.preferencePage;
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.layout.GridLayout;
16
import org.eclipse.swt.widgets.Button;
17
import org.eclipse.swt.widgets.Composite;
18
import org.eclipse.swt.widgets.Control;
19
import org.eclipse.swt.widgets.Label;
20

    
21
import eu.etaxonomy.cdm.api.application.ICdmRepository;
22
import eu.etaxonomy.cdm.api.service.IPreferenceService;
23
import eu.etaxonomy.cdm.model.metadata.CdmPreference;
24
import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
25
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
26
import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
27
import eu.etaxonomy.taxeditor.l10n.Messages;
28
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
29
import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
30
import eu.etaxonomy.taxeditor.store.CdmStore;
31

    
32
/**
33
 * @author k.luther
34
 * @since 27.04.2018
35
 *
36
 */
37
public class SpecimenAdminPreferences extends CdmPreferencePage implements IE4AdminPreferencePage {
38
    public SpecimenAdminPreferences() {
39
    }
40

    
41

    
42
    boolean isShowSpecimenRelatedIssues;
43
    boolean isShowCollectingAreaInGeneralSection;
44
    boolean isDeterminationOnlyForFieldUnits;
45
    boolean isShowTaxonAssociation;
46
    boolean isShowLifeForm;
47
    boolean isUseLocalPreference;
48
    Composite composite;
49

    
50
    @Override
51
    protected Control createContents(Composite parent) {
52

    
53
        getValues();
54

    
55

    
56
        final Button showSpecimenButton = new Button(parent, SWT.CHECK);
57

    
58
        showSpecimenButton.setText(Messages.DatabasePreferncesPage_Show_Specimen);
59

    
60
        showSpecimenButton.setSelection(isShowSpecimenRelatedIssues);
61
        showSpecimenButton.addSelectionListener(new SelectionAdapter(){
62
             @Override
63
             public void widgetSelected(SelectionEvent e) {
64
                 isShowSpecimenRelatedIssues = showSpecimenButton.getSelection();
65
                 if(isShowSpecimenRelatedIssues){
66
                     composite.setVisible(true);
67
                     composite.setEnabled(true);
68
                 }else{
69
                     composite.setVisible(false);
70
                     composite.setEnabled(false);
71
                 }
72
              }
73
         });
74
        composite = new Composite(parent, SWT.NULL);
75
        GridLayout gridLayout = new GridLayout();
76
        composite.setLayout(gridLayout);
77
        composite.setEnabled(isShowSpecimenRelatedIssues);
78
        Label separator= new Label(composite, SWT.HORIZONTAL | SWT.SEPARATOR);
79
        separator.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
80

    
81
        final Button showCollectingAreaInGeneralSectionButton = new Button(composite, SWT.CHECK);
82

    
83
        showCollectingAreaInGeneralSectionButton.setText(Messages.DatabasePreferncesPage_Show_Collecting_Areas_in_general_section);
84

    
85
        showCollectingAreaInGeneralSectionButton.setSelection(isShowCollectingAreaInGeneralSection);
86
        showCollectingAreaInGeneralSectionButton.addSelectionListener(new SelectionAdapter(){
87
             @Override
88
             public void widgetSelected(SelectionEvent e) {
89
                 isShowCollectingAreaInGeneralSection = showCollectingAreaInGeneralSectionButton.getSelection();
90

    
91
              }
92
         });
93

    
94
        final Button determinationOnlyForFieldUnitsButton = new Button(composite, SWT.CHECK);
95

    
96
        determinationOnlyForFieldUnitsButton.setText(Messages.DatabasePreferncesPage_Determination_only_for_field_unnits);
97

    
98
        determinationOnlyForFieldUnitsButton.setSelection(isDeterminationOnlyForFieldUnits);
99
        determinationOnlyForFieldUnitsButton.addSelectionListener(new SelectionAdapter(){
100
             @Override
101
             public void widgetSelected(SelectionEvent e) {
102
                 isDeterminationOnlyForFieldUnits = determinationOnlyForFieldUnitsButton.getSelection();
103
             }
104
         });
105

    
106
        final Button showTaxonAssociationButton = new Button(composite, SWT.CHECK);
107

    
108
        showTaxonAssociationButton.setText(Messages.DatabasePreferncesPage_Taxon_Associations);
109

    
110
        showTaxonAssociationButton.setSelection(isShowTaxonAssociation);
111
        showTaxonAssociationButton.addSelectionListener(new SelectionAdapter(){
112
             @Override
113
             public void widgetSelected(SelectionEvent e) {
114
                 isShowTaxonAssociation = showTaxonAssociationButton.getSelection();
115

    
116
              }
117
         });
118

    
119
        final Button showLifeFormButton = new Button(composite, SWT.CHECK);
120
        showLifeFormButton.setText(Messages.DatabasePreferncesPage_Life_Form);
121
        showLifeFormButton.setSelection(isShowLifeForm);
122
        showLifeFormButton.addSelectionListener(new SelectionAdapter(){
123
             @Override
124
             public void widgetSelected(SelectionEvent e) {
125
                 isShowLifeForm = showLifeFormButton.getSelection();
126

    
127
              }
128
         });
129

    
130
    //    Composite useLocalComp = new Composite(composite, SWT.NONE);
131

    
132

    
133
        final Button useLocalPreference = new Button(composite, SWT.CHECK);
134

    
135
        useLocalPreference.setText(Messages.DatabasePreferencesPage_UseLocalPreferences);
136
        GridData gridData = new GridData(SWT.FILL, SWT.BOTTOM, false, false);
137
        gridData.verticalIndent = 10;
138
        useLocalPreference.setLayoutData(gridData);
139

    
140
        useLocalPreference.setSelection(isUseLocalPreference);
141
        useLocalPreference.addSelectionListener(new SelectionAdapter(){
142
             @Override
143
             public void widgetSelected(SelectionEvent e) {
144
                 isUseLocalPreference = useLocalPreference.getSelection();
145

    
146
              }
147
         });
148
        return composite;
149
    }
150

    
151
    @Override
152
    public void init() {
153
        super.init();
154
        if(!CdmStore.isActive()){
155
            return;
156
        }
157

    
158

    
159

    
160
    }
161

    
162
    private void getValues(){
163
        ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
164
        if (controller != null){
165
            IPreferenceService service = controller.getPreferenceService();
166
            PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.ShowSpecimen);
167
            CdmPreference isShowSpecimenPref = service.find(key);
168
            if (isShowSpecimenPref != null){
169
                this.isShowSpecimenRelatedIssues = Boolean.valueOf(isShowSpecimenPref.getValue());
170
            }
171

    
172

    
173
            key = CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.ShowCollectingAreasInGeneralSection);
174
            CdmPreference isShowCollectingAreaInGeneralSectionPref = service.find(key);
175
            if (isShowCollectingAreaInGeneralSectionPref != null){
176
                this.isShowCollectingAreaInGeneralSection = Boolean.valueOf(isShowCollectingAreaInGeneralSectionPref.getValue());
177
            }
178

    
179
            key = CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.DeterminationOnlyForFieldUnits);
180
            CdmPreference isDeterminationOnlyForFieldUnitsPref = service.find(key);
181
            if (isDeterminationOnlyForFieldUnitsPref != null){
182
                this.isDeterminationOnlyForFieldUnits = Boolean.valueOf(isDeterminationOnlyForFieldUnitsPref.getValue());
183
            }
184
            key = CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.ShowTaxonAssociations);
185
            CdmPreference isShowTaxonAssociationPref = service.find(key);
186
            if (isShowTaxonAssociationPref != null){
187
                this.isShowTaxonAssociation = Boolean.valueOf(isShowTaxonAssociationPref.getValue());
188
                isUseLocalPreference = isShowTaxonAssociationPref.isAllowOverride();
189
            }
190

    
191
            key = CdmPreference.NewKey(PreferenceSubject.NewDatabaseInstance(), PreferencePredicate.ShowLifeForm);
192
            CdmPreference isShowLifeFormPref = service.find(key);
193
            if (isShowLifeFormPref != null){
194
                this.isShowLifeForm = Boolean.valueOf(isShowLifeFormPref.getValue());
195
            }
196

    
197

    
198

    
199

    
200
        }
201
    }
202

    
203
    @Override
204
     public boolean performOk() {
205
        ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
206
        if (controller != null){
207
            IPreferenceService service = controller.getPreferenceService();
208

    
209
            CdmPreference pref = CdmPreference.NewDatabaseInstance(PreferencePredicate.ShowCollectingAreasInGeneralSection, Boolean.toString(this.isShowCollectingAreaInGeneralSection));
210
            pref.setAllowOverride(isUseLocalPreference);
211
            service.set(pref);
212
            pref = CdmPreference.NewDatabaseInstance(PreferencePredicate.ShowSpecimen, Boolean.toString(this.isShowSpecimenRelatedIssues));
213
            pref.setAllowOverride(isUseLocalPreference);
214
            service.set(pref);
215

    
216
            pref = CdmPreference.NewDatabaseInstance(PreferencePredicate.DeterminationOnlyForFieldUnits, Boolean.toString(this.isDeterminationOnlyForFieldUnits));
217
            pref.setAllowOverride(isUseLocalPreference);
218
            service.set(pref);
219

    
220
            pref = CdmPreference.NewDatabaseInstance(PreferencePredicate.ShowTaxonAssociations, Boolean.toString(this.isShowTaxonAssociation));
221
            pref.setAllowOverride(isUseLocalPreference);
222
            service.set(pref);
223

    
224
            pref = CdmPreference.NewDatabaseInstance(PreferencePredicate.ShowLifeForm, Boolean.toString(this.isShowLifeForm));
225
            pref.setAllowOverride(isUseLocalPreference);
226
            service.set(pref);
227
            PreferencesUtil.updateDBPreferences();
228

    
229

    
230
        }
231
        return true;
232
    }
233

    
234
}
(11-11/12)