+// $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());
+
+ }
+
+
+}