2 * Copyright (C) 2016 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
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.
9 package eu
.etaxonomy
.taxeditor
.ui
.translation
;
17 import java
.beans
.PropertyChangeEvent
;
18 import java
.beans
.PropertyChangeListener
;
20 import org
.apache
.commons
.lang
.StringUtils
;
21 import org
.eclipse
.jface
.wizard
.WizardPage
;
22 import org
.eclipse
.swt
.SWT
;
23 import org
.eclipse
.swt
.widgets
.Composite
;
24 import org
.eclipse
.swt
.widgets
.Display
;
26 import eu
.etaxonomy
.cdm
.model
.common
.Language
;
27 import eu
.etaxonomy
.cdm
.model
.common
.Representation
;
28 import eu
.etaxonomy
.cdm
.model
.common
.TermBase
;
29 import eu
.etaxonomy
.taxeditor
.preference
.PreferencesUtil
;
30 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
31 import eu
.etaxonomy
.taxeditor
.ui
.element
.CdmFormFactory
;
32 import eu
.etaxonomy
.taxeditor
.ui
.element
.ICdmFormElement
;
33 import eu
.etaxonomy
.taxeditor
.ui
.element
.LayoutConstants
;
34 import eu
.etaxonomy
.taxeditor
.ui
.element
.MultilanguageTextElement
;
35 import eu
.etaxonomy
.taxeditor
.ui
.element
.RepresentationElement
;
36 import eu
.etaxonomy
.taxeditor
.ui
.element
.RootElement
;
38 public class TermTranslationWizardPage
extends WizardPage
implements PropertyChangeListener
{
41 private static int TEXT_HEIGHT
= 200;
43 private final TermBase term
;
45 MultilanguageTextElement source
;
47 private final CdmFormFactory formFactory
;
49 private RepresentationElement text_source
;
51 private RepresentationElement text_target
;
54 * <p>Constructor for TranslationWizardPage.</p>
56 * @param multilanguageText a {@link java.util.Map} object.
58 public TermTranslationWizardPage(TermBase term
) {
59 super("TranslationWizardPage");
60 //Assert.isNotNull(multilanguageText, "Multilanguage text may not be null");
61 setTitle("Add or edit translations.");
63 formFactory
= new CdmFormFactory(Display
.getCurrent());
64 setPageComplete(false);
68 * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
72 public void createControl(Composite parent
) {
73 Composite control
= formFactory
.createComposite(parent
);
74 // control.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_GREEN));
75 control
.setLayout(LayoutConstants
.LAYOUT(2, false));
77 Composite leftContainer
= formFactory
.createComposite(control
);
78 leftContainer
.setLayoutData(LayoutConstants
.FILL(1, 4));
79 leftContainer
.setLayout(LayoutConstants
.LAYOUT(2, false));
80 // leftContainer.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_BLUE));
81 RootElement leftRoot
= new RootElement(formFactory
, leftContainer
);
83 Composite rightContainer
= formFactory
.createComposite(control
);
84 rightContainer
.setLayoutData(LayoutConstants
.FILL(1, 4));
85 rightContainer
.setLayout(LayoutConstants
.LAYOUT(2, false));
86 // rightContainer.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_RED));
87 RootElement rightRoot
= new RootElement(formFactory
, rightContainer
);
89 createLeftControls(leftRoot
);
90 createRightControls(rightRoot
);
93 // initialize with default language
94 setSource(CdmStore
.getDefaultLanguage());
98 setPageComplete(true);
102 * @param defaultLanguage
104 private void setSource(Language language
) {
106 Representation preferredRepresentation
=term
.getPreferredRepresentation(language
);
108 if(preferredRepresentation
!= null){
109 text_source
.setSelectedRepresentation(preferredRepresentation
);
118 private void createLeftControls(ICdmFormElement element
){
119 Representation preferredRepresentation
= term
.getPreferredRepresentation(PreferencesUtil
.getGlobalLanguage());
121 text_source
= formFactory
.createRepresentationElement(element
, preferredRepresentation
,term
, TEXT_HEIGHT
, SWT
.NULL
, true);
122 text_source
.setTerm(term
, true);
130 private void createRightControls(ICdmFormElement element
){
131 text_target
= formFactory
.createRepresentationElement(element
, null, term
, TEXT_HEIGHT
, SWT
.NULL
, false);
139 * @see org.eclipse.jface.dialogs.DialogPage#dispose()
143 public void dispose() {
151 public Representation
getTargetRepresentation() {
152 return text_target
.getSelectedRepresentation();
156 * @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)
159 public void propertyChange(PropertyChangeEvent evt
) {
160 if (evt
.getSource() == text_target
){
161 if (!StringUtils
.isBlank(text_target
.getSelectedRepresentation().getAbbreviatedLabel()) ||
162 !StringUtils
.isBlank(text_target
.getSelectedRepresentation().getLabel()) || !StringUtils
.isBlank(text_target
.getSelectedRepresentation().getText())){
163 setPageComplete(true);