Project

General

Profile

Download (8.42 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.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.PreferencePredicate;
24
import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
25
import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
26
import eu.etaxonomy.taxeditor.l10n.Messages;
27
import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
28
import eu.etaxonomy.taxeditor.store.CdmStore;
29

    
30
/**
31
 * @author k.luther
32
 * @since 18.01.2019
33
 *
34
 */
35
public class TaxonPreferencesMisappliedNames extends CdmPreferencePage implements SelectionListener {
36

    
37
	private static final String LOCAL_SETTINGS_NOT_ALLOWED = Messages.TaxonPreference_local_not_allowed;
38
    
39

    
40
    protected Boolean isShowPartialMisapplied;
41
    protected boolean allowOverrideShowPartialMisapplied;
42
    protected boolean overrideShowPartialMisapplied;
43
    
44

    
45
    Composite composite;
46

    
47
    protected Combo showPartialMisappliedButton;
48
    protected Button allowOverrideIsShowPartialMisappliedButton;
49
    
50

    
51
    protected CdmPreference showPartialMisapplicationPref;
52
    
53

    
54
    @Override
55
    public void init() {
56
        super.init();
57
//        setPreferenceStore(PreferencesUtil.getPreferenceStore());
58
        if(!CdmStore.isActive()){
59
            return;
60
        }
61

    
62

    
63
    }
64

    
65
    /**
66
     * {@inheritDoc}
67
     */
68
    @Override
69
    protected Control createContents(Composite parent) {
70
        getValues();
71

    
72
        boolean isEditingAllowed = true;
73
        if(!isAdminPreference){
74
            CdmPreferenceCache cache = CdmPreferenceCache.instance();
75

    
76
            if (showPartialMisapplicationPref != null){
77
                if (!showPartialMisapplicationPref.isAllowOverride() ){
78
                    isEditingAllowed = false;
79
                }
80
            }
81
        }
82
        if (isEditingAllowed){
83
            
84
        }else{
85
            Label label = new Label(parent, SWT.NONE);
86
            label.setText(LOCAL_SETTINGS_NOT_ALLOWED);
87
            this.noDefaultAndApplyButton();
88
            return parent;
89
        }
90
        composite = createComposite(parent);
91
        GridData gridData = createTextGridData();
92

    
93
        Label separator= new Label(composite, SWT.HORIZONTAL | SWT.SEPARATOR);
94
        separator.setLayoutData(gridData);
95
        separator.setVisible(false);
96
        showPartialMisappliedButton = createBooleanCombo(composite, Messages.GeneralPreference_yes, Messages.GeneralPreference_no, PreferencePredicate.AllowPartialMisapplied, Messages.TaxonPreference_description, isAdminPreference);
97

    
98
        showPartialMisappliedButton.addSelectionListener(this);
99
        int index = 0;
100
        for (String itemLabel : showPartialMisappliedButton.getItems()) {
101
            if (isShowPartialMisapplied == null && itemLabel.startsWith(Messages.Preference_Use_Default)) {
102
                showPartialMisappliedButton.select(index);
103
                break;
104
            }
105
            if (isShowPartialMisapplied != null && itemLabel.equals(Messages.GeneralPreference_yes) && isShowPartialMisapplied){
106
                showPartialMisappliedButton.select(index);
107
                break;
108
            }
109
            if (isShowPartialMisapplied != null && itemLabel.equals(Messages.GeneralPreference_no) && !isShowPartialMisapplied){
110
                showPartialMisappliedButton.select(index);
111
                break;
112
            }
113
            index++;
114
        }
115
        showPartialMisappliedButton.setEnabled(isEditingAllowed);
116

    
117
        if (isAdminPreference){
118
            allowOverrideIsShowPartialMisappliedButton = createAllowOverrideButton(composite);
119
            allowOverrideIsShowPartialMisappliedButton.setSelection(showPartialMisapplicationPref!= null?showPartialMisapplicationPref.isAllowOverride():true);
120

    
121
            allowOverrideIsShowPartialMisappliedButton.addSelectionListener(new SelectionAdapter(){
122
                @Override
123
                public void widgetSelected(SelectionEvent e) {
124
                    setApply(true);
125
                    allowOverrideShowPartialMisapplied = allowOverrideIsShowPartialMisappliedButton.getSelection();
126
                }
127
            });
128
        }
129

    
130
        
131

    
132
        
133

    
134
        
135

    
136
        if (!isEditingAllowed){
137
            PreferencesUtil.recursiveSetEnabled(composite, false);
138
        }
139

    
140
        return composite;
141
    }
142

    
143

    
144
    /**
145
     * {@inheritDoc}
146
     */
147
    @Override
148
    protected void getValues() {
149
        CdmPreferenceCache cache = CdmPreferenceCache.instance();
150

    
151

    
152
        overrideShowPartialMisapplied = PreferencesUtil.getBooleanValue(
153
                PreferencesUtil.prefOverrideKey(PreferencePredicate.AllowPartialMisapplied.getKey()), true) != null? PreferencesUtil.getBooleanValue(
154
                        PreferencesUtil.prefOverrideKey(PreferencePredicate.AllowPartialMisapplied.getKey()), true): false;
155

    
156
        PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.AllowPartialMisapplied);
157
        showPartialMisapplicationPref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.AllowPartialMisapplied);
158
        allowOverrideShowPartialMisapplied = showPartialMisapplicationPref != null? showPartialMisapplicationPref.isAllowOverride():true;
159

    
160

    
161
        if (showPartialMisapplicationPref != null) {
162
            if (showPartialMisapplicationPref.isAllowOverride() ) {
163
                if (overrideShowPartialMisapplied){
164
                    isShowPartialMisapplied = PreferencesUtil.getBooleanValue(PreferencePredicate.AllowPartialMisapplied.getKey(), true);
165
                }
166
            } else {
167
                isShowPartialMisapplied = Boolean.valueOf(showPartialMisapplicationPref.getValue());
168
            }
169

    
170
        } else {
171
            if(!overrideShowPartialMisapplied){
172
                isShowPartialMisapplied = null;
173
            }else{
174
                isShowPartialMisapplied = PreferencesUtil.getBooleanValue(PreferencePredicate.AllowPartialMisapplied.getKey(), true);
175
            }
176
            showPartialMisapplicationPref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.AllowPartialMisapplied, PreferencePredicate.AllowPartialMisapplied.getDefaultValue() != null ?  PreferencePredicate.AllowPartialMisapplied.getDefaultValue().toString(): null);
177
        }
