Project

General

Profile

Download (9.33 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2019 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.widgets.Button;
16
import org.eclipse.swt.widgets.Combo;
17
import org.eclipse.swt.widgets.Composite;
18
import org.eclipse.swt.widgets.Control;
19
import org.eclipse.swt.widgets.Label;
20

    
21
import eu.etaxonomy.cdm.model.metadata.CdmPreference;
22
import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
23
import eu.etaxonomy.taxeditor.l10n.Messages;
24
import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
25

    
26
/**
27
 * @author k.luther
28
 * @since 28 Jan 2019
29
 *
30
 */
31
public class FactualDataPreference extends CdmPreferencePage implements SelectionListener{
32

    
33

    
34
    protected Boolean isShowModifier;
35

    
36
    protected Combo comboShowModifier;
37
    protected CdmPreference pref = null;
38
    Button allowOverrideButton;
39

    
40
    protected boolean allowOverride;
41
    private boolean isOverride = true;
42

    
43
    protected Boolean isShowModifierFreeText;
44

    
45
    protected Combo comboShowModifierFreeText;
46
    protected CdmPreference prefFreeText = null;
47
    Button allowOverrideFreeTextButton;
48

    
49
    protected boolean allowOverrideFreeText;
50
    private boolean isOverrideFreeText = true;
51

    
52

    
53
   @Override
54
   public void init() {
55
       super.init();
56

    
57

    
58
   }
59
    /**
60
     * {@inheritDoc}
61
     */
62
    @Override
63
    protected Control createContents(Composite parent) {
64
        getValues();
65

    
66
        Composite composite = createComposite(parent);
67
        Label description = new Label(composite, SWT.NULL);
68
        description.setText(Messages.FactualData_description);
69

    
70
        comboShowModifier = createBooleanCombo(composite, SHOW, DO_NOT_SHOW, PreferencePredicate.ShowModifier, Messages.FactualData_showModifier, isAdminPreference);
71
        comboShowModifier.addSelectionListener(this);
72
        if (this.isAdminPreference){
73
            allowOverrideButton = createAllowOverrideButton(composite);
74
            allowOverrideButton.setSelection(allowOverride);
75
            allowOverrideButton.addSelectionListener(new SelectionAdapter(){
76
                @Override
77
                public void widgetSelected(SelectionEvent e) {
78
                    allowOverride = !allowOverride;
79
                    setApply(true);
80
                    }
81
            });
82
        }
83
        int index = 0;
84
        if(isShowModifier==null){
85
            comboShowModifier.select(0);
86
        } else{
87
            for (String itemLabel : comboShowModifier.getItems()){
88
                if (itemLabel.startsWith(this.SHOW) && isShowModifier){
89
                    comboShowModifier.select(index);
90
                    break;
91
                }
92
                if (itemLabel.startsWith(DO_NOT_SHOW) && !isShowModifier){
93
                    comboShowModifier.select(index);
94
                    break;
95
                }
96
                index++;
97
            }
98
        }
99
        if (!isAdminPreference){
100
            comboShowModifier.setEnabled(allowOverride);
101
        }
102

    
103
        comboShowModifierFreeText = createBooleanCombo(composite, SHOW, DO_NOT_SHOW, PreferencePredicate.ShowModifierFreeText, Messages.FactualData_showModifier_FreeText, isAdminPreference);
104
        comboShowModifierFreeText.addSelectionListener(this);
105
        if (this.isAdminPreference){
106
            allowOverrideFreeTextButton = createAllowOverrideButton(composite);
107
            allowOverrideFreeTextButton.setSelection(allowOverrideFreeText);
108
            allowOverrideFreeTextButton.addSelectionListener(new SelectionAdapter(){
109
                @Override
110
                public void widgetSelected(SelectionEvent e) {
111
                    allowOverrideFreeText = !allowOverrideFreeText;
112
                    setApply(true);
113
                    }
114
            });
115
        }
116
        index = 0;
117
        if(isShowModifierFreeText==null){
118
            comboShowModifierFreeText.select(0);
119
        } else{
120
            for (String itemLabel : comboShowModifierFreeText.getItems()){
121
                if (itemLabel.startsWith(this.SHOW) && isShowModifierFreeText){
122
                    comboShowModifierFreeText.select(index);
123
                    break;
124
                }
125
                if (itemLabel.startsWith(DO_NOT_SHOW) && !isShowModifierFreeText){
126
                    comboShowModifierFreeText.select(index);
127
                    break;
128
                }
129
                index++;
130
            }
131
        }
132
        if (!isAdminPreference){
133
            comboShowModifierFreeText.setEnabled(allowOverrideFreeText);
134
        }
135
        return composite;
136

    
137
    }
138

    
139

    
140
    @Override
141
    public boolean performOk() {
142
        if (isApply()){
143
            if (isShowModifier != null){
144
                PreferencesUtil.setStringValue(PreferencePredicate.ShowModifier.getKey(), Boolean.toString(isShowModifier));
145
                PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowModifier.getKey()), true);
146

    
147
            }else{
148
                PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowModifier.getKey()), false);
149
            }
