ref #7849: do not save preferences if page was not edited
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / databaseAdmin / preferencePage / ChecklistEditorGeneralAdminPreference.java
1 /**
2 * Copyright (C) 2014 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.databaseAdmin.preferencePage;
10
11 import org.eclipse.swt.widgets.Composite;
12 import org.eclipse.swt.widgets.Control;
13
14 import eu.etaxonomy.cdm.api.application.ICdmRepository;
15 import eu.etaxonomy.cdm.api.service.IPreferenceService;
16 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
17 import eu.etaxonomy.taxeditor.preference.ChecklistEditorGeneralPreference;
18 import eu.etaxonomy.taxeditor.preference.EditorPreferencePredicate;
19 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
20 import eu.etaxonomy.taxeditor.store.CdmStore;
21
22 /**
23 * @author a.oppermann
24 * @date 21.07.2014
25 *
26 */
27 public class ChecklistEditorGeneralAdminPreference extends ChecklistEditorGeneralPreference implements IE4AdminPreferencePage {
28
29
30
31
32
33 @Override
34 protected Control createContents(Composite parent) {
35
36 // allowOverride = distributionPref.isAllowOverride();
37 //
38 // final Button allowOverrideCheckButton = new Button(parent, SWT.CHECK);
39 // allowOverrideCheckButton.setText(Messages.ChecklistEditorGeneralPreference_allowOverride);
40 // allowOverrideCheckButton.setSelection(allowOverride);
41 // allowOverrideCheckButton.addSelectionListener(new SelectionAdapter(){
42 // @Override
43 // public void widgetSelected(SelectionEvent e) {
44 // allowOverride = allowOverrideCheckButton.getSelection();
45 // }
46 // });
47 //
48 return super.createContents(parent);
49 //
50 // final Button activateCheckButton = new Button(composite, SWT.CHECK);
51 // activateCheckButton.setText(Messages.ChecklistEditorGeneralPreference_enable);
52 // activateCheckButton.setSelection(isEditorActivated);
53 // activateCheckButton.addSelectionListener(new SelectionAdapter(){
54 // @Override
55 // public void widgetSelected(SelectionEvent e) {
56 // isEditorActivated = activateCheckButton.getSelection();
57 //
58 // if(isEditorActivated){
59 // child.setVisible(true);
60 // child.setEnabled(true);
61 // }else{
62 // child.setVisible(false);
63 // child.setEnabled(false);
64 // }
65 //
66 // }
67 // });
68 //
69 // child = new Composite(composite, SWT.NULL);
70 // child.setLayout(new GridLayout());
71 // child.setVisible(isEditorActivated);
72 //
73 //
74 //
75 ////
76 //
77 //
78 ////
79 //// final CommandHandlerButton button_openWizard = new CommandHandlerButton(child, SWT.PUSH,
80 //// "eu.etaxonomy.taxeditor.store.open.OpenDistributionEditorWizardAdminHandler");
81 ////
82 //// button_openWizard.setText(Messages.ChecklistEditorGeneralPreference_open_distribution_selection);
83 //
84 //// Table table = new Table
85 // final CLabel description = new CLabel(child, SWT.NULL);
86 // description.setText(Messages.ChecklistEditorGeneralPreference_Configure_display_of_Areas);
87 //
88 //
89 // GridData gridData = new GridData();
90 // gridData = new GridData(GridData.BEGINNING, GridData.CENTER, true, false);
91 // gridData.horizontalIndent = 5;
92 //// classificationSelection.setLayoutData(gridData);
93 //
94 //
95 // final Button showIdInVocabulary = new Button(child, SWT.RADIO);
96 // CdmPreference pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowIdInVocabulary);
97 // if (pref != null){
98 // isShowIdInVocabulary = Boolean.valueOf(pref.getValue());
99 // }else{
100 // isShowIdInVocabulary = false;
101 // }
102 // showIdInVocabulary.setText(Messages.ChecklistEditorGeneralPreference_show_id_in_voc);
103 // showIdInVocabulary.setSelection(isShowIdInVocabulary);
104 // showIdInVocabulary.addSelectionListener(new SelectionAdapter(){
105 // @Override
106 // public void widgetSelected(SelectionEvent e) {
107 // isShowIdInVocabulary = showIdInVocabulary.getSelection();
108 //
109 // }
110 // });
111 // final Button showSymbol1 = new Button(child, SWT.RADIO);
112 // pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowSymbol1);
113 // if (pref != null){
114 // isShowSymbol1 = Boolean.valueOf(pref.getValue());
115 // }else{
116 // isShowSymbol1 = false;
117 // }
118 // showSymbol1.setText(Messages.ChecklistEditorGeneralPreference_show_symbol1);
119 // showSymbol1.setSelection(isShowSymbol1);
120 // showSymbol1.addSelectionListener(new SelectionAdapter(){
121 // @Override
122 // public void widgetSelected(SelectionEvent e) {
123 // isShowSymbol1 = showSymbol1.getSelection();
124 //
125 // }
126 // });
127 // final Button showSymbol2 = new Button(child, SWT.RADIO);
128 // pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowSymbol2);
129 // if (pref != null){
130 // isShowSymbol2 = Boolean.valueOf(pref.getValue());
131 // }else{
132 // isShowSymbol2 = false;
133 // }
134 // showSymbol2.setText(Messages.ChecklistEditorGeneralPreference_show_symbol2);
135 // showSymbol2.setSelection(isShowSymbol2);
136 // showSymbol2.addSelectionListener(new SelectionAdapter(){
137 // @Override
138 // public void widgetSelected(SelectionEvent e) {
139 // isShowSymbol2 = showSymbol2.getSelection();
140 //
141 // }
142 // });
143 // final Button showTitle = new Button(child, SWT.RADIO);
144 // isShowTitle = !(isShowIdInVocabulary || isShowSymbol1 || isShowSymbol2);
145 //
146 // showTitle.setText(Messages.ChecklistEditorGeneralPreference_show_title);
147 // showTitle.setSelection(isShowTitle);
148 // showTitle.addSelectionListener(new SelectionAdapter(){
149 // @Override
150 // public void widgetSelected(SelectionEvent e) {
151 // isShowTitle = showTitle.getSelection();
152 //
153 // }
154 // });
155 //
156 // final Label seperator1 = new Label(child, SWT.HORIZONTAL | SWT.SEPARATOR);
157 // final Button sortNamedAreaByVocabularyOrder = new Button(child, SWT.CHECK);
158 //
159 // pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.AreasSortedByIdInVocabulary);
160 // if (pref != null){
161 // isSortByVocabularyOrder = Boolean.valueOf(pref.getValue());
162 // }else{
163 // isSortByVocabularyOrder = false;
164 // }
165 //
166 // sortNamedAreaByVocabularyOrder.setText(Messages.ChecklistEditorGeneralPreference_sort_areas);
167 // sortNamedAreaByVocabularyOrder.setSelection(isSortByVocabularyOrder);
168 // sortNamedAreaByVocabularyOrder.addSelectionListener(new SelectionAdapter(){
169 // @Override
170 // public void widgetSelected(SelectionEvent e) {
171 // isSortByVocabularyOrder = sortNamedAreaByVocabularyOrder.getSelection();
172 // }
173 // });
174 // final Label seperator2 = new Label(child, SWT.HORIZONTAL | SWT.SEPARATOR);
175 // final CLabel descriptionStatus = new CLabel(child, SWT.NULL);
176 // descriptionStatus.setText(Messages.ChecklistEditorGeneralPreference_STATUS_DISPLAY_TEXT);
177 // final Button showSymbol = new Button(child, SWT.CHECK);
178 // pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowSymbolForStatus);
179 // if (pref != null){
180 // isShowSymbol = Boolean.valueOf(pref.getValue());
181 // }else{
182 // isShowSymbol = false;
183 // }
184 //
185 // showSymbol.setText(Messages.ChecklistEditorGeneralPreference_show_symbol);
186 // showSymbol.setSelection(isShowSymbol);
187 // showSymbol.addSelectionListener(new SelectionAdapter(){
188 // @Override
189 // public void widgetSelected(SelectionEvent e) {
190 // isShowSymbol = showSymbol.getSelection();
191 // }
192 // });
193 //// PreferencesUtil.recursiveSetEnabled(button_openWizard, CdmStore.isActive());
194 // pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowRankInDistributionEditor);
195 // if (pref != null){
196 // isShowRank = Boolean.valueOf(pref.getValue());
197 // }else{
198 // isShowRank = false;
199 // }
200 //
201 // final Button activateRankButton = new Button(child, SWT.CHECK);
202 // activateRankButton.setText(Messages.ChecklistEditorGeneralPreference_show_rank);
203 // activateRankButton.setSelection(isShowRank);
204 // activateRankButton.addSelectionListener(new SelectionAdapter(){
205 // @Override
206 // public void widgetSelected(SelectionEvent e) {
207 // isShowRank = activateRankButton.getSelection();
208 // }
209 // });
210 //
211 //
212 // if(isEditorActivated){
213 // child.setEnabled(true);
214 // }else{
215 // child.setEnabled(false);
216 // }
217
218 // return composite;
219 }
220
221 @Override
222 public boolean performOk() {
223 if (!isValid()){
224 return true;
225 }
226 ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
227 if (controller == null){
228 return false;
229 }
230 IPreferenceService service = controller.getPreferenceService();
231
232 CdmPreference pref = CdmPreference.NewTaxEditorInstance( EditorPreferencePredicate.DistributionEditorActivated, Boolean.toString(isEditorActivated));
233 //ToDo
234 pref.setAllowOverride(this.allowOverrideActivated);
235 service.set(pref);
236
237 pref = CdmPreference.NewTaxEditorInstance( EditorPreferencePredicate.DisplayOfAreasInDistributionEditor, this.displayArea);
238 //ToDo
239 pref.setAllowOverride(this.allowOverrideAreaDisplay);
240 service.set(pref);
241
242
243
244 pref = CdmPreference.NewTaxEditorInstance( EditorPreferencePredicate.DisplayOfStatus, this.displayStatus);
245 //ToDo
246 pref.setAllowOverride(this.allowOverrideStatusDisplay);
247 service.set(pref);
248
249 pref = CdmPreference.NewTaxEditorInstance( EditorPreferencePredicate.ShowRankInDistributionEditor, Boolean.toString(isShowRank));
250 //ToDo
251 pref.setAllowOverride(this.allowOverrideRank);
252 service.set(pref);
253 pref = CdmPreference.NewTaxEditorInstance( EditorPreferencePredicate.AreasSortedByIdInVocabulary, Boolean.toString(isSortByVocabularyOrder));
254 //ToDo
255 pref.setAllowOverride(this.allowOverrideOrderAreas);
256 service.set(pref);
257
258
259 PreferencesUtil.updateDBPreferences();
260
261 return true;
262 }
263
264 @Override
265 public void init() {
266 setPreferenceStore(PreferencesUtil.getPreferenceStore());
267 distributionEditorPref = PreferencesUtil.getPreferenceFromDB(EditorPreferencePredicate.DistributionEditorActivated);
268 if (distributionEditorPref == null){
269 distributionEditorPref = CdmPreference.NewTaxEditorInstance(EditorPreferencePredicate.DistributionEditorActivated, EditorPreferencePredicate.DistributionEditorActivated.getDefaultValue().toString());
270 }
271 isEditorActivated = Boolean.valueOf(distributionEditorPref.getValue());
272 allowOverrideActivated = distributionEditorPref.isAllowOverride();
273 isAdminPreference = true;
274
275 CdmPreference pref = PreferencesUtil.getPreferenceFromDB(EditorPreferencePredicate.DisplayOfAreasInDistributionEditor);
276 if (pref != null){
277 this.displayArea = pref.getValue();
278 this.allowOverrideAreaDisplay = pref.isAllowOverride();
279 }else{
280 this.displayArea = EditorPreferencePredicate.DisplayOfAreasInDistributionEditor.getDefaultValue().toString();
281 this.allowOverrideAreaDisplay = true;
282 }
283
284 pref = PreferencesUtil.getPreferenceFromDB(EditorPreferencePredicate.DisplayOfStatus);
285 if (pref != null){
286 this.displayStatus = pref.getValue();
287 this.allowOverrideStatusDisplay = pref.isAllowOverride();
288 }else{
289 this.displayStatus = EditorPreferencePredicate.DisplayOfStatus.getDefaultValue().toString();
290 this.allowOverrideStatusDisplay = true;
291 }
292
293 pref = PreferencesUtil.getPreferenceFromDB(EditorPreferencePredicate.AreasSortedByIdInVocabulary);
294 if (pref != null){
295 this.isSortByVocabularyOrder = Boolean.valueOf(pref.getValue().toString());
296 this.allowOverrideOrderAreas = pref.isAllowOverride();
297 }else{
298 this.isSortByVocabularyOrder = Boolean.valueOf(EditorPreferencePredicate.AreasSortedByIdInVocabulary.getDefaultValue().toString());
299 this.allowOverrideOrderAreas = true;
300 }
301
302 pref = PreferencesUtil.getPreferenceFromDB(EditorPreferencePredicate.ShowRankInDistributionEditor);
303 if (pref != null){
304 this.isShowRank = Boolean.valueOf(pref.getValue().toString());
305 this.allowOverrideRank = pref.isAllowOverride();
306 }else{
307 this.isShowRank = Boolean.valueOf(EditorPreferencePredicate.ShowRankInDistributionEditor.getDefaultValue().toString());
308 this.allowOverrideRank = true;
309 }
310 commandHandlerString = "eu.etaxonomy.taxeditor.store.open.OpenDistributionEditorWizardAdminHandler";
311 commandHandlerStringStatus = "eu.etaxonomy.taxeditor.store.open.OpenDistributionStatusWizardAdminHandler";
312 setValid(false);
313
314 }
315
316 }