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