Project

General

Profile

Download (12.6 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.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.events.SelectionListener;
15
import org.eclipse.swt.layout.GridData;
16
import org.eclipse.swt.widgets.Button;
17
import org.eclipse.swt.widgets.Combo;
18
import org.eclipse.swt.widgets.Composite;
19
import org.eclipse.swt.widgets.Control;
20
import org.eclipse.swt.widgets.Label;
21

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

    
29
/**
30
 * @author k.luther
31
 * @since 29.05.2018
32
 *
33
 */
34
public class GeneralPreferencePage extends CdmPreferencePage implements SelectionListener{
35

    
36

    
37
    protected Boolean isShowIOMenu;
38
//    protected boolean isShowMediaView;
39
    protected Boolean isShowCheckListPerspective;
40
    protected Boolean isShowTaxonNodeWizard;
41
    protected boolean isAllowOverrideShowIOMenu;
42
    protected boolean isAllowOverrideShowMediaView;
43
    protected boolean isAllowOverrideShowCheckListPerspective;
44
    protected boolean isAllowOverrideShowTaxonNodeWizard;
45
    protected boolean isOverrideShowIOMenu;
46
    protected boolean isOverrideShowMediaView;
47
    protected boolean isOverrideShowCheckListPerspective;
48
    protected boolean isOverrideShowTaxonNodeWizard;
49

    
50
    protected Combo showIOMenuButton;
51
    protected Button allowOverrideShowIOMenuButton;
52
    protected Combo showChecklistPerspectiveButton;
53
    protected Button allowOverrideShowChecklistButton;
54
    protected Combo showTaxonNodeWizardButton;
55
    protected Button allowOverrideShowTaxonNodeWizardButton;
56
    final String SHOW = Messages.GeneralPreference_yes;
57
    final String DO_NOT_SHOW = Messages.GeneralPreference_no;
58
    /**
59
     * {@inheritDoc}
60
     */
61
    @Override
62
    protected Control createContents(Composite parent) {
63
        getValues();
64
        final Composite composite = createComposite(parent);
65

    
66
        GridData gridData = createTextGridData();
67

    
68
        Label separator= new Label(composite, SWT.HORIZONTAL | SWT.SEPARATOR);
69
        separator.setLayoutData(gridData);
70
        separator.setVisible(false);
71

    
72
        showIOMenuButton = createBooleanCombo(composite, SHOW, DO_NOT_SHOW, PreferencePredicate.ShowImportExportMenu, "Show Export/Import Menu",
73
                isAdminPreference);
74

    
75
        showIOMenuButton.addSelectionListener(this);
76

    
77

    
78
        if (isAdminPreference){
79
        allowOverrideShowIOMenuButton = createAllowOverrideButton(composite);
80

    
81

    
82
            allowOverrideShowIOMenuButton.addSelectionListener(new SelectionAdapter(){
83
                @Override
84
                public void widgetSelected(SelectionEvent e) {
85
                    isAllowOverrideShowIOMenu = allowOverrideShowIOMenuButton.getSelection();
86
                    setApply(true);
87
                }
88
            });
89
        }
90

    
91

    
92
        showChecklistPerspectiveButton = createBooleanCombo(composite, SHOW, DO_NOT_SHOW, PreferencePredicate.ShowChecklistPerspective, "Set Checklist Perspective as Default Perspective",
93
                isAdminPreference);
94

    
95
        showChecklistPerspectiveButton.addSelectionListener(this);
96

    
97

    
98
        if (isAdminPreference){
99
            allowOverrideShowChecklistButton = createAllowOverrideButton(composite);
100
            allowOverrideShowChecklistButton.addSelectionListener(new SelectionAdapter(){
101
                @Override
102
                public void widgetSelected(SelectionEvent e) {
103
                    isAllowOverrideShowCheckListPerspective = allowOverrideShowChecklistButton.getSelection();
104
                    setApply(true);
105
                }
106
            });
107
        }
108

    
109
        showTaxonNodeWizardButton = createBooleanCombo(composite, SHOW, DO_NOT_SHOW, PreferencePredicate.ShowTaxonNodeWizard, "Show Taxonnode Wizard",
110
                isAdminPreference);
111
        showTaxonNodeWizardButton.setText(Messages.DatabasePreferncesPage_Show_TaxonNodeWizard);
112
        showTaxonNodeWizardButton.addSelectionListener(this);
113

    
114

    
115
        if (isAdminPreference){
116
            allowOverrideShowTaxonNodeWizardButton = createAllowOverrideButton(composite);
117
            allowOverrideShowTaxonNodeWizardButton.addSelectionListener(new SelectionAdapter(){
118
                @Override
119
                public void widgetSelected(SelectionEvent e) {
120
                    isAllowOverrideShowTaxonNodeWizard = allowOverrideShowTaxonNodeWizardButton.getSelection();
121
                    setApply(true);
122
                }
123
            });
124
        }
125
        if(!isAdminPreference){
126
            if (!isAllowOverrideShowIOMenu){
127
                showIOMenuButton.setEnabled(false);
128

    
129
            }
130
            if (!isAllowOverrideShowCheckListPerspective){
131
                showChecklistPerspectiveButton.setEnabled(false);
132

    
133
            }
134
            if (!isAllowOverrideShowTaxonNodeWizard){
135
                showTaxonNodeWizardButton.setEnabled(false);
136

    
137
            }
138
        }
139

    
140
        setSelections();
141
        return composite;
142
    }
143

    
144

    
145

    
146
    @Override
147
    public boolean performOk() {
148
        if (!isApply()){
149
            return true;
150
        }
151
        if (isAllowOverrideShowCheckListPerspective){
152
            if (isShowCheckListPerspective != null){
153
                PreferencesUtil.setBooleanValue(PreferencePredicate.ShowChecklistPerspective.getKey(), isShowCheckListPerspective);
154
            }
155
            PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowChecklistPerspective.getKey()), false);
156

    
157

    
158
        }
159
        if (isAllowOverrideShowIOMenu){
160
            if (isShowIOMenu != null){
161
                PreferencesUtil.setBooleanValue(PreferencePredicate.ShowImportExportMenu.getKey(), isShowIOMenu);
162
            }
163
            PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowImportExportMenu.getKey()), isOverrideShowIOMenu);
