Merge branch 'develop' into LibrAlign
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / element / KeyStatementElement.java
index 719ea14059182ffc87879ea8bb42be717fc82dd2..64f2106f58b77338367af9e80996da2016e13852 100644 (file)
@@ -1,9 +1,8 @@
-// $Id$
 /**
  * Copyright (C) 2007 EDIT
- * European Distributed Institute of Taxonomy 
+ * European Distributed Institute of Taxonomy
  * http://www.e-taxonomy.eu
- * 
+ *
  * The contents of this file are subject to the Mozilla Public License Version 1.1
  * See LICENSE.TXT at the top of this package for the full license terms.
  */
@@ -12,8 +11,8 @@ package eu.etaxonomy.taxeditor.ui.element;
 
 import org.eclipse.jface.util.PropertyChangeEvent;
 
+import eu.etaxonomy.cdm.model.common.LanguageString;
 import eu.etaxonomy.cdm.model.description.KeyStatement;
-import eu.etaxonomy.taxeditor.ui.section.campanula.compatibility.ICdmFormElement;
 
 /**
  * @author n.hoffmann
@@ -49,13 +48,28 @@ public class KeyStatementElement extends MultilanguageTextElement {
        /**
         * @return the keyStatement
         */
-       public KeyStatement getKeyStatement() {
-               return keyStatement;
+       public KeyStatement updateKeyStatement(KeyStatement ks) {
+           keyStatement = ks;
+           if(keyStatement == null) {
+               keyStatement = KeyStatement.NewInstance(element_languageString.getLanguageString().getLanguage(),
+                       element_languageString.getLanguageString().getText());
+
+           } else {
+               LanguageString languageString = keyStatement.getLabel().get(element_languageString.getLanguageString().getLanguage());
+               if(languageString != null) {
+                   languageString.setText(element_languageString.getText());
+               } else {
+                   keyStatement.getLabel().put(element_languageString.getLanguageString().getLanguage(),
+                           element_languageString.getLanguageString());
+               }
+           }
+           return keyStatement;
        }
 
+
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * eu.etaxonomy.taxeditor.ui.forms.MultilanguageTextElement#propertyChange
         * (org.eclipse.jface.util.PropertyChangeEvent)
@@ -65,13 +79,24 @@ public class KeyStatementElement extends MultilanguageTextElement {
                if (event == null) {
                        return;
                }
+
                if (keyStatement == null) {
                        Object eventSource = event.getSource();
                        if (eventSource == element_languageString) {
-                               setKeyStatement(KeyStatement.NewInstance());
+
+                               if(element_languageString.getLanguageString() != null) {
+                                       // for the case when the user copy / pastes text into the
+                                       // (LanguageStringWithLabelElement) element_languageString text field
+                                       setKeyStatement(KeyStatement.NewInstance(element_languageString.getLanguageString().getLanguage(),
+                                                       element_languageString.getLanguageString().getText()));
+                               } else {
+                                       //setKeyStatement(KeyStatement.NewInstance());
+                               }
                        }
                }
+
                super.propertyChange(event);
+
        }
 
 }