2 * Copyright (C) 2018 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
.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
;
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
;
34 public class GeneralPreferencePage
extends CdmPreferencePage
implements SelectionListener
{
37 protected Boolean isShowIOMenu
;
38 // protected boolean isShowMediaView;
39 protected Boolean isShowCheckListPerspective
;
41 protected boolean isAllowOverrideShowIOMenu
;
42 protected boolean isAllowOverrideShowMediaView
;
43 protected boolean isAllowOverrideShowCheckListPerspective
;
45 protected boolean isOverrideShowIOMenu
;
46 protected boolean isOverrideShowMediaView
;
47 protected boolean isOverrideShowCheckListPerspective
;
50 protected Combo showIOMenuButton
;
51 protected Button allowOverrideShowIOMenuButton
;
52 protected Combo showChecklistPerspectiveButton
;
53 protected Button allowOverrideShowChecklistButton
;
55 final String SHOW
= Messages
.GeneralPreference_yes
;
56 final String DO_NOT_SHOW
= Messages
.GeneralPreference_no
;
61 protected Control
createContents(Composite parent
) {
63 final Composite composite
= createComposite(parent
);
65 GridData gridData
= createTextGridData();
67 Label separator
= new Label(composite
, SWT
.HORIZONTAL
| SWT
.SEPARATOR
);
68 separator
.setLayoutData(gridData
);
69 separator
.setVisible(false);
71 showIOMenuButton
= createBooleanCombo(composite
, SHOW
, DO_NOT_SHOW
, PreferencePredicate
.ShowImportExportMenu
, "Show Export/Import Menu",
74 showIOMenuButton
.addSelectionListener(this);
77 if (isAdminPreference
){
78 allowOverrideShowIOMenuButton
= createAllowOverrideButton(composite
);
81 allowOverrideShowIOMenuButton
.addSelectionListener(new SelectionAdapter(){
83 public void widgetSelected(SelectionEvent e
) {
84 isAllowOverrideShowIOMenu
= allowOverrideShowIOMenuButton
.getSelection();
91 showChecklistPerspectiveButton
= createBooleanCombo(composite
, SHOW
, DO_NOT_SHOW
, PreferencePredicate
.ShowChecklistPerspective
, "Set Checklist Perspective as Default Perspective",
94 showChecklistPerspectiveButton
.addSelectionListener(this);
97 if (isAdminPreference
){
98 allowOverrideShowChecklistButton
= createAllowOverrideButton(composite
);
99 allowOverrideShowChecklistButton
.addSelectionListener(new SelectionAdapter(){
101 public void widgetSelected(SelectionEvent e
) {
102 isAllowOverrideShowCheckListPerspective
= allowOverrideShowChecklistButton
.getSelection();
109 if(!isAdminPreference
){
110 if (!isAllowOverrideShowIOMenu
){
111 showIOMenuButton
.setEnabled(false);
114 if (!isAllowOverrideShowCheckListPerspective
){
115 showChecklistPerspectiveButton
.setEnabled(false);
128 public boolean performOk() {
132 if (isAllowOverrideShowCheckListPerspective
){
133 if (isShowCheckListPerspective
!= null){
134 PreferencesUtil
.setBooleanValue(PreferencePredicate
.ShowChecklistPerspective
.getKey(), isShowCheckListPerspective
);
136 PreferencesUtil
.setBooleanValue(PreferencesUtil
.prefOverrideKey(PreferencePredicate
.ShowChecklistPerspective
.getKey()), isOverrideShowCheckListPerspective
);
140 if (isAllowOverrideShowIOMenu
){
141 if (isShowIOMenu
!= null){
142 PreferencesUtil
.setBooleanValue(PreferencePredicate
.ShowImportExportMenu
.getKey(), isShowIOMenu
);
144 PreferencesUtil
.setBooleanValue(PreferencesUtil
.prefOverrideKey(PreferencePredicate
.ShowImportExportMenu
.getKey()), isOverrideShowIOMenu
);
152 protected void getValues(){
153 isAdminPreference
= false;
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);
163 PrefKey key
= CdmPreference
.NewKey(PreferenceSubject
.NewTaxEditorInstance(), PreferencePredicate
.ShowImportExportMenu
);
164 CdmPreference pref
= cache
.findBestMatching(key
);
166 isAllowOverrideShowIOMenu
= pref
.isAllowOverride();
168 isAllowOverrideShowIOMenu
= true;
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);
177 key
= CdmPreference
.NewKey(PreferenceSubject
.NewTaxEditorInstance(), PreferencePredicate
.ShowChecklistPerspective
);
178 pref
= cache
.findBestMatching(key
);
180 isAllowOverrideShowCheckListPerspective
= pref
.isAllowOverride();
182 isAllowOverrideShowCheckListPerspective
= true;
194 public void widgetSelected(SelectionEvent e
) {
196 if (e
.getSource().equals(this.showIOMenuButton
)) {
197 String text
= showIOMenuButton
.getText();
198 if (text
.startsWith(Messages
.Preference_Use_Default
)){
199 isOverrideShowIOMenu
= false;
202 }else if (text
.equals(SHOW
)){
204 isOverrideShowIOMenu
= true;
207 isShowIOMenu
= false;
208 isOverrideShowIOMenu
= true;
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;
217 }else if (text
.equals(SHOW
)){
218 isShowCheckListPerspective
= true;
219 isOverrideShowCheckListPerspective
= true;
221 isShowCheckListPerspective
= false;
222 isOverrideShowCheckListPerspective
= true;
226 this.setSelections();
238 public void widgetDefaultSelected(SelectionEvent e
) {
239 // TODO Auto-generated method stub
244 protected void performDefaults() {
247 isOverrideShowCheckListPerspective
= false;
248 isShowCheckListPerspective
= null;
250 isOverrideShowIOMenu
= false;
256 protected void setSelections(){
257 if (isShowIOMenu
== null || (!isOverrideShowIOMenu
&& !isAdminPreference
)){
258 showIOMenuButton
.select(0);
259 // if (isAdminPreference){
260 // allowOverrideShowIOMenuButton.setEnabled(false);
263 // if (isAdminPreference){
264 // allowOverrideShowIOMenuButton.setEnabled(true);
267 showIOMenuButton
.select(1);
269 showIOMenuButton
.select(2);
273 if (isShowCheckListPerspective
== null || (!isOverrideShowCheckListPerspective
&& !isAdminPreference
)){
274 showChecklistPerspectiveButton
.select(0);
276 if (isShowCheckListPerspective
){
277 showChecklistPerspectiveButton
.select(1);
279 showChecklistPerspectiveButton
.select(2);
285 if (isAdminPreference
){
286 allowOverrideShowIOMenuButton
.setSelection(isAllowOverrideShowIOMenu
);
287 allowOverrideShowChecklistButton
.setSelection(isAllowOverrideShowCheckListPerspective
);