Project

General

Profile

Download (8.73 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.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 18.01.2019
32
 *
33
 */
34
public class SupplementalDataSourcePreferences extends CdmPreferencePage implements SelectionListener{
35

    
36
    protected Boolean isShowIDNamespace;
37
    protected Boolean isShowIDSource;
38

    
39
    protected boolean isAllowOverrideShowIDNamespace;
40
    protected boolean isAllowOverrideShowIDSource;
41

    
42
    protected boolean isOverrideShowIDNamespace;
43
    protected boolean isOverrideShowIDSource;
44

    
45
    protected Combo showIDNamespaceButton;
46
    protected Button allowOverrideShowIDNamespaceButton;
47
    protected Combo showIDSourceButton;
48
    protected Button allowOverrideIDSourceButton;
49

    
50
    final String SHOW = Messages.GeneralPreference_yes;
51
    final String DO_NOT_SHOW = Messages.GeneralPreference_no;
52

    
53
    @Override
54
    protected Control createContents(Composite parent) {
55
        getValues();
56
        final Composite composite = createComposite(parent);
57

    
58
        GridData gridData = createTextGridData();
59

    
60
        Label separator= new Label(composite, SWT.HORIZONTAL | SWT.SEPARATOR);
61
        separator.setLayoutData(gridData);
62
        separator.setVisible(false);
63

    
64
        showIDSourceButton = createBooleanCombo(composite, SHOW, DO_NOT_SHOW, PreferencePredicate.ShowIdInSource, Messages.SupplementalDataSourcePreferences_SHOW_ID,
65
                isAdminPreference);
66
        showIDSourceButton.addSelectionListener(this);
67
        if (isShowIDSource == null || (!isOverrideShowIDSource && !isAdminPreference)){
68
            showIDSourceButton.select(0);
69
        }else if (isShowIDSource){
70
            showIDSourceButton.select(1);
71
        }else{
72
            showIDSourceButton.select(2);
73
        }
74

    
75
        if (isAdminPreference){
76
            allowOverrideIDSourceButton = createAllowOverrideButton(composite);
77
            allowOverrideIDSourceButton.setSelection(isAllowOverrideShowIDSource);
78
            allowOverrideIDSourceButton.addSelectionListener(new SelectionAdapter(){
79
                @Override
80
                public void widgetSelected(SelectionEvent e) {
81
                    isAllowOverrideShowIDSource = allowOverrideIDSourceButton.getSelection();
82
                    setApply(true);
83
                }
84
            });
85
        }
86

    
87
        showIDNamespaceButton = createBooleanCombo(composite, SHOW, DO_NOT_SHOW, PreferencePredicate.ShowNamespaceInSource, Messages.SupplementalDataSourcePreferences_SHOW_NAMESPACE,
88
                isAdminPreference);
89

    
90
        showIDNamespaceButton.addSelectionListener(this);
91

    
92
        if (isShowIDNamespace == null || (!isOverrideShowIDNamespace && !isAdminPreference)){
93
            showIDNamespaceButton.select(0);
94
        }else if (isShowIDNamespace){
95
            showIDNamespaceButton.select(1);
96
        }else{
97
            showIDNamespaceButton.select(2);
98
        }
99
        if (isAdminPreference){
100
            allowOverrideShowIDNamespaceButton = createAllowOverrideButton(composite);
101

    
102
            allowOverrideShowIDNamespaceButton.setSelection(isAllowOverrideShowIDNamespace);
103
            allowOverrideShowIDNamespaceButton.addSelectionListener(new SelectionAdapter(){
104
                @Override
105
                public void widgetSelected(SelectionEvent e) {
106
                    isAllowOverrideShowIDNamespace = allowOverrideShowIDNamespaceButton.getSelection();
107
                    setApply(true);
108
                }
109
            });
110
        }
111

    
112
        if (!isAllowOverrideShowIDNamespace && !isAdminPreference){
113
            showIDNamespaceButton.setEnabled(false);
114
        }
115
        if (!isAllowOverrideShowIDSource && !isAdminPreference){
116
            showIDSourceButton.setEnabled(false);
117
        }
118
        return composite;
119
    }
120

    
121
    @Override
122
    public boolean performOk() {
123
        if (isAllowOverrideShowIDSource){
124
            PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowIdInSource.getKey()), isOverrideShowIDSource);
125
            if(isShowIDSource != null){
126
                PreferencesUtil.setBooleanValue(PreferencePredicate.ShowIdInSource.getKey(), isShowIDSource);
127
            }
128
        }
129
        if (isAllowOverrideShowIDNamespace){
130
            PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowNamespaceInSource.getKey()), isOverrideShowIDNamespace);
