Project

General

Profile

Download (7.96 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
    protected Boolean isShowIDNamspace;
37
    protected Boolean isShowIDSource;
38

    
39
    protected boolean isAllowOverrideShowIDNamspace;
40
    protected boolean isAllowOverrideShowIDSource;
41

    
42
    protected boolean isOverrideShowIDNamspace;
43
    protected boolean isOverrideShowIDSource;
44

    
45
    protected Combo showIDNamspaceButton;
46
    protected Button allowOverrideShowIDNamspaceButton;
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
        showIDNamspaceButton = createBooleanCombo(composite, SHOW, DO_NOT_SHOW, PreferencePredicate.ShowIdInSource, "Show ID in Namespace in Source",
65
                isAdminPreference);
66

    
67
        showIDNamspaceButton.addSelectionListener(this);
68

    
69
        if (isShowIDNamspace == null || (!isOverrideShowIDNamspace && !isAdminPreference)){
70
            showIDNamspaceButton.select(0);
71
        }else if (isShowIDNamspace){
72
            showIDNamspaceButton.select(1);
73
        }else{
74
            showIDNamspaceButton.select(2);
75
        }
76
        if (isAdminPreference){
77
            allowOverrideShowIDNamspaceButton = createAllowOverrideButton(composite);
78

    
79
            allowOverrideShowIDNamspaceButton.setSelection(isAllowOverrideShowIDNamspace);
80
            allowOverrideShowIDNamspaceButton.addSelectionListener(new SelectionAdapter(){
81
                @Override
82
                public void widgetSelected(SelectionEvent e) {
83
                    isAllowOverrideShowIDNamspace = allowOverrideShowIDNamspaceButton.getSelection();
84
                    setApply(true);
85
                }
86
            });
87
        }
88
        showIDSourceButton = createBooleanCombo(composite, SHOW, DO_NOT_SHOW, PreferencePredicate.ShowNamespaceInSource, "Show ID in Source",
89
                isAdminPreference);
90
        showIDSourceButton.addSelectionListener(this);
91
        if (isShowIDSource == null || (!isOverrideShowIDSource && !isAdminPreference)){
92
            showIDSourceButton.select(0);
93
        }else if (isShowIDSource){
94
            showIDSourceButton.select(1);
95
        }else{
96
            showIDSourceButton.select(2);
97
        }
98

    
99
        if (isAdminPreference){
100
            allowOverrideIDSourceButton = createAllowOverrideButton(composite);
101
            allowOverrideIDSourceButton.setSelection(isAllowOverrideShowIDSource);
102
            allowOverrideIDSourceButton.addSelectionListener(new SelectionAdapter(){
103
                @Override
104
                public void widgetSelected(SelectionEvent e) {
105
                    isAllowOverrideShowIDSource = allowOverrideIDSourceButton.getSelection();
106
                    setApply(true);
107
                }
108
            });
109
        }
110
        if (!isAllowOverrideShowIDNamspace && !isAdminPreference){
111
            showIDNamspaceButton.setEnabled(false);
112
        }
113
        if (!isAllowOverrideShowIDSource && !isAdminPreference){
114
            showIDSourceButton.setEnabled(false);
115
        }
116
        return composite;
117
    }
118

    
119
    @Override
120
    public boolean performOk() {
121
        if (isAllowOverrideShowIDNamspace){
122
            PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowIdInSource.getKey()), isOverrideShowIDNamspace);
123
            PreferencesUtil.setBooleanValue(PreferencePredicate.ShowIdInSource.getKey(), isShowIDNamspace);
124
        }
125
        if (isAllowOverrideShowIDSource){
126
            PreferencesUtil.setBooleanValue(PreferencePredicate.ShowNamespaceInSource.getKey(), isShowIDSource);
127
            PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowNamespaceInSource.getKey()), isOverrideShowIDSource);
128
        }
129
       return true;
130
   }
131
    @Override
132
    protected void getValues(){
133
        isAdminPreference = false;
134

    
135
        CdmPreferenceCache cache = CdmPreferenceCache.instance();
136
        isShowIDNamspace = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowIdInSource.getKey(), true);
137
        isOverrideShowIDNamspace = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowIdInSource.getKey()), true) != null?PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowIdInSource.getKey()), true): false;
138
        PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowIdInSource);
139
        CdmPreference pref = cache.findBestMatching(key);
140
        if (pref != null){
141
            isAllowOverrideShowIDNamspace = pref.isAllowOverride();
142
        }else{
143
            isAllowOverrideShowIDNamspace = true;
144
        }
145

    
146
        isShowIDSource = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowNamespaceInSource.getKey(), true);
147
        isOverrideShowIDSource = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowNamespaceInSource.getKey()), true) != null? PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowNamespaceInSource.getKey()), true):false;
148
        key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowNamespaceInSource);
149
        pref = cache.findBestMatching(key);
150
        if (pref != null){
151
            isAllowOverrideShowIDSource = pref.isAllowOverride();
152
        }else{
153
            isAllowOverrideShowIDSource = true;
154
        }
155
    }
156

    
157
    @Override
158
    public void widgetSelected(SelectionEvent e) {
159
        if (e.getSource().equals(this.showIDNamspaceButton)) {
160
            String text = showIDNamspaceButton.getText();
161
           // text = text.replace(Messages.Preference_Use_Default, "");
162
            if (text.equals(Messages.Preference_Use_Default)){
163
                isOverrideShowIDNamspace = false;
164
            }else{
165
                isOverrideShowIDNamspace = true;
166
            }
167
            if (text.equals(SHOW)){
168
                isShowIDNamspace = true;
169

    
170
            }else{
171
                isShowIDNamspace = false;
172
            }
173
        }
174
        if (e.getSource().equals(this.showIDSourceButton)) {
175
            String text = showIDSourceButton.getText();
176
            if (text.equals(Messages.Preference_Use_Default)){
177
                isOverrideShowIDSource = false;
178
            }else{
179
                isOverrideShowIDSource = true;
180
            }
181
            if (text.equals(SHOW)){
182
                isShowIDSource = true;
183
            }else{
184
                isShowIDSource = false;
185
            }
186
        }
187

    
188
        this.setApply(true);
189
    }
190

    
191
    @Override
192
    public void widgetDefaultSelected(SelectionEvent e) {
193
    }
194

    
195
}
(40-40/47)