Project

General

Profile

Download (11.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
        if (isShowIOMenu == null || (!isOverrideShowIOMenu && !isAdminPreference)){
78
            showIOMenuButton.select(0);
79
        }else if (isShowIOMenu){
80
            showIOMenuButton.select(1);
81
        }else{
82
            showIOMenuButton.select(2);
83
        }
84
        if (isAdminPreference){
85
        allowOverrideShowIOMenuButton = createAllowOverrideButton(composite);
86

    
87
            allowOverrideShowIOMenuButton.setSelection(isAllowOverrideShowIOMenu);
88
            allowOverrideShowIOMenuButton.addSelectionListener(new SelectionAdapter(){
89
                @Override
90
                public void widgetSelected(SelectionEvent e) {
91
                    isAllowOverrideShowIOMenu = allowOverrideShowIOMenuButton.getSelection();
92
                    setApply(true);
93
                }
94
            });
95
        }
96

    
97

    
98
        showChecklistPerspectiveButton = createBooleanCombo(composite, SHOW, DO_NOT_SHOW, PreferencePredicate.ShowChecklistPerspective, "Set Checklist Perspective as Default Perspective",
99
                isAdminPreference);
100

    
101
        showChecklistPerspectiveButton.addSelectionListener(this);
102
        if (isShowCheckListPerspective == null || (!isOverrideShowIOMenu && !isAdminPreference)){
103
            showChecklistPerspectiveButton.select(0);
104
        }else if (isShowCheckListPerspective){
105
            showChecklistPerspectiveButton.select(1);
106
        }else{
107
            showChecklistPerspectiveButton.select(2);
108
        }
109

    
110
        if (isAdminPreference){
111
            allowOverrideShowChecklistButton = createAllowOverrideButton(composite);
112
            allowOverrideShowChecklistButton.setSelection(isAllowOverrideShowCheckListPerspective);
113
            allowOverrideShowChecklistButton.addSelectionListener(new SelectionAdapter(){
114
                @Override
115
                public void widgetSelected(SelectionEvent e) {
116
                    isAllowOverrideShowCheckListPerspective = allowOverrideShowChecklistButton.getSelection();
117
                    setApply(true);
118
                }
119
            });
120
        }
121

    
122
        showTaxonNodeWizardButton = createBooleanCombo(composite, SHOW, DO_NOT_SHOW, PreferencePredicate.ShowTaxonNodeWizard, "Show Taxonnode Wizard",
123
                isAdminPreference);
124

    
125

    
126
        showTaxonNodeWizardButton.setText(Messages.DatabasePreferncesPage_Show_TaxonNodeWizard);
127

    
128
        if (isShowTaxonNodeWizard == null || (!isOverrideShowIOMenu && !isAdminPreference)){
129
            showTaxonNodeWizardButton.select(0);
130
        }else if (isShowTaxonNodeWizard){
131
            showTaxonNodeWizardButton.select(1);
132
        }else{
133
            showTaxonNodeWizardButton.select(2);
134
        }
135
        showTaxonNodeWizardButton.addSelectionListener(this);
136

    
137

    
138
        if (isAdminPreference){
139
            allowOverrideShowTaxonNodeWizardButton = createAllowOverrideButton(composite);
140
            allowOverrideShowTaxonNodeWizardButton.setSelection(isAllowOverrideShowTaxonNodeWizard);
141
            allowOverrideShowTaxonNodeWizardButton.addSelectionListener(new SelectionAdapter(){
142
                @Override
143
                public void widgetSelected(SelectionEvent e) {
144
                    isAllowOverrideShowTaxonNodeWizard = allowOverrideShowTaxonNodeWizardButton.getSelection();
145
                    setApply(true);
146
                }
147
            });
148
        }
149
        if(!isAdminPreference){
150
            if (!isAllowOverrideShowIOMenu){
151
                showIOMenuButton.setEnabled(false);
152

    
153
            }
154
            if (!isAllowOverrideShowCheckListPerspective){
155
                showChecklistPerspectiveButton.setEnabled(false);
156

    
157
            }
158
            if (!isAllowOverrideShowTaxonNodeWizard){
159
                showTaxonNodeWizardButton.setEnabled(false);
160

    
161
            }
162
        }
163

    
164

    
165
        return composite;
166
    }
167

    
168

    
169

    
170
    @Override
