use preferencePredicate.EditMapServiceAccessPoint in featureDistribution detailsview
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / preference / FactualDataPreference.java
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 @Override
54 public void init() {
55 super.init();
56
57
58 }
59 /**
60 * {@inheritDoc}
61 */
62 @Override
63 protected Control createContents(Composite parent) {
64 getValues();
65
66 Composite composite = createComposite(parent);
67 Label description = new Label(composite, SWT.NULL);
68 description.setText(Messages.FactualData_description);
69
70 comboShowModifier = createBooleanCombo(composite, SHOW, DO_NOT_SHOW, PreferencePredicate.ShowModifier, Messages.FactualData_showModifier, isAdminPreference);
71 comboShowModifier.addSelectionListener(this);
72 if (this.isAdminPreference){
73 allowOverrideButton = createAllowOverrideButton(composite);
74 allowOverrideButton.setSelection(allowOverride);
75 allowOverrideButton.addSelectionListener(new SelectionAdapter(){
76 @Override
77 public void widgetSelected(SelectionEvent e) {
78 allowOverride = !allowOverride;
79 setApply(true);
80 }
81 });
82 }
83 int index = 0;
84 if(isShowModifier==null){
85 comboShowModifier.select(0);
86 } else{
87 for (String itemLabel : comboShowModifier.getItems()){
88 if (itemLabel.startsWith(this.SHOW) && isShowModifier){
89 comboShowModifier.select(index);
90 break;
91 }
92 if (itemLabel.startsWith(DO_NOT_SHOW) && !isShowModifier){
93 comboShowModifier.select(index);
94 break;
95 }
96 index++;
97 }
98 }
99 if (!isAdminPreference){
100 comboShowModifier.setEnabled(allowOverride);
101 }
102
103 comboShowModifierFreeText = createBooleanCombo(composite, SHOW, DO_NOT_SHOW, PreferencePredicate.ShowModifierFreeText, Messages.FactualData_showModifier_FreeText, isAdminPreference);
104 comboShowModifierFreeText.addSelectionListener(this);
105 if (this.isAdminPreference){
106 allowOverrideFreeTextButton = createAllowOverrideButton(composite);
107 allowOverrideFreeTextButton.setSelection(allowOverrideFreeText);
108 allowOverrideFreeTextButton.addSelectionListener(new SelectionAdapter(){
109 @Override
110 public void widgetSelected(SelectionEvent e) {
111 allowOverrideFreeText = !allowOverrideFreeText;
112 setApply(true);
113 }
114 });
115 }
116 index = 0;
117 if(isShowModifierFreeText==null){
118 comboShowModifierFreeText.select(0);
119 } else{
120 for (String itemLabel : comboShowModifierFreeText.getItems()){
121 if (itemLabel.startsWith(this.SHOW) && isShowModifierFreeText){
122 comboShowModifierFreeText.select(index);
123 break;
124 }
125 if (itemLabel.startsWith(DO_NOT_SHOW) && !isShowModifierFreeText){
126 comboShowModifierFreeText.select(index);
127 break;
128 }
129 index++;
130 }
131 }
132 if (!isAdminPreference){
133 comboShowModifierFreeText.setEnabled(allowOverrideFreeText);
134 }
135 return composite;
136
137 }
138
139
140 @Override
141 public boolean performOk() {
142 if (isApply()){
143 if (isShowModifier != null){
144 PreferencesUtil.setStringValue(PreferencePredicate.ShowModifier.getKey(), Boolean.toString(isShowModifier));
145 PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowModifier.getKey()), true);
146
147 }else{
148 PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowModifier.getKey()), false);
149 }
150 if (isShowModifierFreeText != null){
151 PreferencesUtil.setStringValue(PreferencePredicate.ShowModifierFreeText.getKey(), Boolean.toString(isShowModifierFreeText));
152 PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowModifierFreeText.getKey()), true);
153
154 }else{
155 PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowModifierFreeText.getKey()), false);
156 }
157
158 }
159 return true;
160 }
161
162 @Override
163 public void getValues(){
164 // get modifier values
165 pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowModifier);
166 if (pref == null){
167 pref = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowModifier, PreferencePredicate.ShowModifier.getDefaultValue().toString());
168 }
169 allowOverride = pref.isAllowOverride();
170 isShowModifier = null;
171 String showModifierString = PreferencesUtil.getStringValue(PreferencePredicate.ShowModifier.getKey(), true);
172 if (showModifierString != null){
173 isShowModifier = Boolean.valueOf(showModifierString);
174 }
175
176 isOverride = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowModifier.getKey()));
177 if (!isOverride){
178 isShowModifier = null;
179 }
180
181 //get modifier freetext values
182 prefFreeText = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowModifierFreeText);
183 if (prefFreeText == null){
184 prefFreeText = CdmPreference.NewTaxEditorInstance(PreferencePredicate.ShowModifierFreeText, PreferencePredicate.ShowModifierFreeText.getDefaultValue().toString());
185 }
186 allowOverrideFreeText = prefFreeText.isAllowOverride();
187 isShowModifierFreeText = null;
188 String showModifierStringFreeText = PreferencesUtil.getStringValue(PreferencePredicate.ShowModifierFreeText.getKey(), true);
189 if (showModifierStringFreeText != null){
190 isShowModifierFreeText = Boolean.valueOf(showModifierStringFreeText);
191 }
192
193 isOverrideFreeText = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowModifierFreeText.getKey()));
194 if (!isOverrideFreeText){
195 isShowModifierFreeText = null;
196 }
197
198 }
199
200 @Override
201 protected void performDefaults() {
202 isShowModifier = null;
203 allowOverride = true;
204
205 comboShowModifier.select(0);
206 if (isAdminPreference){
207 allowOverrideButton.setSelection(allowOverride);
208 }
209
210 isShowModifierFreeText = null;
211 allowOverrideFreeText = true;
212
213 comboShowModifierFreeText.select(0);
214 if (isAdminPreference){
215 allowOverrideFreeTextButton.setSelection(allowOverrideFreeText);
216 }
217
218 setApply(true);
219 super.performDefaults();
220 }
221 @Override
222 public void widgetSelected(SelectionEvent e) {
223 if (e.getSource().equals(this.comboShowModifier)) {
224 String text = comboShowModifier.getText();
225 if (text.startsWith(Messages.Preference_Use_Default)){
226 isOverride = false;
227 isShowModifier = null;
228
229 }else if (text.equals(SHOW)){
230 isShowModifier = true;
231 isOverride = true;
232 }else{
233 isShowModifier = false;
234 isOverride = true;
235 }
236
237 }
238
239 if (e.getSource().equals(this.comboShowModifierFreeText)) {
240 String text = comboShowModifierFreeText.getText();
241 if (text.startsWith(Messages.Preference_Use_Default)){
242 isOverrideFreeText = false;
243 isShowModifierFreeText = null;
244
245 }else if (text.equals(SHOW)){
246 isShowModifierFreeText = true;
247 isOverrideFreeText = true;
248 }else{
249 isShowModifierFreeText = false;
250 isOverrideFreeText = true;
251 }
252
253 }
254 setApply(true);
255
256 }
257
258 @Override
259 public void widgetDefaultSelected(SelectionEvent e) {
260
261
262
263 }
264
265
266 }