1 package eu
.etaxonomy
.taxeditor
.preference
;
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
;
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
;
24 public class NameDetailsViewConfiguration
extends CdmPreferencePage
implements SelectionListener
{
29 private static final String DISABLE
= "Disable";
33 private static final String ENABLE
= "Enable";
34 protected Boolean isSimpleDetailsViewActivated
;
35 boolean isUseLocalSettings
;
36 protected NameDetailsConfigurator nameDetailsConfig
;
37 Composite localSettings
;
39 protected CdmPreference nameDetailsPref
;
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
;
60 protected boolean isAllowOverride
;
61 private boolean isOverride
= true;
62 private Button showSecDetail
;
63 private Button secEnabled
;
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
;
87 protected Control
createContents(Composite parent
) {
89 if (isAllowOverride
|| isAdminPreference
){
91 final CLabel description
= new CLabel(parent
, SWT
.NULL
);
92 description
.setText(Messages
.NameDetailsViewConfiguration_description
);
94 Composite title
= createComposite(parent
);
95 // nameDetailsConfig = PreferencesUtil.getPreferredNameDetailsConfiguration(!isAdminPreference);
98 activateCheckButton
= createBooleanCombo(title
, ENABLE
, DISABLE
, PreferencePredicate
.NameDetailsView
, Messages
.NameDetailsViewConfiguration_activateSimpleDetailsView
, isAdminPreference
);
99 if (isAdminPreference
){
100 allowLocalPreference
= createAllowOverrideButton(title
);
102 allowLocalPreference
.addSelectionListener(new SelectionAdapter(){
104 public void widgetSelected(SelectionEvent e
) {
106 isAllowOverride
= allowLocalPreference
.getSelection();
111 dbSettings
= new Composite(parent
, SWT
.NONE
);
113 // activateCheckButton.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, true, true, 1, 1));
114 // activateCheckButton.setText(Messages.NameDetailsViewConfiguration_activateSimpleDetailsView);
115 if (nameDetailsConfig
!= null){
116 isSimpleDetailsViewActivated
= nameDetailsConfig
.isSimpleDetailsViewActivated();
118 if (nameDetailsConfig
== null){
119 nameDetailsConfig
= new NameDetailsConfigurator(false);
121 activateCheckButton
.addSelectionListener(this);
122 // new SelectionAdapter(){
124 // public void widgetSelected(SelectionEvent e) {
126 // isSimpleDetailsViewActivated = activateCheckButton.getSelectionIndex() == 0? true:false;
127 // nameDetailsConfig.setSimpleDetailsViewActivated(isSimpleDetailsViewActivated);
128 // dbSettings.setEnabled(isSimpleDetailsViewActivated);
129 // PreferencesUtil.recursiveSetEnabled(dbSettings, isSimpleDetailsViewActivated);
130 // if (isSimpleDetailsViewActivated){
131 // showSecDetail.setEnabled(isShowTaxon);
132 // secEnabled.setEnabled(isShowTaxon);
139 dbSettings
.setLayout(new GridLayout());
140 if (isSimpleDetailsViewActivated
!= null){
141 dbSettings
.setEnabled(isSimpleDetailsViewActivated
);
143 dbSettings
.setEnabled(false);
147 Label separator
= new Label(dbSettings
, SWT
.HORIZONTAL
| SWT
.SEPARATOR
);
148 separator
.setLayoutData(new GridData(GridData
.FILL_HORIZONTAL
));
149 showTaxon
= new Button(dbSettings
, SWT
.CHECK
);
150 showTaxon
.setText(Messages
.NameDetailsViewComposite_Show_Taxon
);
151 isShowTaxon
= nameDetailsConfig
.isTaxonSectionActivated();
153 showTaxon
.addSelectionListener(new SelectionAdapter(){
155 public void widgetSelected(SelectionEvent e
) {
157 isShowTaxon
= showTaxon
.getSelection();
158 nameDetailsConfig
.setTaxonSectionActivated(isShowTaxon
);
159 if (isSimpleDetailsViewActivated
!= null? isSimpleDetailsViewActivated
:false){
160 showSecDetail
.setEnabled(isShowTaxon
);
161 secEnabled
.setEnabled(isShowTaxon
);
167 Composite taxonComp
= new Composite(dbSettings
, SWT
.NULL
);
169 GridLayoutFactory
.fillDefaults().applyTo(taxonComp
);
171 GridData data
= new GridData();
172 data
.horizontalIndent
= 5;
173 data
.horizontalSpan
= 2;
174 taxonComp
.setLayoutData(data
);
176 secEnabled
= new Button(taxonComp
, SWT
.CHECK
);
177 secEnabled
.setText(Messages
.NameDetailsViewComposite_SecEnabled
);
179 isSecEnabled
= nameDetailsConfig
.isSecEnabled();
181 secEnabled
.addSelectionListener(new SelectionAdapter(){
183 public void widgetSelected(SelectionEvent e
) {
185 isSecEnabled
= secEnabled
.getSelection();
186 nameDetailsConfig
.setSecEnabled(isSecEnabled
);
189 showSecDetail
= new Button(taxonComp
, SWT
.CHECK
);
190 showSecDetail
.setText(Messages
.NameDetailsViewComposite_Show_SecDetail
);
192 isSecDetailsActivated
= nameDetailsConfig
.isSecDetailsActivated();
194 showSecDetail
.addSelectionListener(new SelectionAdapter(){
196 public void widgetSelected(SelectionEvent e
) {
198 isSecDetailsActivated
= showSecDetail
.getSelection();
199 nameDetailsConfig
.setSecDetailsActivated(isSecDetailsActivated
);
203 showLsid
= new Button(dbSettings
, SWT
.CHECK
);
204 showLsid
.setText(Messages
.NameDetailsViewComposite_Show_LSID
);
205 isShowLSID
= nameDetailsConfig
.isLSIDActivated();
207 showLsid
.addSelectionListener(new SelectionAdapter(){
209 public void widgetSelected(SelectionEvent e
) {
211 isShowLSID
= showLsid
.getSelection();
212 nameDetailsConfig
.setLSIDActivated(isShowLSID
);
216 showNomenclaturalCode
= new Button(dbSettings
, SWT
.CHECK
);
217 showNomenclaturalCode
.setText(Messages
.NameDetailsViewComposite_Show_NomenclaturalCode
);
218 isShowNomenclaturalCode
= nameDetailsConfig
.isNomenclaturalCodeActived();
220 showNomenclaturalCode
.addSelectionListener(new SelectionAdapter(){
222 public void widgetSelected(SelectionEvent e
) {
224 isShowNomenclaturalCode
= showNomenclaturalCode
.getSelection();
225 nameDetailsConfig
.setNomenclaturalCodeActived(isShowNomenclaturalCode
);
229 showNameCache
= new Button(dbSettings
, SWT
.CHECK
);
230 showNameCache
.setText(Messages
.NameDetailsViewComposite_Show_NameCache
);
231 isShowNameCache
= nameDetailsConfig
.isNameCacheActivated();
233 showNameCache
.addSelectionListener(new SelectionAdapter(){
235 public void widgetSelected(SelectionEvent e
) {
237 isShowNameCache
= showNameCache
.getSelection();
238 nameDetailsConfig
.setNameCacheActivated(isShowNameCache
);
241 showAppendedPhrase
= new Button(dbSettings
, SWT
.CHECK
);
242 isShowAppendedPhrase
= nameDetailsConfig
.isAppendedPhraseActivated();
243 showAppendedPhrase
.setText(Messages
.NameDetailsViewComposite_Show_AppendedPhrase
);
245 showAppendedPhrase
.addSelectionListener(new SelectionAdapter(){
247 public void widgetSelected(SelectionEvent e
) {
249 isShowAppendedPhrase
= showAppendedPhrase
.getSelection();
250 nameDetailsConfig
.setAppendedPhraseActivated(isShowAppendedPhrase
);
254 showRank
= new Button(dbSettings
, SWT
.CHECK
);
255 isShowRank
= nameDetailsConfig
.isRankActivated();
256 showRank
.setText(Messages
.NameDetailsViewComposite_Show_Rank
);
258 showRank
.addSelectionListener(new SelectionAdapter(){
260 public void widgetSelected(SelectionEvent e
) {
262 isShowRank
= showRank
.getSelection();
263 nameDetailsConfig
.setRankActivated(isShowRank
);
266 showEpithets
= new Button(dbSettings
, SWT
.CHECK
);
267 isShowEpithets
= nameDetailsConfig
.isAtomisedEpithetsActivated();
268 showEpithets
.setText(Messages
.NameDetailsViewComposite_Show_AtomisedEpithets
);
270 showEpithets
.addSelectionListener(new SelectionAdapter(){
272 public void widgetSelected(SelectionEvent e
) {
274 isShowEpithets
= showEpithets
.getSelection();
275 nameDetailsConfig
.setAtomisedEpithetsActivated(isShowEpithets
);
279 showAuthorCache
= new Button(dbSettings
, SWT
.CHECK
);
280 isShowAuthorCache
= nameDetailsConfig
.isAuthorCacheActivated();
281 showAuthorCache
.setText(Messages
.NameDetailsViewComposite_Show_AuthorCache
);
283 showAuthorCache
.addSelectionListener(new SelectionAdapter(){
285 public void widgetSelected(SelectionEvent e
) {
287 isShowAuthorCache
= showAuthorCache
.getSelection();
288 nameDetailsConfig
.setAuthorCacheActivated(isShowAuthorCache
);
292 showAuthorship
= new Button(dbSettings
, SWT
.CHECK
);
293 isShowAuthorship
= nameDetailsConfig
.isAuthorshipSectionActivated();
294 showAuthorship
.setText(Messages
.NameDetailsViewComposite_Show_Author
);
296 showAuthorship
.addSelectionListener(new SelectionAdapter(){
298 public void widgetSelected(SelectionEvent e
) {
300 isShowAuthorship
= showAuthorship
.getSelection();
301 nameDetailsConfig
.setAuthorshipSectionActivated(isShowAuthorship
);
305 showNomenclaturalRef
= new Button(dbSettings
, SWT
.CHECK
);
306 isShowNomenclaturalRef
= nameDetailsConfig
.isNomenclaturalReferenceSectionActivated();
307 showNomenclaturalRef
.setText(Messages
.NameDetailsViewComposite_Show_NomenclaturalReference
);
309 showNomenclaturalRef
.addSelectionListener(new SelectionAdapter(){
311 public void widgetSelected(SelectionEvent e
) {
313 isShowNomenclaturalRef
= showNomenclaturalRef
.getSelection();
314 nameDetailsConfig
.setNomenclaturalReferenceSectionActivated(isShowNomenclaturalRef
);
318 showNomenclaturalStatus
= new Button(dbSettings
, SWT
.CHECK
);
319 isShowNomenclaturalStatus
= nameDetailsConfig
.isNomenclaturalStatusSectionActivated();
320 showNomenclaturalStatus
.setText(Messages
.NameDetailsViewComposite_Show_NomenclaturalStatus
);
322 showNomenclaturalStatus
.addSelectionListener(new SelectionAdapter(){
324 public void widgetSelected(SelectionEvent e
) {
326 isShowNomenclaturalStatus
= showNomenclaturalStatus
.getSelection();
327 nameDetailsConfig
.setNomenclaturalStatusSectionActivated(isShowNomenclaturalStatus
);
331 showProtologue
= new Button(dbSettings
, SWT
.CHECK
);
332 isShowProtologue
= nameDetailsConfig
.isProtologueActivated();
333 showProtologue
.setText(Messages
.NameDetailsViewComposite_Show_Protologue
);
335 showProtologue
.addSelectionListener(new SelectionAdapter(){
337 public void widgetSelected(SelectionEvent e
) {
339 isShowProtologue
= showProtologue
.getSelection();
340 nameDetailsConfig
.setProtologueActivated(isShowProtologue
);
344 showTypeDesignation
= new Button(dbSettings
, SWT
.CHECK
);
345 isShowTypeDesignation
= nameDetailsConfig
.isTypeDesignationSectionActivated();
346 showTypeDesignation
.setText(Messages
.NameDetailsViewComposite_Show_TypeDesignation
);
348 showTypeDesignation
.addSelectionListener(new SelectionAdapter(){
350 public void widgetSelected(SelectionEvent e
) {
352 isShowTypeDesignation
= showTypeDesignation
.getSelection();
353 nameDetailsConfig
.setTypeDesignationSectionActivated(isShowTypeDesignation
);
358 showNameRelationship
= new Button(dbSettings
, SWT
.CHECK
);
359 isShowNameRelationship
= nameDetailsConfig
.isNameRelationsSectionActivated();
360 showNameRelationship
.setText(Messages
.NameDetailsViewComposite_Show_Namerelationships
);
362 showNameRelationship
.addSelectionListener(new SelectionAdapter(){
364 public void widgetSelected(SelectionEvent e
) {
366 isShowNameRelationship
= showNameRelationship
.getSelection();
367 nameDetailsConfig
.setNameRelationsSectionActivated(isShowNameRelationship
);
371 showHybrid
= new Button(dbSettings
, SWT
.CHECK
);
372 isShowHybrid
= nameDetailsConfig
.isHybridActivated();
373 showHybrid
.setText(Messages
.NameDetailsViewComposite_Show_Hybrid
);
375 showHybrid
.addSelectionListener(new SelectionAdapter(){
377 public void widgetSelected(SelectionEvent e
) {
379 isShowHybrid
= showHybrid
.getSelection();
380 nameDetailsConfig
.setHybridActivated(isShowHybrid
);
383 showNameApprobiation
= new Button(dbSettings
, SWT
.CHECK
);
384 isShowNameApprobiation
= nameDetailsConfig
.isNameApprobiationActivated();
385 showNameApprobiation
.setText(Messages
.NameDetailsViewComposite_Show_NameApprobiation
);
386 showNameApprobiation
.addSelectionListener(new SelectionAdapter(){
388 public void widgetSelected(SelectionEvent e
) {
390 isShowNameApprobiation
= showNameApprobiation
.getSelection();
391 nameDetailsConfig
.setNameApprobiationActivated(isShowNameApprobiation
);
394 PreferencesUtil
.recursiveSetEnabled(dbSettings
, isSimpleDetailsViewActivated
!= null?
(isSimpleDetailsViewActivated
&& isOverride
):false);
395 if (isSimpleDetailsViewActivated
!= null? isSimpleDetailsViewActivated
:false){
396 showSecDetail
.setEnabled(isShowTaxon
);
397 secEnabled
.setEnabled(isShowTaxon
);
399 showSecDetail
.setEnabled(false);
400 secEnabled
.setEnabled(false);
402 setButtonSelections();
405 final CLabel description
= new CLabel(parent
, SWT
.NULL
);
406 description
.setText(Messages
.NameDetailsViewConfiguration_description_not_available
);
407 this.setDefaultButtonActivated(false);
417 public boolean performOk() {
420 PreferencesUtil
.setStringValue(PreferencePredicate
.NameDetailsView
.getKey(), nameDetailsConfig
.toString());
421 if (nameDetailsPref
== null || !nameDetailsConfig
.toString().equals(nameDetailsPref
.getValue())) {
422 PreferencesUtil
.setBooleanValue(PreferencesUtil
.prefOverrideKey(PreferencePredicate
.NameDetailsView
.getKey()), true);
425 PreferencesUtil
.setBooleanValue(PreferencesUtil
.prefOverrideKey(PreferencePredicate
.NameDetailsView
.getKey()), false);
434 public void getValues(){
435 if (nameDetailsConfig
== null){
436 nameDetailsPref
= PreferencesUtil
.getPreferenceFromDB(PreferencePredicate
.NameDetailsView
);
437 isAdminPreference
= false;
438 isAllowOverride
= true;
439 if (nameDetailsPref
!= null){
440 isAllowOverride
= nameDetailsPref
.isAllowOverride();
443 isOverride
= PreferencesUtil
.getBooleanValue(PreferencesUtil
.prefOverrideKey(PreferencePredicate
.NameDetailsView
.getKey()), true) != null? PreferencesUtil
.getBooleanValue(PreferencesUtil
.prefOverrideKey(PreferencePredicate
.NameDetailsView
.getKey()), true): false;
444 nameDetailsConfig
= PreferencesUtil
.getPreferredNameDetailsConfiguration(true);
448 protected void setButtonSelections(){
451 if (isSimpleDetailsViewActivated
!= null && (isOverride
|| isAdminPreference
)){
452 if (isSimpleDetailsViewActivated
){
458 activateCheckButton
.select(index
);
459 if (isAdminPreference
){
460 allowLocalPreference
.setSelection(isAllowOverride
);
461 // allowLocalPreference.setEnabled(isSimpleDetailsViewActivated != null);
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);
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 isAllowOverride
= true;
509 this.setButtonSelections();
510 PreferencesUtil
.recursiveSetEnabled(dbSettings
, isSimpleDetailsViewActivated
!= null? isSimpleDetailsViewActivated
:false);
511 // activateCheckButton.select(0);
513 super.performDefaults();
520 public void widgetSelected(SelectionEvent e
) {
522 if (e
.getSource().equals(activateCheckButton
)){
523 String text
= activateCheckButton
.getText();
524 if(text
.startsWith(Messages
.Preference_Use_Default
)){
525 isSimpleDetailsViewActivated
= null;
526 if (!isAdminPreference
){
529 PreferencesUtil
.recursiveSetEnabled(dbSettings
, isSimpleDetailsViewActivated
!= null?
(isSimpleDetailsViewActivated
&& isOverride
):false);
533 if (text
.equals(ENABLE
)){
534 isSimpleDetailsViewActivated
= true;
537 isSimpleDetailsViewActivated
= false;
539 nameDetailsConfig
.setSimpleDetailsViewActivated(isSimpleDetailsViewActivated
);
540 dbSettings
.setEnabled(isSimpleDetailsViewActivated
);
541 PreferencesUtil
.recursiveSetEnabled(dbSettings
, isSimpleDetailsViewActivated
);
542 if (isSimpleDetailsViewActivated
){
543 showSecDetail
.setEnabled(isShowTaxon
);
544 secEnabled
.setEnabled(isShowTaxon
);
546 setButtonSelections();
557 public void widgetDefaultSelected(SelectionEvent e
) {
558 // TODO Auto-generated method stub