merge-update from trunk
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / element / LanguageStringWithLabelElement.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.swt.events.ModifyEvent;
14
15 import eu.etaxonomy.cdm.model.common.LanguageString;
16 import eu.etaxonomy.taxeditor.store.CdmStore;
17 import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
18
19 /**
20 * <p>LanguageStringWithLabelElement class.</p>
21 *
22 * @author n.hoffmann
23 * @created Mar 25, 2010
24 * @version 1.0
25 */
26 public class LanguageStringWithLabelElement extends TextWithLabelElement {
27
28 private LanguageString languageString;
29
30 /**
31 * <p>Constructor for LanguageStringWithLabelElement.</p>
32 *
33 * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
34 * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
35 * @param labelString a {@link java.lang.String} object.
36 * @param languageString a {@link eu.etaxonomy.cdm.model.common.LanguageString} object.
37 * @param style a int.
38 */
39 protected LanguageStringWithLabelElement(CdmFormFactory formFactory,
40 ICdmFormElement parentElement, String labelString,
41 LanguageString languageString, int style) {
42 this(formFactory, parentElement, labelString, languageString, null, style);
43 }
44
45 /**
46 * <p>Constructor for LanguageStringWithLabelElement.</p>
47 *
48 * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
49 * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
50 * @param labelString a {@link java.lang.String} object.
51 * @param languageString a {@link eu.etaxonomy.cdm.model.common.LanguageString} object.
52 * @param height a int.
53 * @param style a int.
54 */
55 protected LanguageStringWithLabelElement(CdmFormFactory formFactory,
56 ICdmFormElement parentElement, String labelString,
57 LanguageString languageString, Integer height, int style) {
58 super(formFactory, parentElement, labelString, null, height, style);
59
60 setLanguageString(languageString);
61 }
62
63 /**
64 * <p>Getter for the field <code>languageString</code>.</p>
65 *
66 * @return a {@link eu.etaxonomy.cdm.model.common.LanguageString} object.
67 */
68 public LanguageString getLanguageString() {
69 return languageString;
70 }
71
72 /** {@inheritDoc} */
73 @Override
74 public void modifyText(ModifyEvent e) {
75 if(languageString == null){
76 languageString = LanguageString.NewInstance("", CdmStore.getDefaultLanguage());
77 }
78
79 languageString.setText(text.getText());
80 super.modifyText(e);
81 }
82
83 /** {@inheritDoc} */
84 @Override
85 public void setText(String text) {
86 if(text != null){
87 languageString.setText(text);
88 super.setText(text);
89 }
90 }
91
92 /**
93 * <p>Setter for the field <code>languageString</code>.</p>
94 *
95 * @param languageString a {@link eu.etaxonomy.cdm.model.common.LanguageString} object.
96 */
97 public void setLanguageString(LanguageString languageString) {
98 this.languageString = languageString;
99 super.setText(languageString != null ? languageString.getText() : "");
100 }
101 }