#5247 Fix duplicate entity issue for new entities by using the new merge service...
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / element / MultilanguageTextElement.java
index 2d300601254d5d2ea3d8c23042ba73ffae1c6cfa..4c4578719796d02838d45ea76fde4f4d018e27e1 100644 (file)
@@ -1,9 +1,9 @@
 // $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.
  */
@@ -16,8 +16,8 @@ import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 
-import org.eclipse.core.runtime.IStatus;
 import org.eclipse.jface.util.PropertyChangeEvent;
+import org.eclipse.jface.window.Window;
 import org.eclipse.jface.wizard.WizardDialog;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.SelectionAdapter;
@@ -28,11 +28,11 @@ import org.eclipse.swt.widgets.Button;
 import eu.etaxonomy.cdm.model.common.Language;
 import eu.etaxonomy.cdm.model.common.LanguageString;
 import eu.etaxonomy.cdm.model.common.MultilanguageTextHelper;
+import eu.etaxonomy.cdm.model.common.TermType;
 import eu.etaxonomy.taxeditor.model.DefaultTermComparator;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
 import eu.etaxonomy.taxeditor.store.CdmStore;
-import eu.etaxonomy.taxeditor.store.StoreUtil;
-import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
 import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
 import eu.etaxonomy.taxeditor.ui.translation.TranslationWizard;
 
@@ -40,7 +40,7 @@ import eu.etaxonomy.taxeditor.ui.translation.TranslationWizard;
  * <p>
  * MultilanguageTextElement class.
  * </p>
- * 
+ *
  * @author n.hoffmann
  * @created Sep 29, 2010
  * @version 1.0
@@ -49,14 +49,14 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements
                SelectionListener {
 
        private class OpenTranslationWizard extends SelectionAdapter {
-               
+
                public OpenTranslationWizard() {
                        super();
                }
 
                /*
                 * (non-Javadoc)
-                * 
+                *
                 * @see
                 * org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse
                 * .swt.events.SelectionEvent)
@@ -64,16 +64,16 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements
                @Override
                public void widgetSelected(SelectionEvent e) {
                        Map<Language, LanguageString> multilanguageText = getMultilanguageText();
-                       
+
                        if (multilanguageText == null){
-                               StoreUtil.warningDialog("No text to transalte", getClass(), "The text is empty and therefore can not be translated");
+                               MessagingUtils.warningDialog("No text to transalte", getClass(), "The text is empty and therefore can not be translated");
                        }
-                       
+
                        TranslationWizard wizard = new TranslationWizard(multilanguageText);
                        WizardDialog dialog = new WizardDialog(getLayoutComposite()
                                        .getShell(), wizard);
 
-                       if (dialog.open() == IStatus.OK) {
+                       if (dialog.open() == Window.OK) {
                                combo_language.setTerms(getLanguages());
                                updateControls();
                        }
@@ -93,7 +93,7 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements
         * <p>
         * Constructor for MultilanguageTextElement.
         * </p>
-        * 
+        *
         * @param formFactory
         *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
         *            object.
@@ -119,7 +119,7 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements
 
                element_languageString = this.formFactory
                                .createLanguageStringWithLabelElement(formElement, labelString,
-                                               null, textHeight, style);
+                                               null, textHeight, true, style);
 
                if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
                        createMultilanguageTextEditingElements(formElement,
@@ -131,8 +131,7 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements
        private void createMultilanguageTextEditingElements(
                        ICdmFormElement formElement,
                        Map<Language, LanguageString> multilanguageText, int style) {
-               combo_language = formFactory
-                               .createTermComboElement(Language.class, formElement,
+               combo_language = formFactory.createDefinedTermComboElement(TermType.Language, formElement,
                                                "", null, style);
                combo_language.addSelectionListener(this);
                addControl(formFactory.createLabel(getLayoutComposite(), ""));
@@ -155,7 +154,7 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt
         * .events.SelectionEvent)
@@ -174,7 +173,7 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse
         * .swt.events.SelectionEvent)
@@ -188,7 +187,7 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements
         * <p>
         * Setter for the field <code>multilanguageText</code>.
         * </p>
-        * 
+        *
         * @param multilanguageText
         *            the multilanguageText to set
         */
@@ -197,12 +196,6 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements
                this.multilanguageText = multilanguageText;
 
                if (multilanguageText != null) {
-                       if (multilanguageText.isEmpty()) {
-                               multilanguageText.put(
-                                               CdmStore.getDefaultLanguage(),
-                                               LanguageString.NewInstance("",
-                                                               CdmStore.getDefaultLanguage()));
-                       }
                        if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
                                combo_language.setTerms(getLanguages());
                                button.setEnabled(false);
@@ -212,7 +205,7 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements
        }
 
        /**
-        * 
+        *
         */
        private void updateControls() {
                LanguageString preferredLanguageString = MultilanguageTextHelper
@@ -224,14 +217,14 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements
                if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
                        combo_language.setSelection(preferredLanguageString.getLanguage());
                        button.setEnabled(true);
-               }               
+               }
        }
 
        /**
         * <p>
         * Getter for the field <code>multilanguageText</code>.
         * </p>
-        * 
+        *
         * @return the multilanguageText
         */
        public Map<Language, LanguageString> getMultilanguageText() {
@@ -240,7 +233,7 @@ public class MultilanguageTextElement extends AbstractCdmFormElement implements
 
        /*
         * (non-Javadoc)
-        * 
+        *
         * @see
         * eu.etaxonomy.taxeditor.forms.AbstractCdmFormElement#propertyChange(org
         * .eclipse.jface.util.PropertyChangeEvent)