Project

General

Profile

Download (5.97 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
    protected Boolean isShowCheckListPerspective;
37

    
38
    protected boolean isAllowOverrideShowMediaView;
39
    protected boolean isAllowOverrideShowCheckListPerspective;
40

    
41
    protected boolean isOverrideShowMediaView;
42
    protected boolean isOverrideShowCheckListPerspective;
43

    
44
    protected Combo showChecklistPerspectiveButton;
45
    protected Button allowOverrideShowChecklistButton;
46

    
47
    @Override
48
    protected Control createContents(Composite parent) {
49
        getValues();
50
        final Composite composite = createComposite(parent);
51

    
52
        GridData gridData = createTextGridData();
53

    
54
        Label separator= new Label(composite, SWT.HORIZONTAL | SWT.SEPARATOR);
55
        separator.setLayoutData(gridData);
56
        separator.setVisible(false);
57

    
58

    
59

    
60
        showChecklistPerspectiveButton = createBooleanCombo(composite, SHOW, DO_NOT_SHOW, PreferencePredicate.ShowChecklistPerspective, "Set Checklist Perspective as Default Perspective",
61
                isAdminPreference);
62

    
63
        showChecklistPerspectiveButton.addSelectionListener(this);
64

    
65

    
66
        if (isAdminPreference){
67
            allowOverrideShowChecklistButton = createAllowOverrideButton(composite);
68
            allowOverrideShowChecklistButton.addSelectionListener(new SelectionAdapter(){
69
                @Override
70
                public void widgetSelected(SelectionEvent e) {
71
                    isAllowOverrideShowCheckListPerspective = allowOverrideShowChecklistButton.getSelection();
72
                    setApply(true);
73
                }
74
            });
75
        }
76

    
77
        setSelections();
78
        return composite;
79
    }
80

    
81

    
82

    
83
    @Override
84
    public boolean performOk() {
85
        if (!isApply()){
86
            return true;
87
        }
88
        if (isAllowOverrideShowCheckListPerspective){
89
            if (isShowCheckListPerspective != null){
90
                PreferencesUtil.setBooleanValue(PreferencePredicate.ShowChecklistPerspective.getKey(), isShowCheckListPerspective);
91
            }
92
            PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowChecklistPerspective.getKey()), isOverrideShowCheckListPerspective);
93

    
94

    
95
        }
96
        return true;
97
    }
98

    
99
    @Override
100
    protected void getValues(){
101
        isAdminPreference = false;
102

    
103
        CdmPreferenceCache cache = CdmPreferenceCache.instance();
104
        isOverrideShowCheckListPerspective = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowChecklistPerspective.getKey()), true) != null? PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowChecklistPerspective.getKey()), true): false;
105
        if (isOverrideShowCheckListPerspective){
106
            isShowCheckListPerspective = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowChecklistPerspective.getKey(), true);
107
        }
108

    
109
        PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowChecklistPerspective);
110
        CdmPreference pref = cache.findBestMatching(key);
111
        if (pref != null){
112
            isAllowOverrideShowCheckListPerspective = pref.isAllowOverride();
113
        }else{
114
            isAllowOverrideShowCheckListPerspective = true;
115
        }
116

    
117

    
118
    }
119

    
120
    @Override
121
    public void widgetSelected(SelectionEvent e) {
122
        if (e.getSource().equals(this.showChecklistPerspectiveButton)) {
123
            String text = showChecklistPerspectiveButton.getText();
124
            if (text.startsWith(Messages.Preference_Use_Default)){
125
                isOverrideShowCheckListPerspective = false;
126
                isShowCheckListPerspective = null;
127

    
128
            }else if (text.equals(SHOW)){
129
                isShowCheckListPerspective = true;
130
                isOverrideShowCheckListPerspective = true;
131
            }else{
132
                isShowCheckListPerspective = false;
133
                isOverrideShowCheckListPerspective = true;
134
            }
135
        }
136

    
137
        this.setSelections();
138
        this.setApply(true);
139

    
140

    
141
    }
142

    
143

    
144

    
145
    /**
146
     * {@inheritDoc}
147
     */
148
    @Override
149
    public void widgetDefaultSelected(SelectionEvent e) {
150
        // TODO Auto-generated method stub
151

    
152
    }
153

    
154
    @Override
155
    protected void performDefaults() {
156
        isOverrideShowCheckListPerspective = false;
157
        isShowCheckListPerspective = null;
158

    
159
        setSelections();
160
        setApply(true);
161
    }
162

    
163
    protected void setSelections(){
164
        if (isShowCheckListPerspective == null || (!isOverrideShowCheckListPerspective && !isAdminPreference)){
165
            showChecklistPerspectiveButton.select(0);
166
        }else{
167
            if (isShowCheckListPerspective){
168
                showChecklistPerspectiveButton.select(1);
169
            }else{
170
                showChecklistPerspectiveButton.select(2);
171
            }
172
        }
173

    
174
        if (isAdminPreference){
175
            allowOverrideShowChecklistButton.setSelection(isAllowOverrideShowCheckListPerspective);
176
        }
177
    }
178

    
179
}
(21-21/62)