9bc9a078c570bafa95cb4db4029dd0f06f84acf7
[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.ICdmFormElement;
12 import eu.etaxonomy.taxeditor.ui.element.KeyStatementElement;
13 import eu.etaxonomy.taxeditor.ui.element.NumberWithLabelElement;
14 import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailElement;
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 .createNumberTextWithLabelElement(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, "Character",
60 parent.getFeature(),
61 EntitySelectionElement.EDITABLE | EntitySelectionElement.DELETABLE, style);
62 }
63
64 element_statement = formFactory.createKeyStatementElement(formElement,
65 "State(ment)", 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 } else{
74 selection_taxon = formFactory
75 .createSelectionElement(Taxon.class,
76 getConversationHolder(), formElement, "Taxon",
77 entity.getTaxon(), EntitySelectionElement.DELETABLE,
78 style);
79 }
80
81 selection_subkey = formFactory
82 .createSelectionElement(PolytomousKey.class,
83 getConversationHolder(), formElement, "Subkey",
84 entity.getSubkey(),
85 EntitySelectionElement.EDITABLE | EntitySelectionElement.DELETABLE, style);
86
87 selection_otherNode = formFactory
88 .createSelectionElement(PolytomousKeyNode.class,
89 getConversationHolder(), formElement, "Other Node",
90 entity.getOtherNode(),
91 EntitySelectionElement.DELETABLE, style);
92
93 formFactory.createMultiLanguageTextElement(formElement,
94 "Modifying Text", entity.getModifyingText(), 50, style);
95
96 }
97
98 /*
99 * (non-Javadoc)
100 *
101 * @see
102 * eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java
103 * .lang.Object)
104 */
105 @Override
106 public void handleEvent(Object eventSource) {
107 if (eventSource == element_question) {
108 getEntity().getParent().setQuestion(element_question.updateKeyStatement(getEntity().getQuestion()));
109 } else if (eventSource == element_statement) {
110 getEntity().getParent().setStatement(element_statement.updateKeyStatement(getEntity().getStatement()));
111 } else if (eventSource == selection_feature) {
112 getEntity().getParent().setFeature(selection_feature.getEntity());
113 } else if (eventSource == selection_taxon) {
114 getEntity().setTaxon(selection_taxon.getEntity());
115 } else if (eventSource == selection_subkey) {
116 getEntity().setSubkey(selection_subkey.getEntity());
117 } else if (eventSource == selection_otherNode) {
118 getEntity().setOtherNode(selection_otherNode.getEntity());
119 }
120 }
121 }