automated build configuration is on its way
[taxeditor.git] / 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.cdm.model.taxon.Taxon;
8 import eu.etaxonomy.taxeditor.ui.forms.CdmFormFactory;
9 import eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement;
10 import eu.etaxonomy.taxeditor.ui.forms.KeyStatementElement;
11 import eu.etaxonomy.taxeditor.ui.forms.NumberWithLabelElement;
12 import eu.etaxonomy.taxeditor.ui.forms.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.TaxonBaseSelectionElement;
18 import eu.etaxonomy.taxeditor.ui.selection.TaxonSelectionElement;
19
20 /**
21 * @author n.hoffmann
22 *
23 */
24 public class PolytomousKeyNodeDetailElement extends 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
44 @Override
45 protected void createControls(ICdmFormElement formElement,
46 PolytomousKeyNode entity, int style) {
47 if(! entity.isLeaf()){
48 NumberWithLabelElement number_nodeNumber = formFactory.createIntegerTextWithLabelElement(formElement, "Node Number", entity.getNodeNumber(), style);
49 number_nodeNumber.setEnabled(false);
50 }
51
52 element_statement = formFactory.createKeyStatementElement(formElement, "Statement", entity.getStatement(), 50, style);
53
54 selection_feature = (FeatureSelectionElement) formFactory.createSelectionElement(SelectionType.FEATURE, getConversationHolder(), formElement, "Feature", entity.getFeature(), style);
55
56 if(entity.isLeaf()){
57 selection_taxon = (TaxonSelectionElement) formFactory.createSelectionElement(SelectionType.TAXON, getConversationHolder(), formElement, "Taxon", entity.getTaxon(), style);
58 }
59
60 selection_subkey = (PolytomousKeySelectionElement) formFactory.createSelectionElement(SelectionType.POLYTOMOUS_KEY, getConversationHolder(), formElement, "Subkey", entity.getSubkey(), style);
61
62 selection_otherNode = (PolytomousKeyNodeSelectionElement) formFactory.createSelectionElement(SelectionType.POLYTOMOUS_KEY_NODE, getConversationHolder(), formElement, "Other Node", entity.getOtherNode(), style);
63
64 formFactory.createMultiLanguageTextElement(formElement, "Modifying Text", entity.getModifyingText(), 50, style);
65
66 element_question = formFactory.createKeyStatementElement(formElement, "Question", entity.getQuestion(), 50, style);
67 }
68
69 /* (non-Javadoc)
70 * @see eu.etaxonomy.taxeditor.section.AbstractCdmDetailElement#handleEvent(java.lang.Object)
71 */
72 @Override
73 public void handleEvent(Object eventSource) {
74 if(eventSource == element_question){
75 getEntity().setQuestion(element_question.getKeyStatement());
76 }
77 else if(eventSource == element_statement){
78 getEntity().setStatement(element_statement.getKeyStatement());
79 }
80 else if(eventSource == selection_feature){
81 getEntity().setFeature(selection_feature.getEntity());
82 }
83 else if(eventSource == selection_taxon){
84 getEntity().setTaxon((Taxon) selection_taxon.getEntity());
85 }
86 else if(eventSource == selection_subkey){
87 getEntity().setSubkey(selection_subkey.getEntity());
88 }
89 else if(eventSource == selection_otherNode){
90 getEntity().setOtherNode(selection_otherNode.getEntity());
91 }
92 }
93 }