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