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