3 * Copyright (C) 2007 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
11 package eu
.etaxonomy
.taxeditor
.ui
.section
.taxon
;
13 import java
.util
.Arrays
;
15 import org
.eclipse
.jface
.util
.PropertyChangeEvent
;
16 import org
.eclipse
.swt
.SWT
;
18 import eu
.etaxonomy
.cdm
.model
.taxon
.Taxon
;
19 import eu
.etaxonomy
.cdm
.model
.taxon
.TaxonBase
;
20 import eu
.etaxonomy
.taxeditor
.ui
.forms
.CdmFormFactory
;
21 import eu
.etaxonomy
.taxeditor
.ui
.forms
.CheckboxElement
;
22 import eu
.etaxonomy
.taxeditor
.ui
.forms
.ICdmFormElement
;
23 import eu
.etaxonomy
.taxeditor
.ui
.forms
.TextWithLabelElement
;
24 import eu
.etaxonomy
.taxeditor
.ui
.forms
.ToggleableTextElement
;
25 import eu
.etaxonomy
.taxeditor
.ui
.forms
.CdmFormFactory
.SelectionType
;
26 import eu
.etaxonomy
.taxeditor
.ui
.section
.AbstractCdmDetailElement
;
27 import eu
.etaxonomy
.taxeditor
.ui
.section
.AbstractCdmDetailSection
;
28 import eu
.etaxonomy
.taxeditor
.ui
.section
.name
.NonViralNameDetailElement
;
29 import eu
.etaxonomy
.taxeditor
.ui
.selection
.ReferenceSelectionElement
;
32 * <p>TaxonBaseDetailElement class.</p>
35 * @created Feb 26, 2010
38 public class TaxonBaseDetailElement
extends AbstractCdmDetailElement
<TaxonBase
>{
40 private CheckboxElement checkbox_doubtful
;
42 private CheckboxElement checkbox_useNameCache
;
44 private ReferenceSelectionElement selection_secundum
;
46 private TextWithLabelElement text_appendedPhrase
;
48 private ToggleableTextElement toggleable_cache
;
50 private CheckboxElement checkbox_excluded
;
52 private CheckboxElement checkbox_unplaced
;
55 * <p>Constructor for TaxonBaseDetailElement.</p>
57 * @param cdmFormFactory a {@link eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory} object.
58 * @param formElement a {@link eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement} object.
61 public TaxonBaseDetailElement(CdmFormFactory cdmFormFactory
,
62 ICdmFormElement formElement
, int style
) {
63 super(cdmFormFactory
, formElement
);
68 protected void createControls(ICdmFormElement formElement
, TaxonBase entity
, int style
){
69 toggleable_cache
= formFactory
.createToggleableTextField(formElement
, "Title Cache", entity
.getTitleCache(), entity
.isProtectedTitleCache(), style
);
71 checkbox_doubtful
= formFactory
.createCheckbox(formElement
, "Is doubtful", entity
.isDoubtful(), style
);
72 checkbox_useNameCache
= formFactory
.createCheckbox(formElement
, "Exclude Authorship", entity
.isUseNameCache(), style
);
73 selection_secundum
= (ReferenceSelectionElement
) formFactory
.createSelectionElement(SelectionType
.REFERENCE
, getConversationHolder(), formElement
, "Secundum", entity
.getSec(), style
);
74 text_appendedPhrase
= formFactory
.createTextWithLabelElement(formElement
, "Appended Phrase", entity
.getAppendedPhrase(), SWT
.NULL
);
76 if(entity
instanceof Taxon
){
77 checkbox_excluded
= formFactory
.createCheckbox(formElement
, "Is excluded", ((Taxon
) entity
).isExcluded(), style
);
78 checkbox_unplaced
= formFactory
.createCheckbox(formElement
, "Is unplaced", ((Taxon
) entity
).isUnplaced(), style
);
84 protected void updateContent() {
85 super.updateContent();
86 toggleable_cache
.setEnabled(getEntity().isProtectedTitleCache());
87 setIrrelevant(toggleable_cache
.getState(), Arrays
.asList(new Object
[]{toggleable_cache
}));
92 public void propertyChange(PropertyChangeEvent event
) {
93 Object eventSource
= event
.getSource();
94 if(eventSource
instanceof ICdmFormElement
){
95 ICdmFormElement element
= (ICdmFormElement
) eventSource
;
96 ICdmFormElement parentElement
= element
.getParentElement();
97 if(parentElement
instanceof NonViralNameDetailElement
){
98 String title
= getEntity().generateTitle();
99 getEntity().setTitleCache(title
);
100 toggleable_cache
.setText(title
);
101 if(getParentElement() instanceof AbstractCdmDetailSection
)
102 ((AbstractCdmDetailSection
)getParentElement()).updateTitle();
106 super.propertyChange(event
);
111 public void handleEvent(Object eventSource
) {
112 if(eventSource
.equals(toggleable_cache
)){
113 getEntity().setTitleCache(toggleable_cache
.getText(), toggleable_cache
.getState());
114 // setEnabled(! toggleable_titleCache.getState(), Arrays.asList(new Object[]{toggleable_titleCache}));
115 setIrrelevant(toggleable_cache
.getState(), Arrays
.asList(new Object
[]{toggleable_cache
}));
117 else if(eventSource
.equals(checkbox_doubtful
)){
118 getEntity().setDoubtful(checkbox_doubtful
.getSelection());
120 else if(eventSource
.equals(checkbox_useNameCache
)){
121 getEntity().setUseNameCache(checkbox_useNameCache
.getSelection());
123 else if(eventSource
.equals(selection_secundum
)){
124 getEntity().setSec(selection_secundum
.getSelection());
126 else if(eventSource
.equals(text_appendedPhrase
)){
127 getEntity().setAppendedPhrase(text_appendedPhrase
.getText());
129 else if(eventSource
== checkbox_excluded
){
130 ((Taxon
) getEntity()).setExcluded(checkbox_excluded
.getSelection());
132 else if(eventSource
== checkbox_unplaced
){
133 ((Taxon
) getEntity()).setUnplaced(checkbox_unplaced
.getSelection());
136 if(eventSource
!= toggleable_cache
){
137 toggleable_cache
.setText(getEntity().getTitleCache());