Merge branch 'release/5.18.0'
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / element / TranslatableRepresentationElement.java
1 /**
2 * Copyright (C) 2016 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
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.
8 */
9 package eu.etaxonomy.taxeditor.ui.element;
10
11 import org.eclipse.jface.window.Window;
12 import org.eclipse.jface.wizard.WizardDialog;
13 import org.eclipse.swt.SWT;
14 import org.eclipse.swt.events.SelectionAdapter;
15 import org.eclipse.swt.events.SelectionEvent;
16
17 import eu.etaxonomy.cdm.model.term.Representation;
18 import eu.etaxonomy.cdm.model.term.TermBase;
19 import eu.etaxonomy.cdm.persistence.dto.TermDto;
20 import eu.etaxonomy.taxeditor.model.MessagingUtils;
21 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
22 import eu.etaxonomy.taxeditor.store.CdmStore;
23 import eu.etaxonomy.taxeditor.ui.section.vocabulary.TermTranslationWizard;
24
25 /**
26 * @author k.luther
27 * @date 23.06.2016
28 *
29 */
30 public class TranslatableRepresentationElement extends RepresentationElement {
31
32 /**
33 * @param formFactory
34 * @param formElement
35 * @param representation
36 * @param term
37 * @param textHeight
38 * @param style
39 * @param isTranslationWizard
40 */
41 public TranslatableRepresentationElement(CdmFormFactory formFactory, ICdmFormElement formElement,
42 Representation representation, TermBase term, Integer textHeight, int style, boolean fill) {
43 super(formFactory, formElement, representation, term, textHeight, style, fill);
44
45
46 }
47
48 public TranslatableRepresentationElement(CdmFormFactory formFactory, ICdmFormElement formElement,
49 Representation representation, TermDto term, Integer textHeight, int style, boolean fill) {
50 super(formFactory, formElement, representation, term, textHeight, style, fill);
51
52
53 }
54
55
56 /**
57 * @param cdmFormFactory
58 * @param parentElement
59 * @param term
60 * @param textHeight
61 * @param style
62 */
63 public TranslatableRepresentationElement(CdmFormFactory cdmFormFactory, ICdmFormElement parentElement,
64 TermBase term, int textHeight, int style, boolean fill) {
65 super(cdmFormFactory, parentElement, term, textHeight, style, fill);
66 }
67
68
69 private class OpenTranslationWizard extends SelectionAdapter {
70
71 public OpenTranslationWizard() {
72 super();
73 }
74
75 /*
76 * (non-Javadoc)
77 *
78 * @see
79 * org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse
80 * .swt.events.SelectionEvent)
81 */
82 @Override
83 public void widgetSelected(SelectionEvent e) {
84 TermBase term = getTerm();
85
86 if (term == null){
87 MessagingUtils.warningDialog("No term to translate", getClass(), "The term is empty and therefore can not be translated");
88 }
89
90 TermTranslationWizard wizard = new TermTranslationWizard(term);
91 WizardDialog dialog = new WizardDialog(getLayoutComposite()
92 .getShell(), wizard);
93
94 if (dialog.open() == Window.OK) {
95 combo_language.setTerms(getLanguages());
96 updateControls();
97 }
98
99 firePropertyChangeEvent( e);
100
101 }
102 }
103 @Override
104 protected void createRepresentationEditingElements(ICdmFormElement formElement, int style) {
105 super.createRepresentationEditingElements(formElement, style );
106 button = formFactory.createButton(getLayoutComposite(),
107 "Open In Translation Editor", SWT.PUSH);
108 addControl(button);
109 button.setLayoutData(LayoutConstants.RIGHT());
110 button.addSelectionListener(new OpenTranslationWizard());
111
112 }
113
114 @Override
115 public void setTerm(
116 TermBase term, boolean update) {
117 super.setTerm(term, update);
118 if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
119 button.setEnabled(false);
120 }
121 updateControls();
122 }
123
124
125 /**
126 *
127 */
128 @Override
129 protected void updateControls() {
130 super.updateControls();
131 if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
132 button.setEnabled(true);
133 combo_language.setTerms(getLanguages());
134 if (selectedRepresentation != null){
135 combo_language.setSelection(selectedRepresentation.getLanguage());
136 }else {
137 combo_language.setSelection(CdmStore.getDefaultLanguage());
138 }
139 }
140
141 }
142
143
144 }