Project

General

Profile

Download (8.13 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 SupplementalDataPreferences extends CdmPreferencePage implements SelectionListener{
35

    
36

    
37
    protected Boolean isShowIDNamspace;
38
    protected Boolean isShowIDSource;
39

    
40
    protected boolean isAllowOverrideShowIDNamspace;
41
    protected boolean isAllowOverrideShowIDSource;
42

    
43
    protected boolean isOverrideShowIDNamspace;
44
    protected boolean isOverrideShowIDSource;
45

    
46

    
47
    protected Combo showIDNamspaceButton;
48
    protected Button allowOverrideShowIDNamspaceButton;
49
    protected Combo showIDSourceButton;
50
    protected Button allowOverrideIDSourceButton;
51

    
52
    final String SHOW = Messages.GeneralPreference_yes;
53
    final String DO_NOT_SHOW = Messages.GeneralPreference_no;
54
    /**
55
     * {@inheritDoc}
56
     */
57
    @Override
58
    protected Control createContents(Composite parent) {
59
        getValues();
60
        final Composite composite = createComposite(parent);
61

    
62
        GridData gridData = createTextGridData();
63

    
64
        Label separator= new Label(composite, SWT.HORIZONTAL | SWT.SEPARATOR);
65
        separator.setLayoutData(gridData);
66
        separator.setVisible(false);
67

    
68
        showIDNamspaceButton = createBooleanCombo(composite, SHOW, DO_NOT_SHOW, PreferencePredicate.ShowIdInSource, "Show ID in Namespace in Source",
69
                isAdminPreference);
70

    
71
        showIDNamspaceButton.addSelectionListener(this);
72

    
73
        if (isShowIDNamspace == null || (!isOverrideShowIDNamspace && !isAdminPreference)){
74
            showIDNamspaceButton.select(0);
75
        }else if (isShowIDNamspace){
76
            showIDNamspaceButton.select(1);
77
        }else{
78
            showIDNamspaceButton.select(2);
79
        }
80
        if (isAdminPreference){
81
            allowOverrideShowIDNamspaceButton = createAllowOverrideButton(composite);
82

    
83
            allowOverrideShowIDNamspaceButton.setSelection(isAllowOverrideShowIDNamspace);
84
            allowOverrideShowIDNamspaceButton.addSelectionListener(new SelectionAdapter(){
85
                @Override
86
                public void widgetSelected(SelectionEvent e) {
87
                    isAllowOverrideShowIDNamspace = allowOverrideShowIDNamspaceButton.getSelection();
88
                    setApply(true);
89
                }
90
            });
91
        }
92

    
93

    
94
        showIDSourceButton = createBooleanCombo(composite, SHOW, DO_NOT_SHOW, PreferencePredicate.ShowNamespaceInSource, "Show ID in Source",
95
                isAdminPreference);
96

    
97
        showIDSourceButton.addSelectionListener(this);
98
        if (isShowIDSource == null || (!isOverrideShowIDSource && !isAdminPreference)){
99
            showIDSourceButton.select(0);
100
        }else if (isShowIDSource){
101
            showIDSourceButton.select(1);
102
        }else{
103
            showIDSourceButton.select(2);
104
        }
105

    
106
        if (isAdminPreference){
107
            allowOverrideIDSourceButton = createAllowOverrideButton(composite);
108
            allowOverrideIDSourceButton.setSelection(isAllowOverrideShowIDSource);
109
            allowOverrideIDSourceButton.addSelectionListener(new SelectionAdapter(){
110
                @Override
111
                public void widgetSelected(SelectionEvent e) {
112
                    isAllowOverrideShowIDSource = allowOverrideIDSourceButton.getSelection();
113
                    setApply(true);
114
                }
115
            });
116
        }
117
        if (!isAllowOverrideShowIDNamspace && !isAdminPreference){
118
            showIDNamspaceButton.setEnabled(false);
119
        }
120
        if (!isAllowOverrideShowIDSource && !isAdminPreference){
121
            showIDSourceButton.setEnabled(false);
122
        }
123

    
124

    
125
        return composite;
126
    }
127

    
128

    
129

    
130
    @Override
131
    public boolean performOk() {
132
        if (isAllowOverrideShowIDNamspace){
133
            PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowIdInSource.getKey()), isOverrideShowIDNamspace);
134
            PreferencesUtil.setBooleanValue(PreferencePredicate.ShowIdInSource.getKey(), isShowIDNamspace);
135
        }
136
        if (isAllowOverrideShowIDSource){
137
            PreferencesUtil.setBooleanValue(PreferencePredicate.ShowNamespaceInSource.getKey(), isShowIDSource);
138
            PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowNamespaceInSource.getKey()), isOverrideShowIDSource);
139
        }
140

    
141

    
142
       return true;
143
   }
144
    @Override
145
    protected void getValues(){
146
        isAdminPreference = false;
147

    
148
        CdmPreferenceCache cache = CdmPreferenceCache.instance();
149
        isShowIDNamspace = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowIdInSource.getKey(), true);
150
        isOverrideShowIDNamspace = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowIdInSource.getKey()), true) != null?PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowIdInSource.getKey()), true): false;
151
        PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowIdInSource);
152
        CdmPreference pref = cache.findBestMatching(key);
153
        if (pref != null){
154
            isAllowOverrideShowIDNamspace = pref.isAllowOverride();
155
        }else{
156
            isAllowOverrideShowIDNamspace = true;
157
        }
158

    
159
        isShowIDSource = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowNamespaceInSource.getKey(), true);
160
        isOverrideShowIDSource = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowNamespaceInSource.getKey()), true) != null? PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowNamespaceInSource.getKey()), true):false;
161
        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowNamespaceInSource);
162
        pref = cache.findBestMatching(key);
163
        if (pref != null){
164
            isAllowOverrideShowIDSource = pref.isAllowOverride();
165
        }else{
166
            isAllowOverrideShowIDSource = true;
167
        }
168

    
169

    
170
    }
171

    
172

    
173

    
174
    /**
175
     * {@inheritDoc}
176
     */
177
    @Override
178
    public void widgetSelected(SelectionEvent e) {
179
        if (e.getSource().equals(this.showIDNamspaceButton)) {
180
            String text = showIDNamspaceButton.getText();
181
           // text = text.replace(Messages.Preference_Use_Default, "");
182
            if (text.equals(Messages.Preference_Use_Default)){
183
                isOverrideShowIDNamspace = false;
184
            }else{
185
                isOverrideShowIDNamspace = true;
186
            }
187
            if (text.equals(SHOW)){
188
                isShowIDNamspace = true;
189

    
190
            }else{
191
                isShowIDNamspace = false;
192
            }
193
        }
194
        if (e.getSource().equals(this.showIDSourceButton)) {
195
            String text = showIDSourceButton.getText();
196
            if (text.equals(Messages.Preference_Use_Default)){
197
                isOverrideShowIDSource = false;
198
            }else{
199
                isOverrideShowIDSource = true;
200
            }
201
            if (text.equals(SHOW)){
202
                isShowIDSource = true;
203
            }else{
204
                isShowIDSource = false;
205
            }
206
        }
207

    
208
        this.setApply(true);
209

    
210

    
211
    }
212

    
213

    
214

    
215
    /**
216
     * {@inheritDoc}
217
     */
218
    @Override
219
    public void widgetDefaultSelected(SelectionEvent e) {
220
        // TODO Auto-generated method stub
221

    
222
    }
223

    
224
}
(40-40/47)