2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
10 package eu
.etaxonomy
.taxeditor
.ui
.element
;
12 import org
.eclipse
.jface
.util
.PropertyChangeEvent
;
13 import org
.eclipse
.swt
.widgets
.Text
;
15 import eu
.etaxonomy
.cdm
.model
.common
.LanguageString
;
16 import eu
.etaxonomy
.cdm
.model
.description
.KeyStatement
;
20 * @created Dec 3, 2010
23 public class KeyStatementElement
extends MultilanguageTextElement
{
25 private KeyStatement keyStatement
;
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
);
40 * the keyStatement to set
42 public void setKeyStatement(KeyStatement keyStatement
) {
43 this.keyStatement
= keyStatement
;
44 if (keyStatement
!= null) {
45 setMultilanguageText(keyStatement
.getLabel());
50 * @return the keyStatement
52 public KeyStatement
updateKeyStatement(KeyStatement ks
) {
54 if(keyStatement
== null) {
55 keyStatement
= KeyStatement
.NewInstance(element_languageString
.getLanguageString().getLanguage(),
56 element_languageString
.getLanguageString().getText());
59 LanguageString languageString
= keyStatement
.getLabel().get(element_languageString
.getLanguageString().getLanguage());
60 if(languageString
!= null) {
61 languageString
.setText(element_languageString
.getText());
63 keyStatement
.getLabel().put(element_languageString
.getLanguageString().getLanguage(),
64 element_languageString
.getLanguageString());
75 * eu.etaxonomy.taxeditor.ui.forms.MultilanguageTextElement#propertyChange
76 * (org.eclipse.jface.util.PropertyChangeEvent)
79 public void propertyChange(PropertyChangeEvent event
) {
84 if (keyStatement
== null
85 && event
.getSource() == element_languageString
86 && element_languageString
.getLanguageString() != null) {
87 // for the case when the user copy / pastes text into the
88 // (LanguageStringWithLabelElement) element_languageString text field
89 String text
= element_languageString
.getLanguageString().getText();
90 setKeyStatement(KeyStatement
.NewInstance(element_languageString
.getLanguageString().getLanguage(),
92 // fix for setting the cursor to 0 when no key statement existed before
93 ((Text
)element_languageString
.getMainControl()).setSelection(text
.length());
96 super.propertyChange(event
);