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
.element
.CdmFormFactory
;
21 import eu
.etaxonomy
.taxeditor
.ui
.element
.CheckboxElement
;
22 import eu
.etaxonomy
.taxeditor
.ui
.element
.ICdmFormElement
;
23 import eu
.etaxonomy
.taxeditor
.ui
.element
.TextWithLabelElement
;
24 import eu
.etaxonomy
.taxeditor
.ui
.element
.CdmFormFactory
.SelectionType
;
25 import eu
.etaxonomy
.taxeditor
.ui
.section
.AbstractIdentifiableEntityDetailElement
;
26 import eu
.etaxonomy
.taxeditor
.ui
.selection
.ReferenceSelectionElement
;
30 * TaxonBaseDetailElement class.
34 * @created Feb 26, 2010
37 public class TaxonBaseDetailElement
extends AbstractIdentifiableEntityDetailElement
<TaxonBase
> {
39 private CheckboxElement checkbox_doubtful
;
41 private CheckboxElement checkbox_useNameCache
;
43 private ReferenceSelectionElement selection_secundum
;
45 private TextWithLabelElement text_appendedPhrase
;
47 private CheckboxElement checkbox_excluded
;
49 private CheckboxElement checkbox_unplaced
;
53 * Constructor for TaxonBaseDetailElement.
56 * @param cdmFormFactory
57 * a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
60 * a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
65 public TaxonBaseDetailElement(CdmFormFactory cdmFormFactory
,
66 ICdmFormElement formElement
, int style
) {
67 super(cdmFormFactory
, formElement
);
72 protected void createControls(ICdmFormElement formElement
,
73 TaxonBase entity
, int style
) {
74 toggleable_cache
= formFactory
.createToggleableTextField(formElement
,
75 "Title Cache", entity
.getTitleCache(),
76 entity
.isProtectedTitleCache(), style
);
78 selection_secundum
= (ReferenceSelectionElement
) formFactory
79 .createSelectionElement(SelectionType
.REFERENCE
,
80 getConversationHolder(), formElement
, "Secundum",
81 entity
.getSec(), ReferenceSelectionElement
.DEFAULT
,
84 text_appendedPhrase
= formFactory
.createTextWithLabelElement(
85 formElement
, "Appended Phrase", entity
.getAppendedPhrase(),
87 checkbox_useNameCache
= formFactory
.createCheckbox(formElement
,
88 "Exclude Authorship", entity
.isUseNameCache(), style
);
90 if (entity
instanceof Taxon
) {
91 checkbox_excluded
= formFactory
.createCheckbox(formElement
,
92 "Taxon is excluded", ((Taxon
) entity
).isExcluded(), style
);
93 checkbox_unplaced
= formFactory
.createCheckbox(formElement
,
94 "Taxon is unplaced", ((Taxon
) entity
).isUnplaced(), style
);
97 checkbox_doubtful
= formFactory
.createCheckbox(formElement
,
98 entity
.getClass().getSimpleName() + " is doubtful", entity
.isDoubtful(), style
);
103 protected void updateContent() {
104 super.updateContent();
105 toggleable_cache
.setEnabled(getEntity().isProtectedTitleCache());
106 setIrrelevant(toggleable_cache
.getState(),
107 Arrays
.asList(new Object
[] { toggleable_cache
}));
111 protected void handleTitleCacheRelevantChange(PropertyChangeEvent event
) {
112 String title
= getEntity().generateTitle();
113 getEntity().setTitleCache(title
);
114 super.handleTitleCacheRelevantChange(event
);
119 public void handleEvent(Object eventSource
) {
120 if (eventSource
.equals(toggleable_cache
)) {
121 handleToggleableCacheField();
122 } else if (eventSource
.equals(checkbox_doubtful
)) {
123 getEntity().setDoubtful(checkbox_doubtful
.getSelection());
124 } else if (eventSource
.equals(checkbox_useNameCache
)) {
125 getEntity().setUseNameCache(checkbox_useNameCache
.getSelection());
126 } else if (eventSource
.equals(selection_secundum
)) {
127 getEntity().setSec(selection_secundum
.getSelection());
128 } else if (eventSource
.equals(text_appendedPhrase
)) {
129 getEntity().setAppendedPhrase(text_appendedPhrase
.getText());
130 } else if (eventSource
== checkbox_excluded
) {
131 ((Taxon
) getEntity()).setExcluded(checkbox_excluded
.getSelection());
132 } else if (eventSource
== checkbox_unplaced
) {
133 ((Taxon
) getEntity()).setUnplaced(checkbox_unplaced
.getSelection());