Project

General

Profile

Download (13.8 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()), isOverrideShowCheckListPerspective);
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
        isOverrideShowIOMenu = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowImportExportMenu.getKey()), true) != null?
182
                PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowImportExportMenu.getKey()), true): false;
183
        if (isOverrideShowIOMenu){
184
            isShowIOMenu = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowImportExportMenu.getKey(), true);
185
        }
186

    
187

    
188
        PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowImportExportMenu);
189
        CdmPreference pref = cache.findBestMatching(key);
190
        if (pref != null){
191
            isAllowOverrideShowIOMenu = pref.isAllowOverride();
192
        }else{
193
            isAllowOverrideShowIOMenu = true;
194
        }
195

    
196
        isOverrideShowCheckListPerspective = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowChecklistPerspective.getKey()), true) != null? PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowChecklistPerspective.getKey()), true): false;
197
        if (isOverrideShowCheckListPerspective){
198
            isShowCheckListPerspective = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowChecklistPerspective.getKey(), true);
199
        }
200

    
201

    
202
        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowChecklistPerspective);
203
        pref = cache.findBestMatching(key);
204
        if (pref != null){
205
            isAllowOverrideShowCheckListPerspective = pref.isAllowOverride();
206
        }else{
207
            isAllowOverrideShowCheckListPerspective = true;
208
        }
209

    
210
        isOverrideShowTaxonNodeWizard = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowTaxonNodeWizard.getKey()), true) != null? PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowTaxonNodeWizard.getKey()), true): false;
211
        if (isOverrideShowTaxonNodeWizard){
212
            isShowTaxonNodeWizard = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowTaxonNodeWizard.getKey(), true);
213
        }
214

    
215
        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowTaxonNodeWizard);
216
        pref = cache.findBestMatching(key);
217
        if (pref != null){
218
            isAllowOverrideShowTaxonNodeWizard = pref.isAllowOverride();
219
        }else{
220
            isAllowOverrideShowTaxonNodeWizard = true;
221
        }
222
    }
223

    
224

    
225

    
226
    /**
227
     * {@inheritDoc}
228
     */
229
    @Override
230
    public void widgetSelected(SelectionEvent e) {
231

    
232
        if (e.getSource().equals(this.showIOMenuButton)) {
233
            String text = showIOMenuButton.getText();
234
            if (text.startsWith(Messages.Preference_Use_Default)){
235
                isOverrideShowIOMenu = false;
236
                isShowIOMenu = null;
237
                isAllowOverrideShowIOMenu = true;
238
            }else if (text.equals(SHOW)){
239
                isShowIOMenu = true;
240
                isOverrideShowIOMenu = true;
241

    
242
            }else{
243
                isShowIOMenu = false;
244
                isOverrideShowIOMenu = true;
245
            }
246
        }
247
        if (e.getSource().equals(this.showChecklistPerspectiveButton)) {
248
            String text = showChecklistPerspectiveButton.getText();
249
            if (text.startsWith(Messages.Preference_Use_Default)){
250
                isOverrideShowCheckListPerspective = false;
251
                isShowCheckListPerspective = null;
252
                isAllowOverrideShowCheckListPerspective = true;
253
            }else if (text.equals(SHOW)){
254
                isShowCheckListPerspective = true;
255
                isOverrideShowCheckListPerspective = true;
256
            }else{
257
                isShowCheckListPerspective = false;
258
                isOverrideShowCheckListPerspective = true;
259
            }
260
        }
261
        if (e.getSource().equals(this.showTaxonNodeWizardButton)) {
262
            String text = showTaxonNodeWizardButton.getText();
263
            if (text.startsWith(Messages.Preference_Use_Default)){
264
                isOverrideShowTaxonNodeWizard = false;
265
                isShowTaxonNodeWizard = null;
266
                isAllowOverrideShowTaxonNodeWizard = true;
267
            }else if (text.equals(SHOW)){
268
                isShowTaxonNodeWizard = true;
269
                isOverrideShowTaxonNodeWizard = true;
270
            }else{
271
                isShowTaxonNodeWizard = false;
272
                isOverrideShowTaxonNodeWizard = true;
273
            }
274
        }
275
        this.setSelections();
276
        this.setApply(true);
277

    
278

    
279
    }
280

    
281

    
282

    
283
    /**
284
     * {@inheritDoc}
285
     */
286
    @Override
287
    public void widgetDefaultSelected(SelectionEvent e) {
288
        // TODO Auto-generated method stub
289

    
290
    }
291

    
292
    @Override
293
    protected void performDefaults() {
294
        isOverrideShowTaxonNodeWizard = false;
295
        isShowTaxonNodeWizard = null;
296

    
297
        isOverrideShowCheckListPerspective = false;
298
        isShowCheckListPerspective = null;
299

    
300
        isOverrideShowIOMenu = false;
301
        isShowIOMenu = null;
302
        setSelections();
303
        setApply(true);
304
    }
305

    
306
    protected void setSelections(){
307
        if (isShowIOMenu == null || (!isOverrideShowIOMenu && !isAdminPreference)){
308
            showIOMenuButton.select(0);
309
            if (isAdminPreference){
310
                allowOverrideShowIOMenuButton.setEnabled(false);
311
            }
312
        }else{
313
            if (isAdminPreference){
314
                allowOverrideShowIOMenuButton.setEnabled(true);
315
            }
316
            if (isShowIOMenu){
317
                showIOMenuButton.select(1);
318
            }else{
319
                showIOMenuButton.select(2);
320
            }
321
        }
322

    
323
        if (isShowCheckListPerspective == null || (!isOverrideShowCheckListPerspective && !isAdminPreference)){
324
            showChecklistPerspectiveButton.select(0);
325
            if (isAdminPreference){
326
                allowOverrideShowChecklistButton.setEnabled(false);
327
            }
328
        }else{
329
            if (isAdminPreference){
330
                allowOverrideShowChecklistButton.setEnabled(true);
331
            }
332
            if (isShowCheckListPerspective){
333
                showChecklistPerspectiveButton.select(1);
334
            }else{
335
                showChecklistPerspectiveButton.select(2);
336
            }
337
        }
338

    
339
        if (isShowTaxonNodeWizard == null || (!isOverrideShowTaxonNodeWizard && !isAdminPreference)){
340
            showTaxonNodeWizardButton.select(0);
341
            if (isAdminPreference){
342
                allowOverrideShowTaxonNodeWizardButton.setEnabled(false);
343
            }
344
        }else{
345
            if (isAdminPreference){
346
                allowOverrideShowTaxonNodeWizardButton.setEnabled(true);
347
            }
348
            if (isShowTaxonNodeWizard){
349
                showTaxonNodeWizardButton.select(1);
350
            }else{
351
                showTaxonNodeWizardButton.select(2);
352
            }
353
        }
354

    
355
        if (isAdminPreference){
356
            allowOverrideShowIOMenuButton.setSelection(isAllowOverrideShowIOMenu);
357
            allowOverrideShowChecklistButton.setSelection(isAllowOverrideShowCheckListPerspective);
358
            allowOverrideShowTaxonNodeWizardButton.setSelection(isAllowOverrideShowTaxonNodeWizard);
359
        }
360
    }
361

    
362
}
(16-16/52)