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
.events
.SelectionAdapter
;
12 import org
.eclipse
.swt
.events
.SelectionEvent
;
13 import org
.eclipse
.swt
.events
.SelectionListener
;
14 import org
.eclipse
.swt
.widgets
.Button
;
15 import org
.eclipse
.swt
.widgets
.Combo
;
16 import org
.eclipse
.swt
.widgets
.Composite
;
17 import org
.eclipse
.swt
.widgets
.Control
;
19 import eu
.etaxonomy
.cdm
.model
.metadata
.CdmPreference
;
20 import eu
.etaxonomy
.cdm
.model
.metadata
.PreferencePredicate
;
21 import eu
.etaxonomy
.taxeditor
.l10n
.Messages
;
22 import eu
.etaxonomy
.taxeditor
.preference
.menu
.CdmPreferencePage
;
29 public class DistributionDetailsViewPreference
extends CdmPreferencePage
implements SelectionListener
{
31 protected Combo comboShowIdInVocabularyInText
;
32 private boolean isOverrideShowIdInVoc
= true;
33 protected Boolean isShowIdInVoc
;
34 protected boolean allowOverrideShowIdInVoc
;
35 protected CdmPreference prefShowIdInVoc
= null;
36 Button allowOverrideButtonShowIdInVoc
;
41 protected Control
createContents(Composite parent
) {
43 Composite composite
= createComposite(parent
);
44 //show Id in Vocabulary in textfield
45 comboShowIdInVocabularyInText
= createBooleanCombo(composite
, SHOW
, DO_NOT_SHOW
, PreferencePredicate
.NamedAreaWithIdInVoc
, Messages
.FactualData_showIdInVocabulary
, isAdminPreference
);
46 comboShowIdInVocabularyInText
.setToolTipText(Messages
.FactualData_showIdInVocabulary_tooltip
);
47 comboShowIdInVocabularyInText
.addSelectionListener(this);
48 if (this.isAdminPreference
){
49 allowOverrideButtonShowIdInVoc
= createAllowOverrideButton(composite
);
50 allowOverrideButtonShowIdInVoc
.setSelection(allowOverrideShowIdInVoc
);
51 allowOverrideButtonShowIdInVoc
.addSelectionListener(new SelectionAdapter(){
53 public void widgetSelected(SelectionEvent e
) {
54 allowOverrideShowIdInVoc
= !allowOverrideShowIdInVoc
;
60 if(isShowIdInVoc
==null){
61 comboShowIdInVocabularyInText
.select(0);
63 for (String itemLabel
: comboShowIdInVocabularyInText
.getItems()){
64 if (itemLabel
.startsWith(this.SHOW
) && isShowIdInVoc
){
65 comboShowIdInVocabularyInText
.select(index
);
68 if (itemLabel
.startsWith(DO_NOT_SHOW
) && !isShowIdInVoc
){
69 comboShowIdInVocabularyInText
.select(index
);
75 if (!isAdminPreference
){
76 comboShowIdInVocabularyInText
.setEnabled(allowOverrideShowIdInVoc
);
83 public void getValues(){
84 //get show IdInVocabulary values
85 prefShowIdInVoc
= PreferencesUtil
.getPreferenceFromDB(PreferencePredicate
.NamedAreaWithIdInVoc
);
86 if (prefShowIdInVoc
== null){
87 prefShowIdInVoc
= CdmPreference
.NewTaxEditorInstance(PreferencePredicate
.NamedAreaWithIdInVoc
, PreferencePredicate
.NamedAreaWithIdInVoc
.getDefaultValue().toString());
89 allowOverrideShowIdInVoc
= prefShowIdInVoc
.isAllowOverride();
91 String showIdInVoc
= PreferencesUtil
.getStringValue(PreferencePredicate
.NamedAreaWithIdInVoc
.getKey(), true);
92 if (showIdInVoc
!= null){
93 isShowIdInVoc
= Boolean
.valueOf(showIdInVoc
);
96 isOverrideShowIdInVoc
= PreferencesUtil
.getBooleanValue(PreferencesUtil
.prefOverrideKey(PreferencePredicate
.NamedAreaWithIdInVoc
.getKey()));
97 if (!isOverrideShowIdInVoc
){
104 protected void performDefaults() {
105 isShowIdInVoc
= null;
106 allowOverrideShowIdInVoc
= true;
108 comboShowIdInVocabularyInText
.select(0);
109 if (isAdminPreference
){
110 allowOverrideButtonShowIdInVoc
.setSelection(allowOverrideShowIdInVoc
);
114 super.performDefaults();
117 public void widgetSelected(SelectionEvent e
) {
118 if (e
.getSource().equals(this.comboShowIdInVocabularyInText
)) {
119 String text
= comboShowIdInVocabularyInText
.getText();
120 if (text
.startsWith(Messages
.Preference_Use_Default
)){
121 isOverrideShowIdInVoc
= false;
122 isShowIdInVoc
= null;
124 }else if (text
.equals(SHOW
)){
125 isShowIdInVoc
= true;
126 isOverrideShowIdInVoc
= true;
128 isShowIdInVoc
= false;
129 isOverrideShowIdInVoc
= true;
138 public void widgetDefaultSelected(SelectionEvent e
) {
142 public boolean performOk() {
144 if (isShowIdInVoc
!= null){
145 PreferencesUtil
.setStringValue(PreferencePredicate
.NamedAreaWithIdInVoc
.getKey(), Boolean
.toString(isShowIdInVoc
));
146 PreferencesUtil
.setBooleanValue(PreferencesUtil
.prefOverrideKey(PreferencePredicate
.NamedAreaWithIdInVoc
.getKey()), true);
149 PreferencesUtil
.setBooleanValue(PreferencesUtil
.prefOverrideKey(PreferencePredicate
.NamedAreaWithIdInVoc
.getKey()), false);