Project

General

Profile

Download (5.68 KB) Statistics
| Branch: | Tag: | Revision:
1 2fab6704 Katja Luther
/**
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 3fa460e5 Katja Luther
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
30 2fab6704 Katja Luther
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 3fa460e5 Katja Luther
        private static int TEXT_HEIGHT = 200;
42 2fab6704 Katja Luther
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 3fa460e5 Katja Luther
            Representation preferredRepresentation= term.getPreferredRepresentation(PreferencesUtil.getGlobalLanguage());
120 2fab6704 Katja Luther
121 3fa460e5 Katja Luther
            text_source = formFactory.createRepresentationElement(element, preferredRepresentation,term,  TEXT_HEIGHT,  SWT.NULL, true);
122
            text_source.setTerm(term, true);
123 2fab6704 Katja Luther
124
        }
125
126
        /**
127
         *
128
         * @param element
129
         */
130
        private void createRightControls(ICdmFormElement element){
131 3fa460e5 Katja Luther
            text_target = formFactory.createRepresentationElement(element, null, term, TEXT_HEIGHT, SWT.NULL, false);
132 1103732d Katja Luther
            
133 2fab6704 Katja Luther
        }
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
}