ref #8489: move taxonnode wizard pref to navigator page
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / preference / GeneralPreferencePage.java
1 /**
2 * Copyright (C) 2018 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.layout.GridData;
16 import org.eclipse.swt.widgets.Button;
17 import org.eclipse.swt.widgets.Combo;
18 import org.eclipse.swt.widgets.Composite;
19 import org.eclipse.swt.widgets.Control;
20 import org.eclipse.swt.widgets.Label;
21
22 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
23 import eu.etaxonomy.cdm.model.metadata.CdmPreference.PrefKey;
24 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
25 import eu.etaxonomy.cdm.model.metadata.PreferenceSubject;
26 import eu.etaxonomy.taxeditor.l10n.Messages;
27 import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
28
29 /**
30 * @author k.luther
31 * @since 29.05.2018
32 *
33 */
34 public class GeneralPreferencePage extends CdmPreferencePage implements SelectionListener{
35
36
37 protected Boolean isShowIOMenu;
38 // protected boolean isShowMediaView;
39 protected Boolean isShowCheckListPerspective;
40
41 protected boolean isAllowOverrideShowIOMenu;
42 protected boolean isAllowOverrideShowMediaView;
43 protected boolean isAllowOverrideShowCheckListPerspective;
44
45 protected boolean isOverrideShowIOMenu;
46 protected boolean isOverrideShowMediaView;
47 protected boolean isOverrideShowCheckListPerspective;
48
49
50 protected Combo showIOMenuButton;
51 protected Button allowOverrideShowIOMenuButton;
52 protected Combo showChecklistPerspectiveButton;
53 protected Button allowOverrideShowChecklistButton;
54
55 final String SHOW = Messages.GeneralPreference_yes;
56 final String DO_NOT_SHOW = Messages.GeneralPreference_no;
57 /**
58 * {@inheritDoc}
59 */
60 @Override
61 protected Control createContents(Composite parent) {
62 getValues();
63 final Composite composite = createComposite(parent);
64
65 GridData gridData = createTextGridData();
66
67 Label separator= new Label(composite, SWT.HORIZONTAL | SWT.SEPARATOR);
68 separator.setLayoutData(gridData);
69 separator.setVisible(false);
70
71 showIOMenuButton = createBooleanCombo(composite, SHOW, DO_NOT_SHOW, PreferencePredicate.ShowImportExportMenu, "Show Export/Import Menu",
72 isAdminPreference);
73
74 showIOMenuButton.addSelectionListener(this);
75
76
77 if (isAdminPreference){
78 allowOverrideShowIOMenuButton = createAllowOverrideButton(composite);
79
80
81 allowOverrideShowIOMenuButton.addSelectionListener(new SelectionAdapter(){
82 @Override
83 public void widgetSelected(SelectionEvent e) {
84 isAllowOverrideShowIOMenu = allowOverrideShowIOMenuButton.getSelection();
85 setApply(true);
86 }
87 });
88 }
89
90
91 showChecklistPerspectiveButton = createBooleanCombo(composite, SHOW, DO_NOT_SHOW, PreferencePredicate.ShowChecklistPerspective, "Set Checklist Perspective as Default Perspective",
92 isAdminPreference);
93
94 showChecklistPerspectiveButton.addSelectionListener(this);
95
96
97 if (isAdminPreference){
98 allowOverrideShowChecklistButton = createAllowOverrideButton(composite);
99 allowOverrideShowChecklistButton.addSelectionListener(new SelectionAdapter(){
100 @Override
101 public void widgetSelected(SelectionEvent e) {
102 isAllowOverrideShowCheckListPerspective = allowOverrideShowChecklistButton.getSelection();
103 setApply(true);
104 }
105 });
106 }
107
108
109 if(!isAdminPreference){
110 if (!isAllowOverrideShowIOMenu){
111 showIOMenuButton.setEnabled(false);
112
113 }
114 if (!isAllowOverrideShowCheckListPerspective){
115 showChecklistPerspectiveButton.setEnabled(false);
116
117 }
118
119 }
120
121 setSelections();
122 return composite;
123 }
124
125
126
127 @Override
128 public boolean performOk() {
129 if (!isApply()){
130 return true;
131 }
132 if (isAllowOverrideShowCheckListPerspective){
133 if (isShowCheckListPerspective != null){
134 PreferencesUtil.setBooleanValue(PreferencePredicate.ShowChecklistPerspective.getKey(), isShowCheckListPerspective);
135 }
136 PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowChecklistPerspective.getKey()), isOverrideShowCheckListPerspective);
137
138
139 }
140 if (isAllowOverrideShowIOMenu){
141 if (isShowIOMenu != null){
142 PreferencesUtil.setBooleanValue(PreferencePredicate.ShowImportExportMenu.getKey(), isShowIOMenu);
143 }
144 PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowImportExportMenu.getKey()), isOverrideShowIOMenu);
145 }
146
147
148
149 return true;
150 }
151 @Override
152 protected void getValues(){
153 isAdminPreference = false;
154
155 CdmPreferenceCache cache = CdmPreferenceCache.instance();
156 isOverrideShowIOMenu = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowImportExportMenu.getKey()), true) != null?
157 PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowImportExportMenu.getKey()), true): false;
158 if (isOverrideShowIOMenu){
159 isShowIOMenu = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowImportExportMenu.getKey(), true);
160 }
161
162
163 PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowImportExportMenu);
164 CdmPreference pref = cache.findBestMatching(key);
165 if (pref != null){
166 isAllowOverrideShowIOMenu = pref.isAllowOverride();
167 }else{
168 isAllowOverrideShowIOMenu = true;
169 }
170
171 isOverrideShowCheckListPerspective = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowChecklistPerspective.getKey()), true) != null? PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowChecklistPerspective.getKey()), true): false;
172 if (isOverrideShowCheckListPerspective){
173 isShowCheckListPerspective = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowChecklistPerspective.getKey(), true);
174 }
175
176
177 key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowChecklistPerspective);
178 pref = cache.findBestMatching(key);
179 if (pref != null){
180 isAllowOverrideShowCheckListPerspective = pref.isAllowOverride();
181 }else{
182 isAllowOverrideShowCheckListPerspective = true;
183 }
184
185
186 }
187
188
189
190 /**
191 * {@inheritDoc}
192 */
193 @Override
194 public void widgetSelected(SelectionEvent e) {
195
196 if (e.getSource().equals(this.showIOMenuButton)) {
197 String text = showIOMenuButton.getText();
198 if (text.startsWith(Messages.Preference_Use_Default)){
199 isOverrideShowIOMenu = false;
200 isShowIOMenu = null;
201
202 }else if (text.equals(SHOW)){
203 isShowIOMenu = true;
204 isOverrideShowIOMenu = true;
205
206 }else{
207 isShowIOMenu = false;
208 isOverrideShowIOMenu = true;
209 }
210 }
211 if (e.getSource().equals(this.showChecklistPerspectiveButton)) {
212 String text = showChecklistPerspectiveButton.getText();
213 if (text.startsWith(Messages.Preference_Use_Default)){
214 isOverrideShowCheckListPerspective = false;
215 isShowCheckListPerspective = null;
216
217 }else if (text.equals(SHOW)){
218 isShowCheckListPerspective = true;
219 isOverrideShowCheckListPerspective = true;
220 }else{
221 isShowCheckListPerspective = false;
222 isOverrideShowCheckListPerspective = true;
223 }
224 }
225
226 this.setSelections();
227 this.setApply(true);
228
229
230 }
231
232
233
234 /**
235 * {@inheritDoc}
236 */
237 @Override
238 public void widgetDefaultSelected(SelectionEvent e) {
239 // TODO Auto-generated method stub
240
241 }
242
243 @Override
244 protected void performDefaults() {
245
246
247 isOverrideShowCheckListPerspective = false;
248 isShowCheckListPerspective = null;
249
250 isOverrideShowIOMenu = false;
251 isShowIOMenu = null;
252 setSelections();
253 setApply(true);
254 }
255
256 protected void setSelections(){
257 if (isShowIOMenu == null || (!isOverrideShowIOMenu && !isAdminPreference)){
258 showIOMenuButton.select(0);
259 // if (isAdminPreference){
260 // allowOverrideShowIOMenuButton.setEnabled(false);
261 // }
262 }else{
263 // if (isAdminPreference){
264 // allowOverrideShowIOMenuButton.setEnabled(true);
265 // }
266 if (isShowIOMenu){
267 showIOMenuButton.select(1);
268 }else{
269 showIOMenuButton.select(2);
270 }
271 }
272
273 if (isShowCheckListPerspective == null || (!isOverrideShowCheckListPerspective && !isAdminPreference)){
274 showChecklistPerspectiveButton.select(0);
275 }else{
276 if (isShowCheckListPerspective){
277 showChecklistPerspectiveButton.select(1);
278 }else{
279 showChecklistPerspectiveButton.select(2);
280 }
281 }
282
283
284
285 if (isAdminPreference){
286 allowOverrideShowIOMenuButton.setSelection(isAllowOverrideShowIOMenu);
287 allowOverrideShowChecklistButton.setSelection(isAllowOverrideShowCheckListPerspective);
288
289 }
290 }
291
292 }