Project

General

Profile

Download (9.71 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

    
41
    protected boolean isAllowOverrideShowIOMenu;
42
    protected boolean isAllowOverrideShowMediaView;
43
    protected boolean isAllowOverrideShowCheckListPerspective;
44

    
45
    protected boolean isOverrideShowIOMenu;
46
    protected boolean isOverrideShowMediaView;
47
    protected boolean isOverrideShowCheckListPerspective;
48

    
49

    
50
    protected Combo showIOMenuButton;
51
    protected Button allowOverrideShowIOMenuButton;
52
    protected Combo showChecklistPerspectiveButton;
53
    protected Button allowOverrideShowChecklistButton;
54

    
55
    final String SHOW = Messages.GeneralPreference_yes;
56
    final String DO_NOT_SHOW = Messages.GeneralPreference_no;
57
    /**
58
     * {@inheritDoc}
59
     */
60
    @Override
61
    protected Control createContents(Composite parent) {
62
        getValues();
63
        final Composite composite = createComposite(parent);
64

    
65
        GridData gridData = createTextGridData();
66

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

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

    
74
        showIOMenuButton.addSelectionListener(this);
75

    
76

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

    
80

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

    
90

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

    
94
        showChecklistPerspectiveButton.addSelectionListener(this);
95

    
96

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

    
108

    
109
        if(!isAdminPreference){
110
            if (!isAllowOverrideShowIOMenu){
111
                showIOMenuButton.setEnabled(false);
112

    
113
            }
114
            if (!isAllowOverrideShowCheckListPerspective){
115
                showChecklistPerspectiveButton.setEnabled(false);
116

    
117
            }
118

    
119
        }
120

    
121
        setSelections();
122
        return composite;
123
    }
124

    
125

    
126

    
127
    @Override
128
    public boolean performOk() {
129
        if (!isApply()){
130
            return true;
131
        }
132
        if (isAllowOverrideShowCheckListPerspective){
133
            if (isShowCheckListPerspective != null){
134
                PreferencesUtil.setBooleanValue(PreferencePredicate.ShowChecklistPerspective.getKey(), isShowCheckListPerspective);
135
            }
136
            PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowChecklistPerspective.getKey()), isOverrideShowCheckListPerspective);
137

    
138

    
139
        }
140
        if (isAllowOverrideShowIOMenu){
141
            if (isShowIOMenu != null){
142
                PreferencesUtil.setBooleanValue(PreferencePredicate.ShowImportExportMenu.getKey(), isShowIOMenu);
143
            }
144
            PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowImportExportMenu.getKey()), isOverrideShowIOMenu);
145
        }
146

    
147

    
148

    
149
       return true;
150
   }
151
    @Override
152
    protected void getValues(){
153
        isAdminPreference = false;
154

    
155
        CdmPreferenceCache cache = CdmPreferenceCache.instance();
156
        isOverrideShowIOMenu = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowImportExportMenu.getKey()), true) != null?
157
                PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowImportExportMenu.getKey()), true): false;
158
        if (isOverrideShowIOMenu){
159
            isShowIOMenu = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowImportExportMenu.getKey(), true);
160
        }
161

    
162

    
163
        PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowImportExportMenu);
164
        CdmPreference pref = cache.findBestMatching(key);
165
        if (pref != null){
166
            isAllowOverrideShowIOMenu = pref.isAllowOverride();
167
        }else{
168
            isAllowOverrideShowIOMenu = true;
169
        }
170

    
171
        isOverrideShowCheckListPerspective = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowChecklistPerspective.getKey()), true) != null? PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowChecklistPerspective.getKey()), true): false;
172
        if (isOverrideShowCheckListPerspective){
173
            isShowCheckListPerspective = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowChecklistPerspective.getKey(), true);
174
        }
175

    
176

    
177
        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowChecklistPerspective);
178
        pref = cache.findBestMatching(key);
179
        if (pref != null){
180
            isAllowOverrideShowCheckListPerspective = pref.isAllowOverride();
181
        }else{
182
            isAllowOverrideShowCheckListPerspective = true;
183
        }
184

    
185

    
186
    }
187

    
188

    
189

    
190
    /**
191
     * {@inheritDoc}
192
     */
193
    @Override
194
    public void widgetSelected(SelectionEvent e) {
195

    
196
        if (e.getSource().equals(this.showIOMenuButton)) {
197
            String text = showIOMenuButton.getText();
198
            if (text.startsWith(Messages.Preference_Use_Default)){
199
                isOverrideShowIOMenu = false;
200
                isShowIOMenu = null;
201

    
202
            }else if (text.equals(SHOW)){
203
                isShowIOMenu = true;
204
                isOverrideShowIOMenu = true;
205

    
206
            }else{
207
                isShowIOMenu = false;
208
                isOverrideShowIOMenu = true;
209
            }
210
        }
211
        if (e.getSource().equals(this.showChecklistPerspectiveButton)) {
212
            String text = showChecklistPerspectiveButton.getText();
213
            if (text.startsWith(Messages.Preference_Use_Default)){
214
                isOverrideShowCheckListPerspective = false;
215
                isShowCheckListPerspective = null;
216

    
217
            }else if (text.equals(SHOW)){
218
                isShowCheckListPerspective = true;
219
                isOverrideShowCheckListPerspective = true;
220
            }else{
221
                isShowCheckListPerspective = false;
222
                isOverrideShowCheckListPerspective = true;
223
            }
224
        }
225

    
226
        this.setSelections();
227
        this.setApply(true);
228

    
229

    
230
    }
231

    
232

    
233

    
234
    /**
235
     * {@inheritDoc}
236
     */
237
    @Override
238
    public void widgetDefaultSelected(SelectionEvent e) {
239
        // TODO Auto-generated method stub
240

    
241
    }
242

    
243
    @Override
244
    protected void performDefaults() {
245

    
246

    
247
        isOverrideShowCheckListPerspective = false;
248
        isShowCheckListPerspective = null;
249

    
250
        isOverrideShowIOMenu = false;
251
        isShowIOMenu = null;
252
        setSelections();
253
        setApply(true);
254
    }
255

    
256
    protected void setSelections(){
257
        if (isShowIOMenu == null || (!isOverrideShowIOMenu && !isAdminPreference)){
258
            showIOMenuButton.select(0);
259
//            if (isAdminPreference){
260
//                allowOverrideShowIOMenuButton.setEnabled(false);
261
//            }
262
        }else{
263
//            if (isAdminPreference){
264
//                allowOverrideShowIOMenuButton.setEnabled(true);
265
//            }
266
            if (isShowIOMenu){
267
                showIOMenuButton.select(1);
268
            }else{
269
                showIOMenuButton.select(2);
270
            }
271
        }
272

    
273
        if (isShowCheckListPerspective == null || (!isOverrideShowCheckListPerspective && !isAdminPreference)){
274
            showChecklistPerspectiveButton.select(0);
275
        }else{
276
            if (isShowCheckListPerspective){
277
                showChecklistPerspectiveButton.select(1);
278
            }else{
279
                showChecklistPerspectiveButton.select(2);
280
            }
281
        }
282

    
283

    
284

    
285
        if (isAdminPreference){
286
            allowOverrideShowIOMenuButton.setSelection(isAllowOverrideShowIOMenu);
287
            allowOverrideShowChecklistButton.setSelection(isAllowOverrideShowCheckListPerspective);
288

    
289
        }
290
    }
291

    
292
}
(18-18/55)