171
    public boolean performOk() {
172
        if (isAllowOverrideShowCheckListPerspective){
173
            PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowChecklistPerspective.getKey()), isOverrideShowCheckListPerspective);
174
            PreferencesUtil.setBooleanValue(PreferencePredicate.ShowChecklistPerspective.getKey(), isShowCheckListPerspective);
175
        }
176
        if (isAllowOverrideShowIOMenu){
177
            PreferencesUtil.setBooleanValue(PreferencePredicate.ShowImportExportMenu.getKey(), isShowIOMenu);
178
            PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowImportExportMenu.getKey()), isOverrideShowIOMenu);
179
        }
180

    
181
        if (isAllowOverrideShowTaxonNodeWizard){
182
            PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowTaxonNodeWizard.getKey()), isOverrideShowTaxonNodeWizard);
183
            PreferencesUtil.setBooleanValue(PreferencePredicate.ShowTaxonNodeWizard.getKey(), isShowTaxonNodeWizard);
184
        }
185

    
186
       return true;
187
   }
188
    @Override
189
    protected void getValues(){
190
        isAdminPreference = false;
191

    
192
        CdmPreferenceCache cache = CdmPreferenceCache.instance();
193
        isShowIOMenu = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowImportExportMenu.getKey(), true);
194

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

    
205
        isShowCheckListPerspective = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowChecklistPerspective.getKey(), true);
206

    
207
        isOverrideShowCheckListPerspective = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowChecklistPerspective.getKey()), true) != null? PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowChecklistPerspective.getKey()), true): false;
208
        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowChecklistPerspective);
209
        pref = cache.findBestMatching(key);
210
        if (pref != null){
211
            isAllowOverrideShowCheckListPerspective = pref.isAllowOverride();
212
        }else{
213
            isAllowOverrideShowCheckListPerspective = true;
214
        }
215

    
216
        isShowTaxonNodeWizard = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowTaxonNodeWizard.getKey(), true);
217
        isOverrideShowTaxonNodeWizard = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowTaxonNodeWizard.getKey()), true) != null? PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowTaxonNodeWizard.getKey()), true): false;
218
        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowTaxonNodeWizard);
219
        pref = cache.findBestMatching(key);
220
        if (pref != null){
221
            isAllowOverrideShowTaxonNodeWizard = pref.isAllowOverride();
222
        }else{
223
            isAllowOverrideShowTaxonNodeWizard = true;
224
        }
225
    }
226

    
227

    
228

    
229
    /**
230
     * {@inheritDoc}
231
     */
232
    @Override
233
    public void widgetSelected(SelectionEvent e) {
234
        if (e.getSource().equals(this.showIOMenuButton)) {
235
            String text = showIOMenuButton.getText();
236
            if (text.startsWith(Messages.Preference_Use_Default)){
237
                isOverrideShowIOMenu = true;
238
                isShowIOMenu = null;
239
            }
240
            if (text.equals(SHOW)){
241
                isShowIOMenu = true;
242
            }else{
243
                isShowIOMenu = false;
244
            }
245
        }
246
        if (e.getSource().equals(this.showChecklistPerspectiveButton)) {
247
            String text = showChecklistPerspectiveButton.getText();
248
            if (text.startsWith(Messages.Preference_Use_Default)){
249
                isOverrideShowCheckListPerspective = true;
250
                isShowCheckListPerspective = null;
251
            }
252
            if (text.equals(SHOW)){
253
                isShowCheckListPerspective = true;
254
            }else{
255
                isShowCheckListPerspective = false;
256
            }
257
        }
258
        if (e.getSource().equals(this.showTaxonNodeWizardButton)) {
259
            String text = showTaxonNodeWizardButton.getText();
260
            if (text.startsWith(Messages.Preference_Use_Default)){
261
                isOverrideShowTaxonNodeWizard = true;
262
                isShowTaxonNodeWizard = null;
263
            }
264
            if (text.equals(SHOW)){
265
                isShowTaxonNodeWizard = true;
266
            }else{
267
                isShowTaxonNodeWizard = false;
268
            }
269
        }
270
        this.setApply(true);
271

    
272

    
273
    }
274

    
275

    
276

    
277
    /**
278
     * {@inheritDoc}
279
     */
280
    @Override
281
    public void widgetDefaultSelected(SelectionEvent e) {
282
        // TODO Auto-generated method stub
283

    
284
    }
285

    
286
}
(14-14/48)