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