- moved ICdmFormElement to campanula.compatibility
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / key / PolytomousKeyNodeDetailElement.java
1 /**
2 *
3 */
4 package eu.etaxonomy.taxeditor.ui.section.key;
5
6 import eu.etaxonomy.cdm.model.description.Feature;
7 import eu.etaxonomy.cdm.model.description.PolytomousKey;
8 import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
9 import eu.etaxonomy.cdm.model.taxon.Taxon;
10 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
11 import eu.etaxonomy.taxeditor.ui.element.KeyStatementElement;
12 import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement;
13 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
14 import eu.etaxonomy.taxeditor.ui.section.campanula.compatibility.ICdmFormElement;
15 import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
16
17 /**
18 * @author n.hoffmann
19 *
20 */
21 public class PolytomousKeyNodeDetailElement extends
22 AbstractCdmDetailElement<PolytomousKeyNode> {
23
24 private KeyStatementElement element_statement;
25
26 private EntitySelectionElement<Feature> selection_feature;
27
28 private EntitySelectionElement<Taxon> selection_taxon;
29
30 private EntitySelectionElement<PolytomousKey> selection_subkey;
31
32 private EntitySelectionElement<PolytomousKeyNode> selection_otherNode;
33
34 private KeyStatementElement element_question;
35
36 public PolytomousKeyNodeDetailElement(CdmFormFactory formFactory,
37 ICdmFormElement formElement) {
38 super(formFactory, formElement);
39 }
40
41 @Override
42 protected void createControls(ICdmFormElement formElement,
43 PolytomousKeyNode entity, int style) {
44 if (!entity.isLeaf()) {
45 NumberWithLabelElement number_nodeNumber = formFactory
46 .createIntegerTextWithLabelElement(formElement,
47 "Node Number", entity.getNodeNumber(), style);
48 number_nodeNumber.setEnabled(false);
49 }
50
51 if (entity.getParent() != null) {
52 PolytomousKeyNode parent = entity.getParent();
53
54 element_question = formFactory.createKeyStatementElement(
55 formElement, "Question", parent.getQuestion(), 50, style);
56
57 selection_feature = formFactory
58 .createSelectionElement(Feature.class,
59 getConversationHolder(), formElement, "Feature",
60 parent.getFeature(),
61 EntitySelectionElement.EDITABLE | EntitySelectionElement.DELETABLE, style);
62 }
63
64 element_statement = formFactory.createKeyStatementElement(formElement,
65 "Statement", entity.getStatement(), 50, style);
66
67 //if (entity.isLeaf()) {
68 selection_taxon = formFactory
69 .createSelectionElement(Taxon.class,
70 getConversationHolder(), formElement, "Taxon",
71 entity.getTaxon(), EntitySelectionElement.NOTHING,
72 style);
73 //}
74
75 selection_subkey = formFactory
76 .createSelectionElement(PolytomousKey.class,
77 getConversationHolder(), formElement, "Subkey",
78 entity.getSubkey(),
79 EntitySelectionElement.EDITABLE | EntitySelectionElement.DELETABLE, style);
80
81 selection_otherNode = formFactory
82 .createSelectionElement(PolytomousKeyNode.class,
83 getConversationHolder(), formElement, "Other Node",
84 entity.getOtherNode(),
85 EntitySelectionElement.DELETABLE, style);
86
87 formFactory.createMultiLanguageTextElement(formElement,
88 "Modifying Text", entity.getModifyingText(), 50, style);
89
90 }
91
92 /*
93 * (non-Javadoc)
94 *
95 * @see
96 * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
97 * .lang.Object)
98 */
99 @Override
100 public void handleEvent(Object eventSource) {
101 if (eventSource == element_question) {
102 getEntity().getParent().setQuestion(
103 element_question.getKeyStatement());
104 } else if (eventSource == element_statement) {
105 getEntity().setStatement(element_statement.getKeyStatement());
106 } else if (eventSource == selection_feature) {
107 getEntity().getParent().setFeature(selection_feature.getEntity());
108 } else if (eventSource == selection_taxon) {
109 getEntity().setTaxon(selection_taxon.getEntity());
110 } else if (eventSource == selection_subkey) {
111 getEntity().setSubkey(selection_subkey.getEntity());
112 } else if (eventSource == selection_otherNode) {
113 getEntity().setOtherNode(selection_otherNode.getEntity());
114 }
115 }
116 }