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