ref #8385: fixes in preferences - getDefaults() for all pages
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / preference / NameDetailsViewConfiguration.java
1 package eu.etaxonomy.taxeditor.preference;
2
3
4 import org.eclipse.jface.layout.GridLayoutFactory;
5 import org.eclipse.swt.SWT;
6 import org.eclipse.swt.custom.CLabel;
7 import org.eclipse.swt.events.SelectionAdapter;
8 import org.eclipse.swt.events.SelectionEvent;
9 import org.eclipse.swt.events.SelectionListener;
10 import org.eclipse.swt.layout.GridData;
11 import org.eclipse.swt.layout.GridLayout;
12 import org.eclipse.swt.widgets.Button;
13 import org.eclipse.swt.widgets.Combo;
14 import org.eclipse.swt.widgets.Composite;
15 import org.eclipse.swt.widgets.Control;
16 import org.eclipse.swt.widgets.Label;
17
18 import eu.etaxonomy.cdm.model.metadata.CdmPreference;
19 import eu.etaxonomy.cdm.model.metadata.PreferencePredicate;
20 import eu.etaxonomy.taxeditor.l10n.Messages;
21 import eu.etaxonomy.taxeditor.preference.menu.CdmPreferencePage;
22
23
24 public class NameDetailsViewConfiguration extends CdmPreferencePage implements SelectionListener{
25
26 /**
27 *
28 */
29 private static final String DISABLE = "Disable";
30 /**
31 *
32 */
33 private static final String ENABLE = "Enable";
34 protected Boolean isSimpleDetailsViewActivated;
35 boolean isUseLocalSettings;
36 protected NameDetailsConfigurator nameDetailsConfig;
37 Composite localSettings ;
38
39 CdmPreference nameDetailsPref;
40
41 protected boolean isShowTaxon;
42 protected boolean isShowNameApprobiation ;
43 protected boolean isShowHybrid;
44 protected boolean isShowNameRelationship;
45 protected boolean isShowTypeDesignation;
46 protected boolean isShowProtologue;
47 protected boolean isShowNomenclaturalStatus;
48 protected boolean isShowNomenclaturalRef;
49 protected boolean isShowAuthorship;
50 protected boolean isShowAuthorCache;
51 protected boolean isShowEpithets;
52 protected boolean isShowRank;
53 protected boolean isShowAppendedPhrase;
54 protected boolean isShowNameCache;
55 protected boolean isShowNomenclaturalCode;
56 protected boolean isShowLSID;
57 protected boolean isSecEnabled;
58 protected boolean isSecDetailsActivated;
59
60 protected boolean isAllowOverride;
61 private boolean isOverride;
62 private Button showSecDetail;
63 private Button secEnabled;
64
65 protected Combo activateCheckButton;
66 protected Button allowLocalPreference;
67 protected Button showTaxon;
68 protected Button showLsid;
69 protected Button showNomenclaturalCode;
70 protected Button showNameCache;
71 protected Button showAppendedPhrase;
72 protected Button showRank;
73 protected Button showEpithets;
74 protected Button showAuthorCache;
75 protected Button showAuthorship;
76 protected Button showNomenclaturalRef;
77 protected Button showNomenclaturalStatus;
78 protected Button showProtologue;
79 protected Button showTypeDesignation;
80 protected Button showNameRelationship;
81 protected Button showHybrid;
82 protected Button showNameApprobiation;
83
84 Composite dbSettings;
85
86 @Override
87 protected Control createContents(Composite parent) {
88 getValues();
89 if (isAllowOverride || isAdminPreference ){
90
91 final CLabel description = new CLabel(parent, SWT.NULL);
92 description.setText(Messages.NameDetailsViewConfiguration_description);
93
94 Composite title = createComposite(parent);
95 // nameDetailsConfig = PreferencesUtil.getPreferredNameDetailsConfiguration(!isAdminPreference);
96 //
97
98 activateCheckButton = createBooleanCombo(title, ENABLE, DISABLE, PreferencePredicate.SimpleDetailsViewActivated, Messages.NameDetailsViewConfiguration_activateSimpleDetailsView, isAdminPreference);
99 if (isAdminPreference){
100 allowLocalPreference = createAllowOverrideButton(title);
101
102 allowLocalPreference.addSelectionListener(new SelectionAdapter(){
103 @Override
104 public void widgetSelected(SelectionEvent e) {
105 setApply(true);
106 if (isAdminPreference){
107 isAllowOverride = allowLocalPreference.getSelection();
108 }else{
109 isOverride = allowLocalPreference.getSelection();
110 }
111
112 }
113 });
114
115 }
116 dbSettings = new Composite(parent, SWT.NONE);
117
118 // activateCheckButton.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, true, 1, 1));
119 // activateCheckButton.setText(Messages.NameDetailsViewConfiguration_activateSimpleDetailsView);
120 if (nameDetailsConfig != null){
121 isSimpleDetailsViewActivated = nameDetailsConfig.isSimpleDetailsViewActivated();
122 }
123 if (nameDetailsConfig == null){
124 nameDetailsConfig = new NameDetailsConfigurator(false);
125 }
126 activateCheckButton.addSelectionListener(this);
127 // new SelectionAdapter(){
128 // @Override
129 // public void widgetSelected(SelectionEvent e) {
130 // setApply(true);
131 // isSimpleDetailsViewActivated = activateCheckButton.getSelectionIndex() == 0? true:false;
132 // nameDetailsConfig.setSimpleDetailsViewActivated(isSimpleDetailsViewActivated);
133 // dbSettings.setEnabled(isSimpleDetailsViewActivated);
134 // PreferencesUtil.recursiveSetEnabled(dbSettings, isSimpleDetailsViewActivated);
135 // if (isSimpleDetailsViewActivated){
136 // showSecDetail.setEnabled(isShowTaxon);
137 // secEnabled.setEnabled(isShowTaxon);
138 // }
139 //
140 // }
141 // });
142
143
144 dbSettings.setLayout(new GridLayout());
145 if (isSimpleDetailsViewActivated != null){
146 dbSettings.setEnabled(isSimpleDetailsViewActivated);
147 }else{
148 dbSettings.setEnabled(false);
149 }
150
151
152 Label separator= new Label(dbSettings, SWT.HORIZONTAL | SWT.SEPARATOR);
153 separator.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
154 showTaxon = new Button(dbSettings, SWT.CHECK);
155 showTaxon.setText(Messages.NameDetailsViewComposite_Show_Taxon);
156 isShowTaxon = nameDetailsConfig.isTaxonSectionActivated();
157
158 showTaxon.addSelectionListener(new SelectionAdapter(){
159 @Override
160 public void widgetSelected(SelectionEvent e) {
161 setApply(true);
162 isShowTaxon = showTaxon.getSelection();
163 nameDetailsConfig.setTaxonSectionActivated(isShowTaxon);
164 if (isSimpleDetailsViewActivated!= null? isSimpleDetailsViewActivated:false){
165 showSecDetail.setEnabled(isShowTaxon);
166 secEnabled.setEnabled(isShowTaxon);
167 }
168
169 }
170 });
171
172 Composite taxonComp = new Composite(dbSettings, SWT.NULL);
173
174 GridLayoutFactory.fillDefaults().applyTo(taxonComp);
175
176 GridData data = new GridData();
177 data.horizontalIndent = 5;
178 data.horizontalSpan = 2;
179 taxonComp.setLayoutData(data);
180
181 secEnabled = new Button(taxonComp, SWT.CHECK);
182 secEnabled.setText(Messages.NameDetailsViewComposite_SecEnabled);
183
184 isSecEnabled = nameDetailsConfig.isSecEnabled();
185
186 secEnabled.addSelectionListener(new SelectionAdapter(){
187 @Override
188 public void widgetSelected(SelectionEvent e) {
189 setApply(true);
190 isSecEnabled = secEnabled.getSelection();
191 nameDetailsConfig.setSecEnabled(isSecEnabled);
192 }
193 });
194 showSecDetail = new Button(taxonComp, SWT.CHECK);
195 showSecDetail.setText(Messages.NameDetailsViewComposite_Show_SecDetail);
196
197 isSecDetailsActivated = nameDetailsConfig.isSecDetailsActivated();
198
199 showSecDetail.addSelectionListener(new SelectionAdapter(){
200 @Override
201 public void widgetSelected(SelectionEvent e) {
202 setApply(true);
203 isSecDetailsActivated = showSecDetail.getSelection();
204 nameDetailsConfig.setSecDetailsActivated(isSecDetailsActivated);
205 }
206 });
207
208 showLsid = new Button(dbSettings, SWT.CHECK);
209 showLsid.setText(Messages.NameDetailsViewComposite_Show_LSID);
210 isShowLSID = nameDetailsConfig.isLSIDActivated();
211
212 showLsid.addSelectionListener(new SelectionAdapter(){
213 @Override
214 public void widgetSelected(SelectionEvent e) {
215 setApply(true);
216 isShowLSID = showLsid.getSelection();
217 nameDetailsConfig.setLSIDActivated(isShowLSID);
218 }
219 });
220
221 showNomenclaturalCode = new Button(dbSettings, SWT.CHECK);
222 showNomenclaturalCode.setText(Messages.NameDetailsViewComposite_Show_NomenclaturalCode);
223 isShowNomenclaturalCode = nameDetailsConfig.isNomenclaturalCodeActived();
224
225 showNomenclaturalCode.addSelectionListener(new SelectionAdapter(){
226 @Override
227 public void widgetSelected(SelectionEvent e) {
228 setApply(true);
229 isShowNomenclaturalCode = showNomenclaturalCode.getSelection();
230 nameDetailsConfig.setNomenclaturalCodeActived(isShowNomenclaturalCode);
231 }
232 });
233
234 showNameCache = new Button(dbSettings, SWT.CHECK);
235 showNameCache.setText(Messages.NameDetailsViewComposite_Show_NameCache);
236 isShowNameCache = nameDetailsConfig.isNameCacheActivated();
237
238 showNameCache.addSelectionListener(new SelectionAdapter(){
239 @Override
240 public void widgetSelected(SelectionEvent e) {
241 setApply(true);
242 isShowNameCache = showNameCache.getSelection();
243 nameDetailsConfig.setNameCacheActivated(isShowNameCache);
244 }
245 });
246 showAppendedPhrase = new Button(dbSettings, SWT.CHECK);
247 isShowAppendedPhrase= nameDetailsConfig.isAppendedPhraseActivated();
248 showAppendedPhrase.setText(Messages.NameDetailsViewComposite_Show_AppendedPhrase);
249
250 showAppendedPhrase.addSelectionListener(new SelectionAdapter(){
251 @Override
252 public void widgetSelected(SelectionEvent e) {
253 setApply(true);
254 isShowAppendedPhrase = showAppendedPhrase.getSelection();
255 nameDetailsConfig.setAppendedPhraseActivated(isShowAppendedPhrase);
256 }
257 });
258
259 showRank = new Button(dbSettings, SWT.CHECK);
260 isShowRank = nameDetailsConfig.isRankActivated();
261 showRank.setText(Messages.NameDetailsViewComposite_Show_Rank);
262
263 showRank.addSelectionListener(new SelectionAdapter(){
264 @Override
265 public void widgetSelected(SelectionEvent e) {
266 setApply(true);
267 isShowRank = showRank.getSelection();
268 nameDetailsConfig.setRankActivated(isShowRank);
269 }
270 });
271 showEpithets = new Button(dbSettings, SWT.CHECK);
272 isShowEpithets = nameDetailsConfig.isAtomisedEpithetsActivated();
273 showEpithets.setText(Messages.NameDetailsViewComposite_Show_AtomisedEpithets);
274
275 showEpithets.addSelectionListener(new SelectionAdapter(){
276 @Override
277 public void widgetSelected(SelectionEvent e) {
278 setApply(true);
279 isShowEpithets = showEpithets.getSelection();
280 nameDetailsConfig.setAtomisedEpithetsActivated(isShowEpithets);
281 }
282 });
283
284 showAuthorCache = new Button(dbSettings, SWT.CHECK);
285 isShowAuthorCache = nameDetailsConfig.isAuthorCacheActivated();
286 showAuthorCache.setText(Messages.NameDetailsViewComposite_Show_AuthorCache);
287
288 showAuthorCache.addSelectionListener(new SelectionAdapter(){
289 @Override
290 public void widgetSelected(SelectionEvent e) {
291 setApply(true);
292 isShowAuthorCache = showAuthorCache.getSelection();
293 nameDetailsConfig.setAuthorCacheActivated(isShowAuthorCache);
294 }
295 });
296
297 showAuthorship = new Button(dbSettings, SWT.CHECK);
298 isShowAuthorship = nameDetailsConfig.isAuthorshipSectionActivated();
299 showAuthorship.setText(Messages.NameDetailsViewComposite_Show_Author);
300
301 showAuthorship.addSelectionListener(new SelectionAdapter(){
302 @Override
303 public void widgetSelected(SelectionEvent e) {
304 setApply(true);
305 isShowAuthorship = showAuthorship.getSelection();
306 nameDetailsConfig.setAuthorshipSectionActivated(isShowAuthorship);
307 }
308 });
309
310 showNomenclaturalRef = new Button(dbSettings, SWT.CHECK);
311 isShowNomenclaturalRef = nameDetailsConfig.isNomenclaturalReferenceSectionActivated();
312 showNomenclaturalRef.setText(Messages.NameDetailsViewComposite_Show_NomenclaturalReference);
313
314 showNomenclaturalRef.addSelectionListener(new SelectionAdapter(){
315 @Override
316 public void widgetSelected(SelectionEvent e) {
317 setApply(true);
318 isShowNomenclaturalRef = showNomenclaturalRef.getSelection();
319 nameDetailsConfig.setNomenclaturalReferenceSectionActivated(isShowNomenclaturalRef);
320 }
321 });
322
323 showNomenclaturalStatus = new Button(dbSettings, SWT.CHECK);
324 isShowNomenclaturalStatus = nameDetailsConfig.isNomenclaturalStatusSectionActivated();
325 showNomenclaturalStatus.setText(Messages.NameDetailsViewComposite_Show_NomenclaturalStatus);
326
327 showNomenclaturalStatus.addSelectionListener(new SelectionAdapter(){
328 @Override
329 public void widgetSelected(SelectionEvent e) {
330 setApply(true);
331 isShowNomenclaturalStatus = showNomenclaturalStatus.getSelection();
332 nameDetailsConfig.setNomenclaturalStatusSectionActivated(isShowNomenclaturalStatus);
333 }
334 });
335
336 showProtologue = new Button(dbSettings, SWT.CHECK);
337 isShowProtologue = nameDetailsConfig.isProtologueActivated();
338 showProtologue.setText(Messages.NameDetailsViewComposite_Show_Protologue);
339
340 showProtologue.addSelectionListener(new SelectionAdapter(){
341 @Override
342 public void widgetSelected(SelectionEvent e) {
343 setApply(true);
344 isShowProtologue = showProtologue.getSelection();
345 nameDetailsConfig.setProtologueActivated(isShowProtologue);
346 }
347 });
348
349 showTypeDesignation = new Button(dbSettings, SWT.CHECK);
350 isShowTypeDesignation = nameDetailsConfig.isTypeDesignationSectionActivated();
351 showTypeDesignation.setText(Messages.NameDetailsViewComposite_Show_TypeDesignation);
352
353 showTypeDesignation.addSelectionListener(new SelectionAdapter(){
354 @Override
355 public void widgetSelected(SelectionEvent e) {
356 setApply(true);
357 isShowTypeDesignation = showTypeDesignation.getSelection();
358 nameDetailsConfig.setTypeDesignationSectionActivated(isShowTypeDesignation);
359 }
360 });
361
362
363 showNameRelationship = new Button(dbSettings, SWT.CHECK);
364 isShowNameRelationship = nameDetailsConfig.isNameRelationsSectionActivated();
365 showNameRelationship.setText(Messages.NameDetailsViewComposite_Show_Namerelationships);
366
367 showNameRelationship.addSelectionListener(new SelectionAdapter(){
368 @Override
369 public void widgetSelected(SelectionEvent e) {
370 setApply(true);
371 isShowNameRelationship = showNameRelationship.getSelection();
372 nameDetailsConfig.setNameRelationsSectionActivated(isShowNameRelationship);
373 }
374 });
375
376 showHybrid = new Button(dbSettings, SWT.CHECK);
377 isShowHybrid = nameDetailsConfig.isHybridActivated();
378 showHybrid.setText(Messages.NameDetailsViewComposite_Show_Hybrid);
379
380 showHybrid.addSelectionListener(new SelectionAdapter(){
381 @Override
382 public void widgetSelected(SelectionEvent e) {
383 setApply(true);
384 isShowHybrid = showHybrid.getSelection();
385 nameDetailsConfig.setHybridActivated(isShowHybrid);
386 }
387 });
388 showNameApprobiation = new Button(dbSettings, SWT.CHECK);
389 isShowNameApprobiation = nameDetailsConfig.isNameApprobiationActivated();
390 showNameApprobiation.setText(Messages.NameDetailsViewComposite_Show_NameApprobiation);
391 showNameApprobiation.addSelectionListener(new SelectionAdapter(){
392 @Override
393 public void widgetSelected(SelectionEvent e) {
394 setApply(true);
395 isShowNameApprobiation = showNameApprobiation.getSelection();
396 nameDetailsConfig.setNameApprobiationActivated(isShowNameApprobiation);
397 }
398 });
399 PreferencesUtil.recursiveSetEnabled(dbSettings, isSimpleDetailsViewActivated!= null? isSimpleDetailsViewActivated:false);
400 if (isSimpleDetailsViewActivated!= null? isSimpleDetailsViewActivated:false){
401 showSecDetail.setEnabled(isShowTaxon);
402 secEnabled.setEnabled(isShowTaxon);
403 }else{
404 showSecDetail.setEnabled(false);
405 secEnabled.setEnabled(false);
406 }
407 setButtonSelections();
408
409 }else{
410 final CLabel description = new CLabel(parent, SWT.NULL);
411 description.setText(Messages.NameDetailsViewConfiguration_description_not_available);
412 this.setDefaultButtonActivated(false);
413 }
414
415
416
417
418 return parent;
419 }
420
421 @Override
422 public boolean performOk() {
423 if (nameDetailsConfig != null){
424 PreferencesUtil.setStringValue(PreferencePredicate.NameDetailsView.getKey(), nameDetailsConfig.toString());
425 if (nameDetailsPref == null || !nameDetailsConfig.toString().equals(nameDetailsPref.getValue())) {
426 PreferencesUtil.setBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.NameDetailsView.getKey()), true);
427 }
428 }
429
430 return true;
431
432 }
433
434 @Override
435 public void getValues(){
436 if (nameDetailsConfig == null){
437 nameDetailsPref = PreferencesUtil.getPreferenceFromDB(PreferencePredicate.NameDetailsView);
438 isAdminPreference = false;
439 isAllowOverride = true;
440 if (nameDetailsPref != null){
441 isAllowOverride = nameDetailsPref.isAllowOverride();
442
443 }
444 isOverride = PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.NameDetailsView.getKey()), true) != null? PreferencesUtil.getBooleanValue(PreferencesUtil.prefOverrideKey(PreferencePredicate.NameDetailsView.getKey()), true): false;
445 nameDetailsConfig = PreferencesUtil.getPreferredNameDetailsConfiguration(true);
446 }
447 }
448
449 protected void setButtonSelections(){
450
451 int index = 0;
452 if (isSimpleDetailsViewActivated != null){
453 if (isSimpleDetailsViewActivated){
454 index = 1;
455 }else{
456 index = 2;
457 }
458 }
459 activateCheckButton.select(index);
460 if (isAdminPreference){
461 allowLocalPreference.setSelection(isAllowOverride);
462 }
463 showTaxon.setSelection(isShowTaxon);
464 showLsid.setSelection(isShowLSID);
465 showNomenclaturalCode.setSelection(isShowNomenclaturalCode);
466 showNameCache.setSelection(isShowNameCache);
467 showAppendedPhrase.setSelection(isShowAppendedPhrase);
468 showRank.setSelection(isShowRank);
469 showEpithets.setSelection(isShowEpithets);
470 showAuthorCache.setSelection(isShowAuthorCache);
471 showAuthorship.setSelection(isShowAuthorship);
472 showNomenclaturalRef.setSelection(isShowNomenclaturalRef);
473 showNomenclaturalStatus.setSelection(isShowNomenclaturalStatus);
474 showProtologue.setSelection(isShowProtologue);
475 showTypeDesignation.setSelection(isShowTypeDesignation);
476 showNameRelationship.setSelection(isShowNameRelationship);
477 showHybrid.setSelection(isShowHybrid);
478 showNameApprobiation.setSelection(isShowNameApprobiation);
479 secEnabled.setSelection(isSecEnabled);
480 secEnabled.setEnabled(isShowTaxon);
481 showSecDetail.setSelection(isSecDetailsActivated);
482 showSecDetail.setEnabled(isShowTaxon);
483
484 }
485
486 @Override
487 protected void performDefaults() {
488 nameDetailsConfig = new NameDetailsConfigurator(false);
489 isShowAppendedPhrase = nameDetailsConfig.isAppendedPhraseActivated();
490 isShowEpithets = nameDetailsConfig.isAtomisedEpithetsActivated();
491 isShowAuthorship = nameDetailsConfig.isAuthorshipSectionActivated();
492 isShowAuthorCache = nameDetailsConfig.isAuthorCacheActivated();
493 isShowLSID = nameDetailsConfig.isLSIDActivated();
494 isShowNameApprobiation = nameDetailsConfig.isNameApprobiationActivated();
495 isShowNameCache = nameDetailsConfig.isNameCacheActivated();
496 isShowNameRelationship = nameDetailsConfig.isNameRelationsSectionActivated();
497 isShowNomenclaturalCode = nameDetailsConfig.isNomenclaturalCodeActived();
498 isShowNomenclaturalStatus = nameDetailsConfig.isNomenclaturalStatusSectionActivated();
499 isShowNomenclaturalRef = nameDetailsConfig.isNomenclaturalReferenceSectionActivated();
500 isShowProtologue = nameDetailsConfig.isProtologueActivated();
501 isShowRank = nameDetailsConfig.isRankActivated();
502 isShowTaxon = nameDetailsConfig.isTaxonSectionActivated();
503 isSecDetailsActivated = nameDetailsConfig.isSecDetailsActivated();
504 isSecEnabled = nameDetailsConfig.isSecEnabled();
505 isShowTypeDesignation = nameDetailsConfig.isTypeDesignationSectionActivated();
506 isShowHybrid = nameDetailsConfig.isHybridActivated();
507 isSimpleDetailsViewActivated = null;
508 this.setButtonSelections();
509 // activateCheckButton.select(0);
510 super.performDefaults();
511 }
512
513 /**
514 * {@inheritDoc}
515 */
516 @Override
517 public void widgetSelected(SelectionEvent e) {
518 setApply(true);
519 if (e.getSource().equals(activateCheckButton)){
520 String text = activateCheckButton.getText();
521 if(text.startsWith(Messages.Preference_Use_Default)){
522 isSimpleDetailsViewActivated = null;
523 if (isAdminPreference){
524 nameDetailsPref.setAllowOverride(true);
525 allowLocalPreference.setSelection(true);
526 }
527 return;
528 }
529 if (text.equals(ENABLE)){
530 isSimpleDetailsViewActivated = true;
531
532 }else{
533 isSimpleDetailsViewActivated = false;
534 }
535 nameDetailsConfig.setSimpleDetailsViewActivated(isSimpleDetailsViewActivated);
536 dbSettings.setEnabled(isSimpleDetailsViewActivated);
537 PreferencesUtil.recursiveSetEnabled(dbSettings, isSimpleDetailsViewActivated);
538 if (isSimpleDetailsViewActivated){
539 showSecDetail.setEnabled(isShowTaxon);
540 secEnabled.setEnabled(isShowTaxon);
541 }
542 setApply(true);
543 }
544
545
546 }
547
548 /**
549 * {@inheritDoc}
550 */
551 @Override
552 public void widgetDefaultSelected(SelectionEvent e) {
553 // TODO Auto-generated method stub
554
555 }
556
557 }