3 * Copyright (C) 2016 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
10 package eu
.etaxonomy
.taxeditor
.ui
.translation
;
18 import java
.beans
.PropertyChangeEvent
;
19 import java
.beans
.PropertyChangeListener
;
21 import org
.apache
.commons
.lang
.StringUtils
;
22 import org
.eclipse
.jface
.wizard
.WizardPage
;
23 import org
.eclipse
.swt
.SWT
;
24 import org
.eclipse
.swt
.widgets
.Composite
;
25 import org
.eclipse
.swt
.widgets
.Display
;
27 import eu
.etaxonomy
.cdm
.model
.common
.Language
;
28 import eu
.etaxonomy
.cdm
.model
.common
.Representation
;
29 import eu
.etaxonomy
.cdm
.model
.common
.TermBase
;
30 import eu
.etaxonomy
.taxeditor
.preference
.PreferencesUtil
;
31 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
32 import eu
.etaxonomy
.taxeditor
.ui
.element
.CdmFormFactory
;
33 import eu
.etaxonomy
.taxeditor
.ui
.element
.ICdmFormElement
;
34 import eu
.etaxonomy
.taxeditor
.ui
.element
.LayoutConstants
;
35 import eu
.etaxonomy
.taxeditor
.ui
.element
.MultilanguageTextElement
;
36 import eu
.etaxonomy
.taxeditor
.ui
.element
.RepresentationElement
;
37 import eu
.etaxonomy
.taxeditor
.ui
.element
.RootElement
;
39 public class TermTranslationWizardPage
extends WizardPage
implements PropertyChangeListener
{
42 private static int TEXT_HEIGHT
= 200;
44 private final TermBase term
;
46 MultilanguageTextElement source
;
48 private final CdmFormFactory formFactory
;
50 private RepresentationElement text_source
;
52 private RepresentationElement text_target
;
55 * <p>Constructor for TranslationWizardPage.</p>
57 * @param multilanguageText a {@link java.util.Map} object.
59 public TermTranslationWizardPage(TermBase term
) {
60 super("TranslationWizardPage");
61 //Assert.isNotNull(multilanguageText, "Multilanguage text may not be null");
62 setTitle("Add or edit translations.");
64 formFactory
= new CdmFormFactory(Display
.getCurrent());
65 setPageComplete(false);
69 * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
73 public void createControl(Composite parent
) {
74 Composite control
= formFactory
.createComposite(parent
);
75 // control.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_GREEN));
76 control
.setLayout(LayoutConstants
.LAYOUT(2, false));
78 Composite leftContainer
= formFactory
.createComposite(control
);
79 leftContainer
.setLayoutData(LayoutConstants
.FILL(1, 4));
80 leftContainer
.setLayout(LayoutConstants
.LAYOUT(2, false));
81 // leftContainer.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_BLUE));
82 RootElement leftRoot
= new RootElement(formFactory
, leftContainer
);
84 Composite rightContainer
= formFactory
.createComposite(control
);
85 rightContainer
.setLayoutData(LayoutConstants
.FILL(1, 4));
86 rightContainer
.setLayout(LayoutConstants
.LAYOUT(2, false));
87 // rightContainer.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_RED));
88 RootElement rightRoot
= new RootElement(formFactory
, rightContainer
);
90 createLeftControls(leftRoot
);
91 createRightControls(rightRoot
);
94 // initialize with default language
95 setSource(CdmStore
.getDefaultLanguage());
99 setPageComplete(true);
103 * @param defaultLanguage
105 private void setSource(Language language
) {
107 Representation preferredRepresentation
=term
.getPreferredRepresentation(language
);
109 if(preferredRepresentation
!= null){
110 text_source
.setSelectedRepresentation(preferredRepresentation
);
119 private void createLeftControls(ICdmFormElement element
){
120 Representation preferredRepresentation
= term
.getPreferredRepresentation(PreferencesUtil
.getGlobalLanguage());
122 text_source
= formFactory
.createRepresentationElement(element
, preferredRepresentation
,term
, TEXT_HEIGHT
, SWT
.NULL
, true);
123 text_source
.setTerm(term
, true);
132 private void createRightControls(ICdmFormElement element
){
133 text_target
= formFactory
.createRepresentationElement(element
, null, term
, TEXT_HEIGHT
, SWT
.NULL
, false);
140 * @see org.eclipse.jface.dialogs.DialogPage#dispose()
144 public void dispose() {
152 public Representation
getTargetRepresentation() {
153 return text_target
.getSelectedRepresentation();
157 * @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)
160 public void propertyChange(PropertyChangeEvent evt
) {
161 if (evt
.getSource() == text_target
){
162 if (!StringUtils
.isBlank(text_target
.getSelectedRepresentation().getAbbreviatedLabel()) ||
163 !StringUtils
.isBlank(text_target
.getSelectedRepresentation().getLabel()) || !StringUtils
.isBlank(text_target
.getSelectedRepresentation().getText())){
164 setPageComplete(true);