#5908: fix that the combo box on the left hand side contains only available languages
authorKatja Luther <k.luther@bgbm.org>
Thu, 23 Jun 2016 07:57:14 +0000 (09:57 +0200)
committerKatja Luther <k.luther@bgbm.org>
Thu, 23 Jun 2016 07:57:14 +0000 (09:57 +0200)
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmFormFactory.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/RepresentationElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/TranslatableRepresentationElement.java [new file with mode: 0644]
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/AbstractTermBaseDetailElement.java
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/translation/TermTranslationWizardPage.java

index ca914d0c5158f9d1c1f9a7e329427d43f960bf86..43d12367bd75edc6df9b2d92845272be317869bd 100644 (file)
@@ -611,8 +611,60 @@ public class CdmFormFactory extends FormToolkit {
      *         {@link eu.etaxonomy.taxeditor.ui.element.RepresentationElement}
      *         object.
      */
-    public RepresentationElement createRepresentationElement(ICdmFormElement parentElement, Representation representation, TermBase term,int textHeight, int style, boolean isTranslationWizard) {
-        RepresentationElement element = new RepresentationElement(this, parentElement, representation, term, textHeight, style, isTranslationWizard);
+    public RepresentationElement createRepresentationElement(ICdmFormElement parentElement, Representation representation, TermBase term,int textHeight, int style) {
+        RepresentationElement element = new RepresentationElement(this, parentElement, representation, term, textHeight, style);
+        adapt(element);
+        parentElement.addElement(element);
+        return element;
+    }
+
+    /**
+     * <p>
+     * createMultiLanguageTextElement
+     * </p>
+     *
+     * @param parentElement
+     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+     *            object.
+     *
+     * @param Representation
+     *            a {@link eu.etaxonomy.cdm.model.common.Representation} object.
+     * @param textHeight
+     *            a int.
+     * @param style
+     *            a int.
+     * @return a
+     *         {@link eu.etaxonomy.taxeditor.ui.element.RepresentationElement}
+     *         object.
+     */
+    public TranslatableRepresentationElement createTranslatableRepresentationElement(ICdmFormElement parentElement, Representation representation, TermBase term,int textHeight, int style) {
+        TranslatableRepresentationElement element = new TranslatableRepresentationElement(this, parentElement, representation, term, textHeight, style);
+        adapt(element);
+        parentElement.addElement(element);
+        return element;
+    }
+
+    /**
+     * <p>
+     * createMultiLanguageTextElement
+     * </p>
+     *
+     * @param parentElement
+     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
+     *            object.
+     *
+     * @param term
+     *            a {@link eu.etaxonomy.cdm.model.common.Representation} object.
+     * @param textHeight
+     *            a int.
+     * @param style
+     *            a int.
+     * @return a
+     *         {@link eu.etaxonomy.taxeditor.ui.element.RepresentationElement}
+     *         object.
+     */
+    public RepresentationElement createRepresentationElement(ICdmFormElement parentElement, TermBase term, int textHeight, int style) {
+        RepresentationElement element = new RepresentationElement(this, parentElement, term, textHeight, style);
         adapt(element);
         parentElement.addElement(element);
         return element;
@@ -637,8 +689,8 @@ public class CdmFormFactory extends FormToolkit {
      *         {@link eu.etaxonomy.taxeditor.ui.element.RepresentationElement}
      *         object.
      */
-    public RepresentationElement createRepresentationElement(ICdmFormElement parentElement, TermBase term, int textHeight, int style, boolean isTranslationWizard) {
-        RepresentationElement element = new RepresentationElement(this, parentElement, term, textHeight, style, isTranslationWizard);
+    public TranslatableRepresentationElement createTranslatableRepresentationElement(ICdmFormElement parentElement, TermBase term, int textHeight, int style) {
+        TranslatableRepresentationElement element = new TranslatableRepresentationElement(this, parentElement, term, textHeight, style);
         adapt(element);
         parentElement.addElement(element);
         return element;
index 4e3dd48c04632b684c7fa521c1b6d0ae870fc77a..d42c3b0c78981376d5904e76475a03f667f5130b 100644 (file)
@@ -21,10 +21,6 @@ import java.util.Collections;
 import java.util.List;
 
 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;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
 import org.eclipse.swt.widgets.Button;
@@ -34,59 +30,25 @@ import eu.etaxonomy.cdm.model.common.Representation;
 import eu.etaxonomy.cdm.model.common.TermBase;
 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.ui.combo.TermComboElement;
-import eu.etaxonomy.taxeditor.ui.section.vocabulary.TermTranslationWizard;
 
 public class RepresentationElement  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)
-             */
-            @Override
-            public void widgetSelected(SelectionEvent e) {
-                TermBase term = getTerm();
-
-                if (term == null){
-                    MessagingUtils.warningDialog("No term to translate", getClass(), "The term is empty and therefore can not be translated");
-                }
-
-                TermTranslationWizard wizard = new TermTranslationWizard(term);
-                WizardDialog dialog = new WizardDialog(getLayoutComposite()
-                        .getShell(), wizard);
-
-                if (dialog.open() == Window.OK) {
-                    combo_language.setTerms(getLanguages());
-                    updateControls();
-                }
-
-            }
-        }
-
-        private TermComboElement<Language> combo_language;
+        protected TermComboElement<Language> combo_language;
 
         protected TextWithLabelElement element_Label;
         protected TextWithLabelElement element_abbrevLabel;
         protected TextWithLabelElement element_text;
 
-        private Button button;
+        protected Button button;
 
-        private Representation selectedRepresentation;
-        private TermBase term;
+        protected Representation selectedRepresentation;
+        protected TermBase term;
 
-        private final boolean isTranslationWizard;
+       // protected final boolean isTranslationWizard;
 
 
         /**
@@ -110,9 +72,9 @@ SelectionListener{
          */
         public RepresentationElement(CdmFormFactory formFactory,
                 ICdmFormElement formElement, TermBase term,
-                Integer textHeight, int style, boolean isTranslationWizard) {
+                Integer textHeight, int style) {
             super(formFactory, formElement);
-            this.isTranslationWizard = isTranslationWizard;
+
             formFactory.addPropertyChangeListener(this);
 
             element_Label = this.formFactory.createTextWithLabelElement(formElement, "Label", null, style);
@@ -149,9 +111,9 @@ SelectionListener{
          */
         public RepresentationElement(CdmFormFactory formFactory,
                 ICdmFormElement formElement, Representation representation, TermBase term,
-                Integer textHeight, int style, boolean isTranslationWizard) {
+                Integer textHeight, int style) {
             super(formFactory, formElement);
-            this.isTranslationWizard = isTranslationWizard;
+
             formFactory.addPropertyChangeListener(this);
 
             element_Label = this.formFactory.createTextWithLabelElement(formElement, "Label", null, style);
@@ -168,7 +130,7 @@ SelectionListener{
 
         }
 
-        private void createRepresentationEditingElements(
+        protected void createRepresentationEditingElements(
                 ICdmFormElement formElement, int style) {
 
             combo_language = formFactory.createDefinedTermComboElement(TermType.Language, formElement,
@@ -177,13 +139,7 @@ SelectionListener{
 
             addControl(formFactory.createLabel(getLayoutComposite(), ""));
 
-            if (!isTranslationWizard){
-                button = formFactory.createButton(getLayoutComposite(),
-                        "Open In Translation Editor", SWT.PUSH);
-                addControl(button);
-                button.setLayoutData(LayoutConstants.RIGHT());
-                button.addSelectionListener(new OpenTranslationWizard());
-            }
+
         }
 
         public List<Language> getLanguages() {
@@ -249,10 +205,6 @@ SelectionListener{
 
             if (selectedRepresentation != null) {
                combo_language.setTerms(getLanguages());
-               if (!isTranslationWizard){
-                   button.setEnabled(false);
-               }
-
             }
             updateControls();
         }
@@ -260,7 +212,7 @@ SelectionListener{
         /**
          *
          */
-        private void updateControls() {
+        protected void updateControls() {
             Representation preferredRepresentation = term
                     .getPreferredRepresentation(Arrays.asList(new Language[] { CdmStore
                                     .getDefaultLanguage() }));
@@ -270,13 +222,7 @@ SelectionListener{
             element_text.setText(preferredRepresentation.getDescription());
             selectedRepresentation = preferredRepresentation;
             if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
-
                 combo_language.setSelection(preferredRepresentation == null?CdmStore.getDefaultLanguage():preferredRepresentation.getLanguage());
-                if (!isTranslationWizard){
-                    button.setEnabled(true);
-                    combo_language.setTerms(getLanguages());
-                    combo_language.setSelection(preferredRepresentation.getLanguage());
-                }
             }
         }
 
diff --git a/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/TranslatableRepresentationElement.java b/eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/TranslatableRepresentationElement.java
new file mode 100644 (file)
index 0000000..b41ebb6
--- /dev/null
@@ -0,0 +1,124 @@
+// $Id$
+/**
+* Copyright (C) 2016 EDIT
+* 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.
+*/
+package eu.etaxonomy.taxeditor.ui.element;
+
+import org.eclipse.jface.window.Window;
+import org.eclipse.jface.wizard.WizardDialog;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.events.SelectionAdapter;
+import org.eclipse.swt.events.SelectionEvent;
+
+import eu.etaxonomy.cdm.model.common.Representation;
+import eu.etaxonomy.cdm.model.common.TermBase;
+import eu.etaxonomy.taxeditor.model.MessagingUtils;
+import eu.etaxonomy.taxeditor.ui.section.vocabulary.TermTranslationWizard;
+
+/**
+ * @author k.luther
+ * @date 23.06.2016
+ *
+ */
+public class TranslatableRepresentationElement extends RepresentationElement {
+
+    /**
+     * @param formFactory
+     * @param formElement
+     * @param representation
+     * @param term
+     * @param textHeight
+     * @param style
+     * @param isTranslationWizard
+     */
+    public TranslatableRepresentationElement(CdmFormFactory formFactory, ICdmFormElement formElement,
+            Representation representation, TermBase term, Integer textHeight, int style) {
+        super(formFactory, formElement, representation, term, textHeight, style);
+
+    }
+
+
+    /**
+     * @param cdmFormFactory
+     * @param parentElement
+     * @param term
+     * @param textHeight
+     * @param style
+     */
+    public TranslatableRepresentationElement(CdmFormFactory cdmFormFactory, ICdmFormElement parentElement,
+            TermBase term, int textHeight, int style) {
+        super(cdmFormFactory, parentElement, term, textHeight, style);
+    }
+
+
+    private class OpenTranslationWizard extends SelectionAdapter {
+
+        public OpenTranslationWizard() {
+            super();
+        }
+
+        /*
+         * (non-Javadoc)
+         *
+         * @see
+         * org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse
+         * .swt.events.SelectionEvent)
+         */
+        @Override
+        public void widgetSelected(SelectionEvent e) {
+            TermBase term = getTerm();
+
+            if (term == null){
+                MessagingUtils.warningDialog("No term to translate", getClass(), "The term is empty and therefore can not be translated");
+            }
+
+            TermTranslationWizard wizard = new TermTranslationWizard(term);
+            WizardDialog dialog = new WizardDialog(getLayoutComposite()
+                    .getShell(), wizard);
+
+            if (dialog.open() == Window.OK) {
+                combo_language.setTerms(getLanguages());
+                updateControls();
+            }
+
+        }
+    }
+    @Override
+    protected void createRepresentationEditingElements(ICdmFormElement formElement, int style) {
+        super.createRepresentationEditingElements(formElement, style);
+        button = formFactory.createButton(getLayoutComposite(),
+                "Open In Translation Editor", SWT.PUSH);
+        addControl(button);
+        button.setLayoutData(LayoutConstants.RIGHT());
+        button.addSelectionListener(new OpenTranslationWizard());
+
+    }
+
+    @Override
+    public void setTerm(
+            TermBase term) {
+        super.setTerm(term);
+        button.setEnabled(false);
+        updateControls();
+    }
+
+
+    /**
+     *
+     */
+    @Override
+    protected void updateControls() {
+       super.updateControls();
+       button.setEnabled(true);
+       combo_language.setTerms(getLanguages());
+       combo_language.setSelection(selectedRepresentation.getLanguage());
+
+    }
+
+
+}
index 25feb360ccb66b98ed902d8e282905453462b7c9..af80ad4786f9db9643b3e3a30ee340fa2c57eb74 100644 (file)
@@ -52,7 +52,7 @@ public abstract class AbstractTermBaseDetailElement<T extends TermBase> extends
        protected void createControls(ICdmFormElement formElement,\r
                        T entity, int style) {\r
 \r
-               element_Representation = formFactory.createRepresentationElement(formElement,  getEntity().getPreferredRepresentation(CdmStore.getDefaultLanguage()),getEntity(), 100, style, false);\r
+               element_Representation = formFactory.createTranslatableRepresentationElement(formElement,  getEntity().getPreferredRepresentation(CdmStore.getDefaultLanguage()),getEntity(), 100, style);\r
 \r
                uri_uri = formFactory.createUriWithLabelElement(formElement, "URI", getEntity().getUri(), style);\r
 \r
index aeb53014d73788d5844f238a4534580e5d5832ad..f2cd9e36bf389d909498b6e549fe0302a5e584c2 100644 (file)
@@ -118,7 +118,8 @@ public class TermTranslationWizardPage extends WizardPage implements PropertyCha
         private void createLeftControls(ICdmFormElement element){
             Representation preferredRepresentation= term.getPreferredRepresentation(CdmStore.getDefaultLanguage());
 
-            text_source = formFactory.createRepresentationElement(element, preferredRepresentation,term,  TEXT_HEIGHT,  SWT.NULL, true);
+            text_source = formFactory.createRepresentationElement(element, preferredRepresentation,term,  TEXT_HEIGHT,  SWT.NULL);
+            text_source.setTerm(term);
 
 
         }
@@ -128,7 +129,7 @@ public class TermTranslationWizardPage extends WizardPage implements PropertyCha
          * @param element
          */
         private void createRightControls(ICdmFormElement element){
-            text_target = formFactory.createRepresentationElement(element, null, term, TEXT_HEIGHT, SWT.NULL, true);
+            text_target = formFactory.createRepresentationElement(element, null, term, TEXT_HEIGHT, SWT.NULL);
         }