150
            if (isShowModifierFreeText != null){
151
                PreferencesUtil.setStringValue(PreferencePredicate.ShowModifierFreeText.getKey(), Boolean.toString(isShowModifierFreeText));
152
                PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowModifierFreeText.getKey()), true);
153

    
154
            }else{
155
                PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowModifierFreeText.getKey()), false);
156
            }
157

    
158
        }
159
        return true;
160
    }
161

    
162
    @Override
163
    public void getValues(){
164
        // get modifier values
165
        pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowModifier);
166
        if (pref == null){
167
            pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowModifier, PreferencePredicate.ShowModifier.getDefaultValue().toString());
168
        }
169
        allowOverride = pref.isAllowOverride();
170
        isShowModifier = null;
171
        String showModifierString = PreferencesUtil.getStringValue(PreferencePredicate.ShowModifier.getKey(), true);
172
        if (showModifierString != null){
173
            isShowModifier = Boolean.valueOf(showModifierString);
174
        }
175

    
176
        isOverride = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowModifier.getKey()));
177
        if (!isOverride){
178
           isShowModifier = null;
179
        }
180

    
181
        //get modifier freetext values
182
        prefFreeText = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowModifierFreeText);
183
        if (prefFreeText == null){
184
            prefFreeText = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowModifierFreeText, PreferencePredicate.ShowModifierFreeText.getDefaultValue().toString());
185
        }
186
        allowOverrideFreeText = prefFreeText.isAllowOverride();
187
        isShowModifierFreeText = null;
188
        String showModifierStringFreeText = PreferencesUtil.getStringValue(PreferencePredicate.ShowModifierFreeText.getKey(), true);
189
        if (showModifierStringFreeText != null){
190
            isShowModifierFreeText = Boolean.valueOf(showModifierStringFreeText);
191
        }
192

    
193
        isOverrideFreeText = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowModifierFreeText.getKey()));
194
        if (!isOverrideFreeText){
195
           isShowModifierFreeText = null;
196
        }
197

    
198
    }
199

    
200
    @Override
201
    protected void performDefaults() {
202
       isShowModifier = null;
203
       allowOverride = true;
204

    
205
       comboShowModifier.select(0);
206
       if (isAdminPreference){
207
            allowOverrideButton.setSelection(allowOverride);
208
        }
209

    
210
       isShowModifierFreeText = null;
211
       allowOverrideFreeText = true;
212

    
213
       comboShowModifierFreeText.select(0);
214
       if (isAdminPreference){
215
            allowOverrideFreeTextButton.setSelection(allowOverrideFreeText);
216
        }
217

    
218
        setApply(true);
219
        super.performDefaults();
220
    }
221
    @Override
222
    public void widgetSelected(SelectionEvent e) {
223
        if (e.getSource().equals(this.comboShowModifier)) {
224
            String text = comboShowModifier.getText();
225
            if (text.startsWith(Messages.Preference_Use_Default)){
226
                isOverride = false;
227
                isShowModifier = null;
228

    
229
            }else if (text.equals(SHOW)){
230
                isShowModifier = true;
231
                isOverride = true;
232
            }else{
233
                isShowModifier = false;
234
                isOverride = true;
235
            }
236

    
237
        }
238

    
239
        if (e.getSource().equals(this.comboShowModifierFreeText)) {
240
            String text = comboShowModifierFreeText.getText();
241
            if (text.startsWith(Messages.Preference_Use_Default)){
242
                isOverrideFreeText = false;
243
                isShowModifierFreeText = null;
244

    
245
            }else if (text.equals(SHOW)){
246
                isShowModifierFreeText = true;
247
                isOverrideFreeText = true;
248
            }else{
249
                isShowModifierFreeText = false;
250
                isOverrideFreeText = true;
251
            }
252

    
253
        }
254
        setApply(true);
255

    
256
    }
257

    
258
    @Override
259
    public void widgetDefaultSelected(SelectionEvent e) {
260

    
261

    
262

    
263
    }
264

    
265

    
266
}
(16-16/54)