164
        }
165

    
166
        if (isAllowOverrideShowTaxonNodeWizard){
167
            if (isShowTaxonNodeWizard != null){
168
                PreferencesUtil.setBooleanValue(PreferencePredicate.ShowTaxonNodeWizard.getKey(), isShowTaxonNodeWizard);
169
            }
170
            PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowTaxonNodeWizard.getKey()), isOverrideShowTaxonNodeWizard);
171

    
172
        }
173

    
174
       return true;
175
   }
176
    @Override
177
    protected void getValues(){
178
        isAdminPreference = false;
179

    
180
        CdmPreferenceCache cache = CdmPreferenceCache.instance();
181
        isShowIOMenu = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowImportExportMenu.getKey(), true);
182

    
183
        isOverrideShowIOMenu = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowImportExportMenu.getKey()), true) != null?
184
                PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowImportExportMenu.getKey()), true): false;
185
        PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowImportExportMenu);
186
        CdmPreference pref = cache.findBestMatching(key);
187
        if (pref != null){
188
            isAllowOverrideShowIOMenu = pref.isAllowOverride();
189
        }else{
190
            isAllowOverrideShowIOMenu = true;
191
        }
192

    
193
        isShowCheckListPerspective = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowChecklistPerspective.getKey(), true);
194

    
195
        isOverrideShowCheckListPerspective = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowChecklistPerspective.getKey()), true) != null? PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowChecklistPerspective.getKey()), true): false;
196
        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowChecklistPerspective);
197
        pref = cache.findBestMatching(key);
198
        if (pref != null){
199
            isAllowOverrideShowCheckListPerspective = pref.isAllowOverride();
200
        }else{
201
            isAllowOverrideShowCheckListPerspective = true;
202
        }
203

    
204
        isShowTaxonNodeWizard = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowTaxonNodeWizard.getKey(), true);
205
        isOverrideShowTaxonNodeWizard = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowTaxonNodeWizard.getKey()), true) != null? PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowTaxonNodeWizard.getKey()), true): false;
206
        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowTaxonNodeWizard);
207
        pref = cache.findBestMatching(key);
208
        if (pref != null){
209
            isAllowOverrideShowTaxonNodeWizard = pref.isAllowOverride();
210
        }else{
211
            isAllowOverrideShowTaxonNodeWizard = true;
212
        }
