ref #6190 removing svn property place holder in first line of code - java files
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / translation / TermTranslationWizardPage.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.translation;
10
11 /**
12 * @author k.luther
13 * @date 22.06.2016
14 *
15 */
16
17 import java.beans.PropertyChangeEvent;
18 import java.beans.PropertyChangeListener;
19
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;
25
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;
37
38 public class TermTranslationWizardPage extends WizardPage implements PropertyChangeListener{
39
40
41 private static int TEXT_HEIGHT = 200;
42
43 private final TermBase term;
44
45 MultilanguageTextElement source;
46
47 private final CdmFormFactory formFactory;
48
49 private RepresentationElement text_source;
50
51 private RepresentationElement text_target;
52
53 /**
54 * <p>Constructor for TranslationWizardPage.</p>
55 *
56 * @param multilanguageText a {@link java.util.Map} object.
57 */
58 public TermTranslationWizardPage(TermBase term) {
59 super("TranslationWizardPage");
60 //Assert.isNotNull(multilanguageText, "Multilanguage text may not be null");
61 setTitle("Add or edit translations.");
62 this.term = term;
63 formFactory = new CdmFormFactory(Display.getCurrent());
64 setPageComplete(false);
65 }
66
67 /* (non-Javadoc)
68 * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
69 */
70 /** {@inheritDoc} */
71 @Override
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));
76
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);
82
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);
88
89 createLeftControls(leftRoot);
90 createRightControls(rightRoot);
91
92
93 // initialize with default language
94 setSource(CdmStore.getDefaultLanguage());
95
96
97 setControl(control);
98 setPageComplete(true);
99 }
100
101 /**
102 * @param defaultLanguage
103 */
104 private void setSource(Language language) {
105
106 Representation preferredRepresentation =term.getPreferredRepresentation(language);
107
108 if(preferredRepresentation != null){
109 text_source.setSelectedRepresentation(preferredRepresentation);
110 }
111 }
112
113
114 /**
115 *
116 * @param element
117 */
118 private void createLeftControls(ICdmFormElement element){
119 Representation preferredRepresentation= term.getPreferredRepresentation(PreferencesUtil.getGlobalLanguage());
120
121 text_source = formFactory.createRepresentationElement(element, preferredRepresentation,term, TEXT_HEIGHT, SWT.NULL, true);
122 text_source.setTerm(term, true);
123
124 }
125
126 /**
127 *
128 * @param element
129 */
130 private void createRightControls(ICdmFormElement element){
131 text_target = formFactory.createRepresentationElement(element, null, term, TEXT_HEIGHT, SWT.NULL, false);
132
133 }
134
135
136
137
138 /* (non-Javadoc)
139 * @see org.eclipse.jface.dialogs.DialogPage#dispose()
140 */
141 /** {@inheritDoc} */
142 @Override
143 public void dispose() {
144 super.dispose();
145 }
146
147 /**
148 * @return
149 *
150 */
151 public Representation getTargetRepresentation() {
152 return text_target.getSelectedRepresentation();
153 }
154
155 /* (non-Javadoc)
156 * @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)
157 */
158 @Override
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);
164 }
165 }
166
167 }
168
169
170
171
172 }