2 * Copyright (C) 2019 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
9 package eu
.etaxonomy
.taxeditor
.preference
;
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
;
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
;
31 public class FactualDataPreference
extends CdmPreferencePage
implements SelectionListener
{
34 protected Boolean isShowModifier
;
36 protected Combo comboShowModifier
;
37 protected CdmPreference pref
= null;
38 Button allowOverrideButton
;
40 protected boolean allowOverride
;
41 private boolean isOverride
= true;
43 protected Boolean isShowModifierFreeText
;
45 protected Combo comboShowModifierFreeText
;
46 protected CdmPreference prefFreeText
= null;
47 Button allowOverrideFreeTextButton
;
49 protected boolean allowOverrideFreeText
;
50 private boolean isOverrideFreeText
= true;
64 protected Control
createContents(Composite parent
) {
67 Composite composite
= createComposite(parent
);
68 Label description
= new Label(composite
, SWT
.NULL
);
69 description
.setText(Messages
.FactualData_description
);
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(){
78 public void widgetSelected(SelectionEvent e
) {
79 allowOverride
= !allowOverride
;
85 if(isShowModifier
==null){
86 comboShowModifier
.select(0);
88 for (String itemLabel
: comboShowModifier
.getItems()){
89 if (itemLabel
.startsWith(this.SHOW
) && isShowModifier
){
90 comboShowModifier
.select(index
);
93 if (itemLabel
.startsWith(DO_NOT_SHOW
) && !isShowModifier
){
94 comboShowModifier
.select(index
);
100 if (!isAdminPreference
){
101 comboShowModifier
.setEnabled(allowOverride
);
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(){
111 public void widgetSelected(SelectionEvent e
) {
112 allowOverrideFreeText
= !allowOverrideFreeText
;
118 if(isShowModifierFreeText
==null){
119 comboShowModifierFreeText
.select(0);
121 for (String itemLabel
: comboShowModifierFreeText
.getItems()){
122 if (itemLabel
.startsWith(this.SHOW
) && isShowModifierFreeText
){
123 comboShowModifierFreeText
.select(index
);
126 if (itemLabel
.startsWith(DO_NOT_SHOW
) && !isShowModifierFreeText
){
127 comboShowModifierFreeText
.select(index
);
133 if (!isAdminPreference
){
134 comboShowModifierFreeText
.setEnabled(allowOverrideFreeText
);
144 public boolean performOk() {
146 if (isShowModifier
!= null){
147 PreferencesUtil
.setStringValue(PreferencePredicate
.ShowModifier
.getKey(), Boolean
.toString(isShowModifier
));
148 PreferencesUtil
.setBooleanValue(PreferencesUtil
.prefOverrideKey(PreferencePredicate
.ShowModifier
.getKey()), true);
151 PreferencesUtil
.setBooleanValue(PreferencesUtil
.prefOverrideKey(PreferencePredicate
.ShowModifier
.getKey()), false);
153 if (isShowModifierFreeText
!= null){
154 PreferencesUtil
.setStringValue(PreferencePredicate
.ShowModifierFreeText
.getKey(), Boolean
.toString(isShowModifierFreeText
));
155 PreferencesUtil
.setBooleanValue(PreferencesUtil
.prefOverrideKey(PreferencePredicate
.ShowModifierFreeText
.getKey()), true);
158 PreferencesUtil
.setBooleanValue(PreferencesUtil
.prefOverrideKey(PreferencePredicate
.ShowModifierFreeText
.getKey()), false);
166 public void getValues(){
167 // get modifier values
168 pref
= PreferencesUtil
.getPreferenceFromDB(PreferencePredicate
.ShowModifier
);
170 pref
= CdmPreference
.NewTaxEditorInstance(PreferencePredicate
.ShowModifier
, PreferencePredicate
.ShowModifier
.getDefaultValue().toString());
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
);
179 isOverride
= PreferencesUtil
.getBooleanValue(PreferencesUtil
.prefOverrideKey(PreferencePredicate
.ShowModifier
.getKey()));
181 isShowModifier
= null;
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());
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
);
196 isOverrideFreeText
= PreferencesUtil
.getBooleanValue(PreferencesUtil
.prefOverrideKey(PreferencePredicate
.ShowModifierFreeText
.getKey()));
197 if (!isOverrideFreeText
){
198 isShowModifierFreeText
= null;
205 protected void performDefaults() {
206 isShowModifier
= null;
207 allowOverride
= true;
209 comboShowModifier
.select(0);
210 if (isAdminPreference
){
211 allowOverrideButton
.setSelection(allowOverride
);
214 isShowModifierFreeText
= null;
215 allowOverrideFreeText
= true;
217 comboShowModifierFreeText
.select(0);
218 if (isAdminPreference
){
219 allowOverrideFreeTextButton
.setSelection(allowOverrideFreeText
);
222 super.performDefaults();
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
)){
230 isShowModifier
= null;
232 }else if (text
.equals(SHOW
)){
233 isShowModifier
= true;
236 isShowModifier
= false;
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;
248 }else if (text
.equals(SHOW
)){
249 isShowModifierFreeText
= true;
250 isOverrideFreeText
= true;
252 isShowModifierFreeText
= false;
253 isOverrideFreeText
= true;
262 public void widgetDefaultSelected(SelectionEvent e
) {