213
    }
214

    
215

    
216

    
217
    /**
218
     * {@inheritDoc}
219
     */
220
    @Override
221
    public void widgetSelected(SelectionEvent e) {
222

    
223
        if (e.getSource().equals(this.showIOMenuButton)) {
224
            String text = showIOMenuButton.getText();
225
            if (text.startsWith(Messages.Preference_Use_Default)){
226
                isOverrideShowIOMenu = false;
227
                isShowIOMenu = null;
228
            }else if (text.equals(SHOW)){
229
                isShowIOMenu = true;
230
                isOverrideShowIOMenu = true;
231
            }else{
232
                isShowIOMenu = false;
233
                isOverrideShowIOMenu = true;
234
            }
235
        }
236
        if (e.getSource().equals(this.showChecklistPerspectiveButton)) {
237
            String text = showChecklistPerspectiveButton.getText();
238
            if (text.startsWith(Messages.Preference_Use_Default)){
239
                isOverrideShowCheckListPerspective = false;
240
                isShowCheckListPerspective = null;
241
            }else if (text.equals(SHOW)){
242
                isShowCheckListPerspective = true;
243
                isOverrideShowCheckListPerspective = true;
244
            }else{
245
                isShowCheckListPerspective = false;
246
                isOverrideShowCheckListPerspective = true;
247
            }
248
        }
249
        if (e.getSource().equals(this.showTaxonNodeWizardButton)) {
250
            String text = showTaxonNodeWizardButton.getText();
251
            if (text.startsWith(Messages.Preference_Use_Default)){
252
                isOverrideShowTaxonNodeWizard = false;
253
                isShowTaxonNodeWizard = null;
254
            }else if (text.equals(SHOW)){
255
                isShowTaxonNodeWizard = true;
256
                isOverrideShowTaxonNodeWizard = true;
257
            }else{
258
                isShowTaxonNodeWizard = false;
259
                isOverrideShowTaxonNodeWizard = true;
260
            }
261
        }
262
        this.setApply(true);
263

    
264

    
265
    }
266

    
267

    
268

    
269
    /**
270
     * {@inheritDoc}
271
     */
272
    @Override
273
    public void widgetDefaultSelected(SelectionEvent e) {
274
        // TODO Auto-generated method stub
275

    
276
    }
277

    
278
    @Override
279
    protected void performDefaults() {
280
        isOverrideShowTaxonNodeWizard = false;
281
        isShowTaxonNodeWizard = null;
282

    
283
        isOverrideShowCheckListPerspective = false;
284
        isShowCheckListPerspective = null;
285

    
286
        isOverrideShowIOMenu = false;
287
        isShowIOMenu = null;
288
        setSelections();
289
        setApply(true);
290
    }
291

    
292
    protected void setSelections(){
293
        if (isShowIOMenu == null || (!isOverrideShowIOMenu && !isAdminPreference)){
294
            showIOMenuButton.select(0);
295
        }else if (isShowIOMenu){
296
            showIOMenuButton.select(1);
297
        }else{
298
            showIOMenuButton.select(2);
299
        }
300

    
301
        if (isShowCheckListPerspective == null || (!isOverrideShowIOMenu && !isAdminPreference)){
302
            showChecklistPerspectiveButton.select(0);
303
        }else if (isShowCheckListPerspective){
304
            showChecklistPerspectiveButton.select(1);
305
        }else{
306
            showChecklistPerspectiveButton.select(2);
307
        }
308

    
309
        if (isShowTaxonNodeWizard == null || (!isOverrideShowIOMenu && !isAdminPreference)){
310
            showTaxonNodeWizardButton.select(0);
311
        }else if (isShowTaxonNodeWizard){
312
            showTaxonNodeWizardButton.select(1);
313
        }else{
314
            showTaxonNodeWizardButton.select(2);
315
        }
316

    
317
        if (isAdminPreference){
318
            allowOverrideShowIOMenuButton.setSelection(isAllowOverrideShowIOMenu);
319
            allowOverrideShowChecklistButton.setSelection(isAllowOverrideShowCheckListPerspective);
320
            allowOverrideShowTaxonNodeWizardButton.setSelection(isAllowOverrideShowTaxonNodeWizard);
321
        }
322
    }
323

    
324
}
(16-16/52)