131
            if (isShowIDNamespace != null){
132
                PreferencesUtil.setBooleanValue(PreferencePredicate.ShowNamespaceInSource.getKey(), isShowIDNamespace);
133
            }
134
        }
135
       return true;
136
   }
137
    @Override
138
    protected void getValues(){
139
        isAdminPreference = false;
140

    
141
        CdmPreferenceCache cache = CdmPreferenceCache.instance();
142
        isShowIDSource = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowIdInSource.getKey(), true);
143
        isOverrideShowIDSource = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowIdInSource.getKey()), true) != null?PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowIdInSource.getKey()), true): false;
144
        PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowIdInSource);
145
        CdmPreference pref = cache.findBestMatching(key);
146
        if (pref != null){
147
            isAllowOverrideShowIDSource = pref.isAllowOverride();
148
        }else{
149
            isAllowOverrideShowIDSource = true;
150
        }
151

    
152
        isShowIDNamespace = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowNamespaceInSource.getKey(), true);
153
        isOverrideShowIDNamespace = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowNamespaceInSource.getKey()), true) != null? PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowNamespaceInSource.getKey()), true):false;
154
        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowNamespaceInSource);
155
        pref = cache.findBestMatching(key);
156
        if (pref != null){
157
            isAllowOverrideShowIDNamespace= pref.isAllowOverride();
158
        }else{
159
            isAllowOverrideShowIDNamespace = true;
160
        }
161
    }
162

    
163
    @Override
164
    public void widgetSelected(SelectionEvent e) {
165
        if (e.getSource().equals(this.showIDNamespaceButton)) {
166
            String text = showIDNamespaceButton.getText();
167
           // text = text.replace(Messages.Preference_Use_Default, "");
168
            if (text.equals(Messages.Preference_Use_Default)){
169
                isOverrideShowIDNamespace = false;
170
            }else{
171
                isOverrideShowIDNamespace = true;
172
            }
173
            if (text.equals(SHOW)){
174
                isShowIDNamespace = true;
175

    
176
            }else{
177
                isShowIDNamespace = false;
178
            }
179
        }
180
        if (e.getSource().equals(this.showIDSourceButton)) {
181
            String text = showIDSourceButton.getText();
182
            if (text.equals(Messages.Preference_Use_Default)){
183
                isOverrideShowIDSource = false;
184
            }else{
185
                isOverrideShowIDSource = true;
186
            }
187
            if (text.equals(SHOW)){
188
                isShowIDSource = true;
189
            }else{
190
                isShowIDSource = false;
191
            }
192
        }
193

    
194
        this.setApply(true);
195
    }
196

    
197
    @Override
198
    public void widgetDefaultSelected(SelectionEvent e) {
199
    }
200

    
201
    @Override
202
    protected void performDefaults() {
203
        showIDNamespaceButton.select(0);
204
        isShowIDNamespace = null;
205
        isAllowOverrideShowIDNamespace=true;
206
        isOverrideShowIDNamespace = false;
207
        isOverrideShowIDSource = false;
208
        if (isAdminPreference){
209
            allowOverrideIDSourceButton.setSelection(true);
210
            allowOverrideShowIDNamespaceButton.setSelection(true);
211
        }
212

    
213
        showIDSourceButton.select(0);
214
        isShowIDSource = null;
215
        isAllowOverrideShowIDSource=true;
216
        super.performDefaults();
217
    }
218

    
219

    
220

    
221
}
(41-41/48)