cleanup
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / preference / DistributionDetailsViewPreference.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.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;
18
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;
23
24 /**
25 * @author k.luther
26 * @since 02.07.2019
27 *
28 */
29 public class DistributionDetailsViewPreference extends CdmPreferencePage implements SelectionListener{
30
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;
37 /**
38 * {@inheritDoc}
39 */
40 @Override
41 protected Control createContents(Composite parent) {
42 getValues();
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(){
52 @Override
53 public void widgetSelected(SelectionEvent e) {
54 allowOverrideShowIdInVoc = !allowOverrideShowIdInVoc;
55 setApply(true);
56 }
57 });
58 }
59 int index = 0;
60 if(isShowIdInVoc==null){
61 comboShowIdInVocabularyInText.select(0);
62 } else{
63 for (String itemLabel : comboShowIdInVocabularyInText.getItems()){
64 if (itemLabel.startsWith(this.SHOW) && isShowIdInVoc){
65 comboShowIdInVocabularyInText.select(index);
66 break;
67 }
68 if (itemLabel.startsWith(DO_NOT_SHOW) && !isShowIdInVoc){
69 comboShowIdInVocabularyInText.select(index);
70 break;
71 }
72 index++;
73 }
74 }
75 if (!isAdminPreference){
76 comboShowIdInVocabularyInText.setEnabled(allowOverrideShowIdInVoc);
77 }
78
79
80 return composite;
81 }
82 @Override
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());
88 }
89 allowOverrideShowIdInVoc = prefShowIdInVoc.isAllowOverride();
90 isShowIdInVoc = null;
91 String showIdInVoc = PreferencesUtil.getStringValue(PreferencePredicate.NamedAreaWithIdInVoc.getKey(), true);
92 if (showIdInVoc != null){
93 isShowIdInVoc = Boolean.valueOf(showIdInVoc);
94 }
95
96 isOverrideShowIdInVoc = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.NamedAreaWithIdInVoc.getKey()));
97 if (!isOverrideShowIdInVoc){
98 isShowIdInVoc = null;
99 }
100
101 }
102
103 @Override
104 protected void performDefaults() {
105 isShowIdInVoc = null;
106 allowOverrideShowIdInVoc = true;
107
108 comboShowIdInVocabularyInText.select(0);
109 if (isAdminPreference){
110 allowOverrideButtonShowIdInVoc.setSelection(allowOverrideShowIdInVoc);
111 }
112
113 setApply(true);
114 super.performDefaults();
115 }
116 @Override
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;
123
124 }else if (text.equals(SHOW)){
125 isShowIdInVoc = true;
126 isOverrideShowIdInVoc = true;
127 }else{
128 isShowIdInVoc = false;
129 isOverrideShowIdInVoc = true;
130 }
131
132 }
133 setApply(true);
134
135 }
136
137 @Override
138 public void widgetDefaultSelected(SelectionEvent e) {
139 }
140
141 @Override
142 public boolean performOk() {
143 if (isApply()){
144 if (isShowIdInVoc != null){
145 PreferencesUtil.setStringValue(PreferencePredicate.NamedAreaWithIdInVoc.getKey(), Boolean.toString(isShowIdInVoc));
146 PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.NamedAreaWithIdInVoc.getKey()), true);
147
148 }else{
149 PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.NamedAreaWithIdInVoc.getKey()), false);
150 }
151
152 }
153 return true;
154 }
155
156 }