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

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

    
58

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

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

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

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

    
137

    
138
        return composite;
139

    
140
    }
141

    
142

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

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

    
157
            }else{
158
                PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowModifierFreeText.getKey()), false);
159
            }
160

    
161
        }
162
        return true;
163
    }
164

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

    
179
        isOverride = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowModifier.getKey()));
180
        if (!isOverride){
181
           isShowModifier = null;
182
        }
183

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

    
196
        isOverrideFreeText = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowModifierFreeText.getKey()));
197
        if (!isOverrideFreeText){
198
           isShowModifierFreeText = null;
199
        }
200

    
201

    
202
    }
203

    
204
    @Override
205
    protected void performDefaults() {
206
       isShowModifier = null;
207
       allowOverride = true;
208

    
209
       comboShowModifier.select(0);
210
       if (isAdminPreference){
211
            allowOverrideButton.setSelection(allowOverride);
212
        }
213

    
214
       isShowModifierFreeText = null;
215
       allowOverrideFreeText = true;
216

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

    
232
            }else if (text.equals(SHOW)){
233
                isShowModifier = true;
234
                isOverride = true;
235
            }else{
236
                isShowModifier = false;
237
                isOverride = true;
238
            }
239

    
240
        }
241

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

    
248
            }else if (text.equals(SHOW)){
249
                isShowModifierFreeText = true;
250
                isOverrideFreeText = true;
251
            }else{
252
                isShowModifierFreeText = false;
253
                isOverrideFreeText = true;
254
            }
255

    
256
        }
257
        setApply(true);
258

    
259
    }
260

    
261
    @Override
262
    public void widgetDefaultSelected(SelectionEvent e) {
263

    
264

    
265

    
266
    }
267

    
268

    
269
}
(20-20/62)