ref #6429: namedetails view configuration in admin preferences
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / databaseAdmin / preferencePage / NameDetailsViewConfiguration.java
1 package eu.etaxonomy.taxeditor.databaseAdmin.preferencePage;
2
3
4 import org.eclipse.swt.SWT;
5 import org.eclipse.swt.custom.CLabel;
6 import org.eclipse.swt.events.SelectionAdapter;
7 import org.eclipse.swt.events.SelectionEvent;
8 import org.eclipse.swt.layout.GridData;
9 import org.eclipse.swt.layout.GridLayout;
10 import org.eclipse.swt.widgets.Button;
11 import org.eclipse.swt.widgets.Composite;
12 import org.eclipse.swt.widgets.Control;
13 import org.eclipse.swt.widgets.Label;
14
15 import eu.etaxonomy.cdm.api.application.ICdmRepository;
16 import eu.etaxonomy.cdm.api.service.IPreferenceService;
17 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
18 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
19 import eu.etaxonomy.taxeditor.l10n.Messages;
20 import eu.etaxonomy.taxeditor.preference.IPreferenceKeys;
21 import eu.etaxonomy.taxeditor.preference.NameDetailsConfigurator;
22 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
23 import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
24 import eu.etaxonomy.taxeditor.store.CdmStore;
25
26
27 public class NameDetailsViewConfiguration extends CdmPreferencePage implements IE4AdminPreferencePage{
28
29 boolean isSimpleDetailsViewActivated;
30
31 Composite dbSettings ;
32 boolean isAllowOverride;
33 boolean isShowTaxon;
34 boolean isShowLSID;
35 boolean isShowNomenclaturalCode;
36 boolean isShowNameCache;
37 boolean isShowAppendedPhrase;
38 boolean isShowRank;
39 boolean isShowEpithets;
40 boolean isShowAuthorCache;
41 boolean isShowAuthorship;
42 boolean isShowNomenclaturalRef;
43 boolean isShowNomenclaturalStatus;
44 boolean isShowProtologue;
45 boolean isShowTypeDesignation;
46 boolean isShowNameRelationship;
47 boolean isShowHybrid;
48 boolean isShowNameApprobiation;
49
50
51 @Override
52 protected Control createContents(Composite parent) {
53 final CLabel description = new CLabel(parent, SWT.NULL);
54 description.setText(Messages.NameDetailsViewConfiguration_description);
55 NameDetailsConfigurator nameDetailsConfig = PreferencesUtil.setPreferredNameDetailsConfiguration(false);
56
57
58 final Button activateCheckButton = new Button(parent, SWT.CHECK);
59 activateCheckButton.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, true, 1, 1));
60 activateCheckButton.setText(Messages.NameDetailsViewConfiguration_activateSimpleDetailsView);
61 isSimpleDetailsViewActivated = nameDetailsConfig.isSimpleDetailsViewActivated();
62 activateCheckButton.setSelection(isSimpleDetailsViewActivated);
63 activateCheckButton.addSelectionListener(new SelectionAdapter(){
64 @Override
65 public void widgetSelected(SelectionEvent e) {
66 isSimpleDetailsViewActivated = activateCheckButton.getSelection();
67 //
68 if(isSimpleDetailsViewActivated){
69 dbSettings.setVisible(true);
70 dbSettings.setEnabled(true);
71 }else{
72 dbSettings.setVisible(false);
73 dbSettings.setEnabled(false);
74 }
75 }
76 });
77
78
79
80 dbSettings = new Composite(parent, SWT.NONE);
81 dbSettings.setLayout(new GridLayout());
82 dbSettings.setVisible(isSimpleDetailsViewActivated);
83 // Table table = new Table(dbSettings,SWT.BORDER | SWT.CHECK);
84 // TableColumn tableColumnValue = new TableColumn(table, SWT.CENTER);
85 //
86 // TableColumn tableColumnAllowOverride = new TableColumn(table, SWT.CENTER);
87
88
89
90 final Button allowLocalPreference = new Button(dbSettings, SWT.CHECK);
91 // boolean isUseLocalPreference = PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.ALLOW_OVERRIDE_NAME_DETAILS);
92 allowLocalPreference.setText(Messages.DatabasePreferencesPage_UseLocalPreferences);
93 isAllowOverride = nameDetailsConfig.isAllowOverride();
94 allowLocalPreference.setSelection(isAllowOverride);
95 allowLocalPreference.addSelectionListener(new SelectionAdapter(){
96 @Override
97 public void widgetSelected(SelectionEvent e) {
98 isAllowOverride = allowLocalPreference.getSelection();
99
100 }
101 });
102 Label separator= new Label(dbSettings, SWT.HORIZONTAL | SWT.SEPARATOR);
103 separator.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
104 final Button showTaxon = new Button(dbSettings, SWT.CHECK);
105 showTaxon.setText(Messages.NameDetailsViewComposite_Show_Taxon);
106 isShowTaxon = nameDetailsConfig.isTaxonSectionActivated();
107 showTaxon.setSelection(isShowTaxon);
108 showTaxon.addSelectionListener(new SelectionAdapter(){
109 @Override
110 public void widgetSelected(SelectionEvent e) {
111 isShowTaxon = showTaxon.getSelection();
112
113 }
114 });
115
116 final Button showLsid = new Button(dbSettings, SWT.CHECK);
117 showLsid.setText(Messages.NameDetailsViewComposite_Show_LSID);
118 isShowLSID = nameDetailsConfig.isLSIDActivated();
119 showLsid.setSelection(isShowLSID);
120 showLsid.addSelectionListener(new SelectionAdapter(){
121 @Override
122 public void widgetSelected(SelectionEvent e) {
123 isShowLSID = showLsid.getSelection();
124
125 }
126 });
127
128 final Button showNomenclaturalCode = new Button(dbSettings, SWT.CHECK);
129 showNomenclaturalCode.setText(Messages.NameDetailsViewComposite_Show_NomenclaturalCode);
130 isShowNomenclaturalCode = nameDetailsConfig.isNomenclaturalCodeActived();
131 showNomenclaturalCode.setSelection(isShowNomenclaturalCode);
132 showNomenclaturalCode.addSelectionListener(new SelectionAdapter(){
133 @Override
134 public void widgetSelected(SelectionEvent e) {
135 isShowNomenclaturalCode = showNomenclaturalCode.getSelection();
136
137 }
138 });
139
140 final Button showNameCache = new Button(dbSettings, SWT.CHECK);
141 showNameCache.setText(Messages.NameDetailsViewComposite_Show_NameCache);
142 isShowNameCache = nameDetailsConfig.isNameCacheActivated();
143 showNameCache.setSelection(isShowNameCache);
144 showNameCache.addSelectionListener(new SelectionAdapter(){
145 @Override
146 public void widgetSelected(SelectionEvent e) {
147 isShowNameCache = showNameCache.getSelection();
148
149 }
150 });
151 final Button showAppendedPhrase = new Button(dbSettings, SWT.CHECK);
152 isShowAppendedPhrase= nameDetailsConfig.isAppendedPhraseActivated();
153 showAppendedPhrase.setText(Messages.NameDetailsViewComposite_Show_AppendedPhrase);
154 showAppendedPhrase.setSelection(isShowAppendedPhrase);
155 showAppendedPhrase.addSelectionListener(new SelectionAdapter(){
156 @Override
157 public void widgetSelected(SelectionEvent e) {
158 isShowAppendedPhrase = showAppendedPhrase.getSelection();
159
160 }
161 });
162
163 final Button showRank = new Button(dbSettings, SWT.CHECK);
164 isShowRank = nameDetailsConfig.isRankActivated();
165 showRank.setText(Messages.NameDetailsViewComposite_Show_Rank);
166 showRank.setSelection(isShowRank);
167 showRank.addSelectionListener(new SelectionAdapter(){
168 @Override
169 public void widgetSelected(SelectionEvent e) {
170 isShowRank = showRank.getSelection();
171
172 }
173 });
174 final Button showEpithets = new Button(dbSettings, SWT.CHECK);
175 isShowEpithets = nameDetailsConfig.isAtomisedEpithetsActivated();
176 showEpithets.setText(Messages.NameDetailsViewComposite_Show_AtomisedEpithets);
177 showEpithets.setSelection(isShowEpithets);
178 showEpithets.addSelectionListener(new SelectionAdapter(){
179 @Override
180 public void widgetSelected(SelectionEvent e) {
181 isShowEpithets = showEpithets.getSelection();
182
183 }
184 });
185
186 final Button showAuthorCache = new Button(dbSettings, SWT.CHECK);
187 isShowAuthorCache = nameDetailsConfig.isAuthorCacheActivated();
188 showAuthorCache.setText(Messages.NameDetailsViewComposite_Show_AuthorCache);
189 showAuthorCache.setSelection(isShowAuthorCache);
190 showAuthorCache.addSelectionListener(new SelectionAdapter(){
191 @Override
192 public void widgetSelected(SelectionEvent e) {
193 isShowAuthorCache = showAuthorCache.getSelection();
194
195 }
196 });
197
198 final Button showAuthorship = new Button(dbSettings, SWT.CHECK);
199 isShowAuthorship = nameDetailsConfig.isAuthorshipSectionActivated();
200 showAuthorship.setText(Messages.NameDetailsViewComposite_Show_Author);
201 showAuthorship.setSelection(isShowAuthorship);
202 showAuthorship.addSelectionListener(new SelectionAdapter(){
203 @Override
204 public void widgetSelected(SelectionEvent e) {
205 isShowAuthorship = showAuthorship.getSelection();
206
207 }
208 });
209
210 final Button showNomenclaturalRef = new Button(dbSettings, SWT.CHECK);
211 isShowNomenclaturalRef = nameDetailsConfig.isNomenclaturalReferenceSectionActivated();
212 showNomenclaturalRef.setText(Messages.NameDetailsViewComposite_Show_NomenclaturalReference);
213 showNomenclaturalRef.setSelection(isShowNomenclaturalRef);
214 showNomenclaturalRef.addSelectionListener(new SelectionAdapter(){
215 @Override
216 public void widgetSelected(SelectionEvent e) {
217 isShowNomenclaturalRef = showNomenclaturalRef.getSelection();
218
219 }
220 });
221
222 final Button showNomenclaturalStatus = new Button(dbSettings, SWT.CHECK);
223 isShowNomenclaturalStatus = nameDetailsConfig.isNomenclaturalStatusSectionActivated();
224 showNomenclaturalStatus.setText(Messages.NameDetailsViewComposite_Show_NomenclaturalStatus);
225 showNomenclaturalStatus.setSelection(isShowNomenclaturalStatus);
226 showNomenclaturalStatus.addSelectionListener(new SelectionAdapter(){
227 @Override
228 public void widgetSelected(SelectionEvent e) {
229 isShowNomenclaturalStatus = showNomenclaturalStatus.getSelection();
230
231 }
232 });
233
234 final Button showProtologue = new Button(dbSettings, SWT.CHECK);
235 isShowProtologue = nameDetailsConfig.isProtologueActivated();
236 showProtologue.setText(Messages.NameDetailsViewComposite_Show_Protologue);
237 showProtologue.setSelection(isShowProtologue);
238 showProtologue.addSelectionListener(new SelectionAdapter(){
239 @Override
240 public void widgetSelected(SelectionEvent e) {
241 isShowProtologue = showProtologue.getSelection();
242
243 }
244 });
245
246 final Button showTypeDesignation = new Button(dbSettings, SWT.CHECK);
247 isShowTypeDesignation = nameDetailsConfig.isTypeDesignationSectionActivated();
248 showTypeDesignation.setText(Messages.NameDetailsViewComposite_Show_TypeDesignation);
249 showTypeDesignation.setSelection(isShowTypeDesignation);
250 showTypeDesignation.addSelectionListener(new SelectionAdapter(){
251 @Override
252 public void widgetSelected(SelectionEvent e) {
253 isShowTypeDesignation = showTypeDesignation.getSelection();
254
255 }
256 });
257
258
259 final Button showNameRelationship = new Button(dbSettings, SWT.CHECK);
260 isShowNameRelationship = nameDetailsConfig.isNameRelationsSectionActivated();
261 showNameRelationship.setText(Messages.NameDetailsViewComposite_Show_Namerelationships);
262 showNameRelationship.setSelection(isShowNameRelationship);
263 showNameRelationship.addSelectionListener(new SelectionAdapter(){
264 @Override
265 public void widgetSelected(SelectionEvent e) {
266 isShowNameRelationship = showNameRelationship.getSelection();
267
268 }
269 });
270
271 final Button showHybrid = new Button(dbSettings, SWT.CHECK);
272 isShowHybrid = nameDetailsConfig.isHybridActivated();
273 showHybrid.setText(Messages.NameDetailsViewComposite_Show_Hybrid);
274 showHybrid.setSelection(isShowHybrid);
275 showHybrid.addSelectionListener(new SelectionAdapter(){
276 @Override
277 public void widgetSelected(SelectionEvent e) {
278 isShowHybrid = showHybrid.getSelection();
279
280 }
281 });
282 final Button showNameApprobiation = new Button(dbSettings, SWT.CHECK);
283 isShowNameApprobiation = nameDetailsConfig.isNameApprobiationActivated();
284 showNameApprobiation.setText(Messages.NameDetailsViewComposite_Show_NameApprobiation);
285 showNameApprobiation.setSelection(isShowNameApprobiation);
286 showNameApprobiation.addSelectionListener(new SelectionAdapter(){
287 @Override
288 public void widgetSelected(SelectionEvent e) {
289 isShowNameApprobiation = showNameApprobiation.getSelection();
290 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_NAME_APPROBATION, isShowNameApprobiation);
291 }
292 });
293
294
295
296
297 return dbSettings;
298 }
299
300 /**
301 *
302 */
303 protected NameDetailsConfigurator createNameDetailsViewConfig() {
304 NameDetailsConfigurator config = new NameDetailsConfigurator(isSimpleDetailsViewActivated);
305
306 config.setAppendedPhraseActivated(isShowAppendedPhrase);
307 config.setAtomisedEpithetsActivated(isShowEpithets);
308 config.setAuthorshipSectionActivated(isShowAuthorship);
309 config.setAuthorCacheActivated(isShowAuthorCache);
310 config.setLSIDActivated(isShowLSID);
311 config.setNameApprobiationActivated(isShowNameApprobiation);
312 config.setNameCacheActivated(isShowNameCache);
313 config.setNameRelationsSectionActivated(isShowNameRelationship);
314 config.setNomenclaturalCodeActived(isShowNomenclaturalCode);
315 config.setNomenclaturalStatusSectionActivated(isShowNomenclaturalStatus);
316 config.setNomenclaturalReferenceSectionActivated(isShowNomenclaturalRef);
317 config.setProtologueActivated(isShowProtologue);
318 config.setRankActivated(isShowRank);
319 config.setTaxonSectionActivated(isShowTaxon);
320 config.setTypeDesignationSectionActivated(isShowTypeDesignation);
321 config.setHybridActivated(isShowHybrid);
322
323
324 return config;
325 }
326
327
328 @Override
329 public boolean performOk() {
330 ICdmRepository controller = CdmStore.getCurrentApplicationConfiguration();
331 if (controller == null){
332 return false;
333 }
334 IPreferenceService service = controller.getPreferenceService();
335 NameDetailsConfigurator config = createNameDetailsViewConfig();
336 String value = config.toString();
337 // boolean allowOverride = PreferencesUtil.getPreferenceStore().getBoolean(IPreferenceKeys.ALLOW_OVERRIDE_NAME_DETAILS);
338
339 CdmPreference pref = CdmPreference.NewDatabaseInstance( PreferencePredicate.NameDetailsView, value);
340 pref.setAllowOverride(isAllowOverride);
341 service.set(pref);
342 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_TAXON, isShowTaxon);
343 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_LSID, isShowLSID);
344 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_CODE, isShowNomenclaturalCode);
345 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_NAMECACHE, isShowNameCache);
346 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_APPENDED_PHRASE, isShowAppendedPhrase);
347 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_RANK, isShowRank);
348 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_ATOMISED_EPITHETS, isShowEpithets);
349 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_AUTHORSHIP, isShowAuthorship);
350 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_AUTHORSHIP_CACHE, isShowAuthorCache);
351 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_REFERENCE, isShowNomenclaturalRef);
352 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_NOMENCLATURAL_STATUS, isShowNomenclaturalStatus);
353 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_PROTOLOGUE, isShowProtologue);
354 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_TYPE_DESIGNATION, isShowTypeDesignation);
355 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_NAME_RELATIONSHIP, isShowNameRelationship);
356 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.SHOW_NAME_DETAILS_SECTION_HYBRID, isShowHybrid);
357 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.ALLOW_OVERRIDE_NAME_DETAILS, isAllowOverride);
358 PreferencesUtil.getPreferenceStore().setValue(IPreferenceKeys.SHOW_SIMPLE_NAME_DETAILS_SECTION, isSimpleDetailsViewActivated);
359 return true;
360 }
361
362 }