Project

General

Profile

Download (3.85 KB) Statistics
| Branch: | Tag: | Revision:
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

    
68
		selection_taxon = formFactory
69
				.createSelectionElement(Taxon.class,
70
						getConversationHolder(), formElement, "Taxon",
71
						entity.getTaxon(), EntitySelectionElement.DELETABLE,
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(element_question.updateKeyStatement(getEntity().getQuestion()));
103
		} else if (eventSource == element_statement) {
104
		    getEntity().setStatement(element_statement.updateKeyStatement(getEntity().getStatement()));
105
		} else if (eventSource == selection_feature) {
106
			getEntity().getParent().setFeature(selection_feature.getEntity());
107
		} else if (eventSource == selection_taxon) {
108
			getEntity().setTaxon(selection_taxon.getEntity());
109
		} else if (eventSource == selection_subkey) {
110
			getEntity().setSubkey(selection_subkey.getEntity());
111
		} else if (eventSource == selection_otherNode) {
112
			getEntity().setOtherNode(selection_otherNode.getEntity());
113
		}
114
	}
115
}
(3-3/6)