5a0cbc18c2708a0a9611c33fa555db9df452bdf0
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / databaseAdmin / preferencePage / ChecklistEditorGeneralPreference.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.SWT;
12 import org.eclipse.swt.custom.CLabel;
13 import org.eclipse.swt.events.SelectionAdapter;
14 import org.eclipse.swt.events.SelectionEvent;
15 import org.eclipse.swt.layout.GridLayout;
16 import org.eclipse.swt.widgets.Button;
17 import org.eclipse.swt.widgets.Composite;
18 import org.eclipse.swt.widgets.Control;
19
20 import eu.etaxonomy.cdm.api.application.ICdmRepository;
21 import eu.etaxonomy.cdm.api.service.IPreferenceService;
22 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
23 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
24 import eu.etaxonomy.taxeditor.l10n.Messages;
25 import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
26 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
27 import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
28 import eu.etaxonomy.taxeditor.store.CdmStore;
29 import eu.etaxonomy.taxeditor.ui.element.CommandHandlerButton;
30
31 /**
32 * @author a.oppermann
33 * @date 21.07.2014
34 *
35 */
36 public class ChecklistEditorGeneralPreference extends CdmPreferencePage implements IE4AdminPreferencePage {
37
38 boolean isEditorActivated;
39 boolean allowOverride;
40 boolean isShowRank;
41 boolean isSortByVocabularyOrder;
42 boolean isShowSymbol;
43 boolean isShowIdInVocabulary;
44 Composite child ;
45
46 @Override
47 protected Control createContents(Composite parent) {
48
49 Composite composite = new Composite(parent, SWT.NULL);
50 composite.setLayout(new GridLayout());
51 CdmPreference pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.DistributionEditorActivated);
52 if (pref != null){
53 isEditorActivated = Boolean.valueOf(pref.getValue());
54 allowOverride = pref.isAllowOverride();
55 }else{
56 isEditorActivated = false;
57 }
58
59 final Button activateCheckButton = new Button(composite, SWT.CHECK);
60 activateCheckButton.setText(Messages.ChecklistEditorGeneralPreference_enable);
61 activateCheckButton.setSelection(isEditorActivated);
62 activateCheckButton.addSelectionListener(new SelectionAdapter(){
63 @Override
64 public void widgetSelected(SelectionEvent e) {
65 isEditorActivated = activateCheckButton.getSelection();
66
67 if(isEditorActivated){
68 child.setVisible(true);
69 child.setEnabled(true);
70 }else{
71 child.setVisible(false);
72 child.setEnabled(false);
73 }
74
75 }
76 });
77 final Button allowOverrideCheckButton = new Button(composite, SWT.CHECK);
78 allowOverrideCheckButton.setText(Messages.ChecklistEditorGeneralPreference_allowOverride);
79 allowOverrideCheckButton.setSelection(allowOverride);
80 allowOverrideCheckButton.addSelectionListener(new SelectionAdapter(){
81 @Override
82 public void widgetSelected(SelectionEvent e) {
83 allowOverride = allowOverrideCheckButton.getSelection();
84
85 }
86 });
87
88 child = new Composite(composite, SWT.NULL);
89 child.setLayout(new GridLayout());
90 child.setVisible(isEditorActivated);
91
92
93
94 final CLabel label = new CLabel(child, SWT.NULL);
95 label.setText(Messages.ChecklistEditorGeneralPreference_open_wizard);
96
97
98
99 final CommandHandlerButton button_openWizard = new CommandHandlerButton(child, SWT.PUSH,
100 "eu.etaxonomy.taxeditor.store.open.OpenDistributionEditorWizardAdminHandler");
101
102 button_openWizard.setText(Messages.ChecklistEditorGeneralPreference_open_distribution_selection);
103
104 // Table table = new Table
105
106 final Button showIdInVocabulary = new Button(child, SWT.CHECK);
107 pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowIdInVocabulary);
108 if (pref != null){
109 isShowIdInVocabulary = Boolean.valueOf(pref.getValue());
110 }else{
111 isShowIdInVocabulary = false;
112 }
113 showIdInVocabulary.setText(Messages.ChecklistEditorGeneralPreference_show_id_in_voc);
114 showIdInVocabulary.setSelection(isShowIdInVocabulary);
115 showIdInVocabulary.addSelectionListener(new SelectionAdapter(){
116 @Override
117 public void widgetSelected(SelectionEvent e) {
118 isShowIdInVocabulary = showIdInVocabulary.getSelection();
119
120 }
121 });
122
123 final Button showSymbol = new Button(child, SWT.CHECK);
124 pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowSymbol);
125 if (pref != null){
126 isShowSymbol = Boolean.valueOf(pref.getValue());
127 }else{
128 isShowSymbol = false;
129 }
130
131 showSymbol.setText(Messages.ChecklistEditorGeneralPreference_show_symbol);
132 showSymbol.setSelection(isShowSymbol);
133 showSymbol.addSelectionListener(new SelectionAdapter(){
134 @Override
135 public void widgetSelected(SelectionEvent e) {
136 isShowSymbol = showSymbol.getSelection();
137 }
138 });
139 // PreferencesUtil.recursiveSetEnabled(button_openWizard, CdmStore.isActive());
140 pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.ShowRankInDistributionEditor);
141 if (pref != null){
142 isShowRank = Boolean.valueOf(pref.getValue());
143 }else{
144 isShowRank = false;
145 }
146
147 final Button activateRankButton = new Button(child, SWT.CHECK);
148 activateRankButton.setText(Messages.ChecklistEditorGeneralPreference_show_rank);
149 activateRankButton.setSelection(isShowRank);
150 activateRankButton.addSelectionListener(new SelectionAdapter(){
151 @Override
152 public void widgetSelected(SelectionEvent e) {
153 isShowRank = activateRankButton.getSelection();
154 }
155 });
156 final Button sortNamedAreaByVocabularyOrder = new Button(child, SWT.CHECK);
157
158 pref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.AreasSortedByIdInVocabulary);
159 if (pref != null){
160 isSortByVocabularyOrder = Boolean.valueOf(pref.getValue());
161 }else{
162 isSortByVocabularyOrder = false;
163 }
164
165 sortNamedAreaByVocabularyOrder.setText(Messages.ChecklistEditorGeneralPreference_sort_areas);
166 sortNamedAreaByVocabularyOrder.setSelection(isSortByVocabularyOrder);
167 sortNamedAreaByVocabularyOrder.addSelectionListener(new SelectionAdapter(){
168 @Override
169 public void widgetSelected(SelectionEvent e) {
170 isSortByVocabularyOrder = sortNamedAreaByVocabularyOrder.getSelection();
171 }
172 });
173
174 if(isEditorActivated){
175 child.setEnabled(true);
176 }else{
177 child.setEnabled(false);
178 }
179
180 return composite;
181 }
182
183 @Override
184 public boolean performOk() {
185 ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
186 if (controller == null){
187 return false;
188 }
189 IPreferenceService service = controller.getPreferenceService();
190
191 CdmPreference pref = CdmPreference.NewDatabaseInstance( PreferencePredicate.DistributionEditorActivated, Boolean.toString(isEditorActivated));
192 //ToDo
193 pref.setAllowOverride(allowOverride);
194 service.set(pref);
195
196 pref = CdmPreference.NewDatabaseInstance( PreferencePredicate.ShowIdInVocabulary, Boolean.toString(isShowIdInVocabulary));
197 //ToDo
198 pref.setAllowOverride(true);
199 service.set(pref);
200
201 pref = CdmPreference.NewDatabaseInstance( PreferencePredicate.ShowSymbol, Boolean.toString(isShowSymbol));
202 //ToDo
203 pref.setAllowOverride(true);
204 service.set(pref);
205
206 pref = CdmPreference.NewDatabaseInstance( PreferencePredicate.ShowRankInDistributionEditor, Boolean.toString(isShowRank));
207 //ToDo
208 pref.setAllowOverride(true);
209 service.set(pref);
210 pref = CdmPreference.NewDatabaseInstance( PreferencePredicate.AreasSortedByIdInVocabulary, Boolean.toString(isSortByVocabularyOrder));
211 //ToDo
212 pref.setAllowOverride(true);
213 service.set(pref);
214
215 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.DISTRIBUTION_AREA_PREFRENCES_ACTIVE, isEditorActivated);
216 PreferencesUtil.setSortNamedAreasByOrderInVocabulary(isSortByVocabularyOrder);
217 PreferencesUtil.setShowRankInChecklistEditor(isShowRank);
218 PreferencesUtil.setShowSymbolInChecklistEditor(isShowSymbol);
219 PreferencesUtil.setShowIdInVocabularyInChecklistEditor(isShowIdInVocabulary);
220 return true;
221 }
222
223 }