add new class openDistributionPerAreaStatusAdminWizardHandler - continue
[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 protected Boolean isShowCheckListPerspective;
37
38 protected boolean isAllowOverrideShowMediaView;
39 protected boolean isAllowOverrideShowCheckListPerspective;
40
41 protected boolean isOverrideShowMediaView;
42 protected boolean isOverrideShowCheckListPerspective;
43
44 protected Combo showChecklistPerspectiveButton;
45 protected Button allowOverrideShowChecklistButton;
46
47 @Override
48 protected Control createContents(Composite parent) {
49 getValues();
50 final Composite composite = createComposite(parent);
51
52 GridData gridData = createTextGridData();
53
54 Label separator= new Label(composite, SWT.HORIZONTAL | SWT.SEPARATOR);
55 separator.setLayoutData(gridData);
56 separator.setVisible(false);
57
58
59
60 showChecklistPerspectiveButton = createBooleanCombo(composite, SHOW, DO_NOT_SHOW, PreferencePredicate.ShowChecklistPerspective, "Set Checklist Perspective as Default Perspective",
61 isAdminPreference);
62
63 showChecklistPerspectiveButton.addSelectionListener(this);
64
65
66 if (isAdminPreference){
67 allowOverrideShowChecklistButton = createAllowOverrideButton(composite);
68 allowOverrideShowChecklistButton.addSelectionListener(new SelectionAdapter(){
69 @Override
70 public void widgetSelected(SelectionEvent e) {
71 isAllowOverrideShowCheckListPerspective = allowOverrideShowChecklistButton.getSelection();
72 setApply(true);
73 }
74 });
75 }
76
77 setSelections();
78 return composite;
79 }
80
81
82
83 @Override
84 public boolean performOk() {
85 if (!isApply()){
86 return true;
87 }
88 if (isAllowOverrideShowCheckListPerspective){
89 if (isShowCheckListPerspective != null){
90 PreferencesUtil.setBooleanValue(PreferencePredicate.ShowChecklistPerspective.getKey(), isShowCheckListPerspective);
91 }
92 PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowChecklistPerspective.getKey()), isOverrideShowCheckListPerspective);
93
94
95 }
96 return true;
97 }
98
99 @Override
100 protected void getValues(){
101 isAdminPreference = false;
102
103 CdmPreferenceCache cache = CdmPreferenceCache.instance();
104 isOverrideShowCheckListPerspective = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowChecklistPerspective.getKey()), true) != null? PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.ShowChecklistPerspective.getKey()), true): false;
105 if (isOverrideShowCheckListPerspective){
106 isShowCheckListPerspective = PreferencesUtil.getBooleanValue(PreferencePredicate.ShowChecklistPerspective.getKey(), true);
107 }
108
109 PrefKey key = CdmPreference.NewKey(PreferenceSubject.NewTaxEditorInstance(), PreferencePredicate.ShowChecklistPerspective);
110 CdmPreference pref = cache.findBestMatching(key);
111 if (pref != null){
112 isAllowOverrideShowCheckListPerspective = pref.isAllowOverride();
113 }else{
114 isAllowOverrideShowCheckListPerspective = true;
115 }
116
117
118 }
119
120 @Override
121 public void widgetSelected(SelectionEvent e) {
122 if (e.getSource().equals(this.showChecklistPerspectiveButton)) {
123 String text = showChecklistPerspectiveButton.getText();
124 if (text.startsWith(Messages.Preference_Use_Default)){
125 isOverrideShowCheckListPerspective = false;
126 isShowCheckListPerspective = null;
127
128 }else if (text.equals(SHOW)){
129 isShowCheckListPerspective = true;
130 isOverrideShowCheckListPerspective = true;
131 }else{
132 isShowCheckListPerspective = false;
133 isOverrideShowCheckListPerspective = true;
134 }
135 }
136
137 this.setSelections();
138 this.setApply(true);
139
140
141 }
142
143
144
145 /**
146 * {@inheritDoc}
147 */
148 @Override
149 public void widgetDefaultSelected(SelectionEvent e) {
150 // TODO Auto-generated method stub
151
152 }
153
154 @Override
155 protected void performDefaults() {
156 isOverrideShowCheckListPerspective = false;
157 isShowCheckListPerspective = null;
158
159 setSelections();
160 setApply(true);
161 }
162
163 protected void setSelections(){
164 if (isShowCheckListPerspective == null || (!isOverrideShowCheckListPerspective && !isAdminPreference)){
165 showChecklistPerspectiveButton.select(0);
166 }else{
167 if (isShowCheckListPerspective){
168 showChecklistPerspectiveButton.select(1);
169 }else{
170 showChecklistPerspectiveButton.select(2);
171 }
172 }
173
174 if (isAdminPreference){
175 allowOverrideShowChecklistButton.setSelection(isAllowOverrideShowCheckListPerspective);
176 }
177 }
178
179 }