386a8a8cfe9ac5f36d44c30163a1f15f58f43069
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / element / KeyStatementElement.java
1 // $Id$
2 /**
3 * Copyright (C) 2007 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
6 *
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
9 */
10
11 package eu.etaxonomy.taxeditor.ui.element;
12
13 import org.eclipse.jface.util.PropertyChangeEvent;
14
15 import eu.etaxonomy.cdm.model.description.KeyStatement;
16 import eu.etaxonomy.cdm.model.description.PolytomousKeyNode;
17
18 /**
19 * @author n.hoffmann
20 * @created Dec 3, 2010
21 * @version 1.0
22 */
23 public class KeyStatementElement extends MultilanguageTextElement {
24
25 private KeyStatement keyStatement;
26
27 /**
28 * @param formFactory
29 * @param formElement
30 */
31 public KeyStatementElement(CdmFormFactory formFactory,
32 ICdmFormElement formElement, String labelString,
33 KeyStatement keyStatement, int textHeight, int style) {
34 super(formFactory, formElement, labelString, null, textHeight, style);
35 setKeyStatement(keyStatement);
36 }
37
38 /**
39 * @param keyStatement
40 * the keyStatement to set
41 */
42 public void setKeyStatement(KeyStatement keyStatement) {
43 this.keyStatement = keyStatement;
44 if (keyStatement != null) {
45 setMultilanguageText(keyStatement.getLabel());
46 }
47 }
48
49 /**
50 * @return the keyStatement
51 */
52 public KeyStatement getKeyStatement() {
53 return keyStatement;
54 }
55
56 public void update(PolytomousKeyNode node) {
57 if(node.getStatement() == null) {
58 node.setStatement(KeyStatement.NewInstance(element_languageString.getLanguageString().getLanguage(),
59 element_languageString.getLanguageString().getText()));
60 } else {
61 node.getStatement().getLabel().put(element_languageString.getLanguageString().getLanguage(),
62 element_languageString.getLanguageString());
63 }
64 }
65
66 /*
67 * (non-Javadoc)
68 *
69 * @see
70 * eu.etaxonomy.taxeditor.ui.forms.MultilanguageTextElement#propertyChange
71 * (org.eclipse.jface.util.PropertyChangeEvent)
72 */
73 @Override
74 public void propertyChange(PropertyChangeEvent event) {
75 if (event == null) {
76 return;
77 }
78
79 if (keyStatement == null) {
80 Object eventSource = event.getSource();
81 if (eventSource == element_languageString) {
82
83 if(element_languageString.getLanguageString() != null) {
84 // for the case when the user copy / pastes text into the
85 // (LanguageStringWithLabelElement) element_languageString text field
86 setKeyStatement(KeyStatement.NewInstance(element_languageString.getLanguageString().getLanguage(),
87 element_languageString.getLanguageString().getText()));
88 } else {
89 //setKeyStatement(KeyStatement.NewInstance());
90 }
91 }
92 }
93
94 super.propertyChange(event);
95
96 }
97
98 }