merge
[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.common.LanguageString;
16 import eu.etaxonomy.cdm.model.description.KeyStatement;
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 updateKeyStatement(KeyStatement ks) {
53 keyStatement = ks;
54 if(keyStatement == null) {
55 keyStatement = KeyStatement.NewInstance(element_languageString.getLanguageString().getLanguage(),
56 element_languageString.getLanguageString().getText());
57
58 } else {
59 LanguageString languageString = keyStatement.getLabel().get(element_languageString.getLanguageString().getLanguage());
60 if(languageString != null) {
61 languageString.setText(element_languageString.getText());
62 } else {
63 keyStatement.getLabel().put(element_languageString.getLanguageString().getLanguage(),
64 element_languageString.getLanguageString());
65 }
66 }
67 return keyStatement;
68 }
69
70
71 /*
72 * (non-Javadoc)
73 *
74 * @see
75 * eu.etaxonomy.taxeditor.ui.forms.MultilanguageTextElement#propertyChange
76 * (org.eclipse.jface.util.PropertyChangeEvent)
77 */
78 @Override
79 public void propertyChange(PropertyChangeEvent event) {
80 if (event == null) {
81 return;
82 }
83
84 if (keyStatement == null) {
85 Object eventSource = event.getSource();
86 if (eventSource == element_languageString) {
87
88 if(element_languageString.getLanguageString() != null) {
89 // for the case when the user copy / pastes text into the
90 // (LanguageStringWithLabelElement) element_languageString text field
91 setKeyStatement(KeyStatement.NewInstance(element_languageString.getLanguageString().getLanguage(),
92 element_languageString.getLanguageString().getText()));
93 } else {
94 //setKeyStatement(KeyStatement.NewInstance());
95 }
96 }
97 }
98
99 super.propertyChange(event);
100
101 }
102
103 }