178

    
179
      
180

    
181
    }
182

    
183
    @Override
184
    public boolean performOk() {
185

    
186
        boolean override = false;
187
        if (isShowPartialMisapplied != null ) {
188
            override = true;
189
            PreferencesUtil.setStringValue(PreferencePredicate.AllowPartialMisapplied.getKey(), isShowPartialMisapplied.toString());
190
        }
191
        PreferencesUtil.setBooleanValue(
192
                PreferencesUtil.prefOverrideKey(PreferencePredicate.AllowPartialMisapplied.getKey()),
193
                override);
194
        
195

    
196
        return true;
197
    }
198

    
199

    
200

    
201
    @Override
202
    protected void performDefaults() {
203
        isShowPartialMisapplied = null;
204
        showPartialMisappliedButton.select(0);
205

    
206
        if (allowOverrideIsShowPartialMisappliedButton != null){
207
            allowOverrideShowPartialMisapplied = true;
208
            allowOverrideIsShowPartialMisappliedButton.setSelection(allowOverrideShowPartialMisapplied);
209
        }
210

    
211
        
212
        setApply(true);
213

    
214
        super.performDefaults();
215
    }
216

    
217
    /**
218
     * {@inheritDoc}
219
     */
220
    @Override
221
    public void widgetSelected(SelectionEvent e) {
222
       setApply(true);
223
       if (e.getSource().equals(this.showPartialMisappliedButton)) {
224
           String text = showPartialMisappliedButton.getText();
225
           if(text.startsWith(Messages.Preference_Use_Default)){
226
               isShowPartialMisapplied = null;
227
               return;
228
           }
229

    
230
           if (text.equals(Messages.GeneralPreference_yes)){
231
               isShowPartialMisapplied = true;
232
           }else{
233
               isShowPartialMisapplied = false;
234
           }
235
       }
236

    
237
      
238
    }
239

    
240
    /**
241
     * {@inheritDoc}
242
     */
243
    @Override
244
    public void widgetDefaultSelected(SelectionEvent e) {
245
        // TODO Auto-generated method stub
246

    
247
    }
248

    
249
}
(56-56/62)