Project

General

Profile

Download (4.08 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
		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(
109
					element_question.getKeyStatement());
110
		} else if (eventSource == element_statement) {
111
			//getEntity().setStatement(element_statement.getKeyStatement());
112
			element_statement.update(getEntity());
113
		} else if (eventSource == selection_feature) {
114
			getEntity().getParent().setFeature(selection_feature.getEntity());
115
		} else if (eventSource == selection_taxon) {
116
			getEntity().setTaxon(selection_taxon.getEntity());
117
		} else if (eventSource == selection_subkey) {
118
			getEntity().setSubkey(selection_subkey.getEntity());
119
		} else if (eventSource == selection_otherNode) {
120
			getEntity().setOtherNode(selection_otherNode.getEntity());
121
		}
122
	}
123
}
(3-3/6)