Project

General

Profile

Download (5.69 KB) Statistics
| Branch: | Tag: | Revision:
1
// $Id$
2
/**
3
* Copyright (C) 2016 EDIT
4
* European Distributed Institute of Taxonomy
5
* http://www.e-taxonomy.eu
6
*
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.
9
*/
10
package eu.etaxonomy.taxeditor.ui.translation;
11

    
12
/**
13
 * @author k.luther
14
 * @date 22.06.2016
15
 *
16
 */
17

    
18
import java.beans.PropertyChangeEvent;
19
import java.beans.PropertyChangeListener;
20

    
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;
26

    
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;
38

    
39
public class TermTranslationWizardPage extends WizardPage implements PropertyChangeListener{
40

    
41

    
42
        private static int TEXT_HEIGHT = 200;
43

    
44
        private final TermBase term;
45

    
46
        MultilanguageTextElement source;
47

    
48
        private final CdmFormFactory formFactory;
49

    
50
        private RepresentationElement text_source;
51

    
52
        private RepresentationElement text_target;
53

    
54
        /**
55
         * <p>Constructor for TranslationWizardPage.</p>
56
         *
57
         * @param multilanguageText a {@link java.util.Map} object.
58
         */
59
        public TermTranslationWizardPage(TermBase term) {
60
            super("TranslationWizardPage");
61
            //Assert.isNotNull(multilanguageText, "Multilanguage text may not be null");
62
            setTitle("Add or edit translations.");
63
            this.term = term;
64
            formFactory = new CdmFormFactory(Display.getCurrent());
65
            setPageComplete(false);
66
        }
67

    
68
        /* (non-Javadoc)
69
         * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
70
         */
71
        /** {@inheritDoc} */
72
        @Override
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));
77

    
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);
83

    
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);
89

    
90
            createLeftControls(leftRoot);
91
            createRightControls(rightRoot);
92

    
93

    
94
            // initialize with default language
95
            setSource(CdmStore.getDefaultLanguage());
96

    
97

    
98
            setControl(control);
99
            setPageComplete(true);
100
        }
101

    
102
        /**
103
         * @param defaultLanguage
104
         */
105
        private void setSource(Language language) {
106

    
107
           Representation preferredRepresentation =term.getPreferredRepresentation(language);
108

    
109
            if(preferredRepresentation != null){
110
               text_source.setSelectedRepresentation(preferredRepresentation);
111
            }
112
        }
113

    
114

    
115
        /**
116
         *
117
         * @param element
118
         */
119
        private void createLeftControls(ICdmFormElement element){
120
            Representation preferredRepresentation= term.getPreferredRepresentation(PreferencesUtil.getGlobalLanguage());
121

    
122
            text_source = formFactory.createRepresentationElement(element, preferredRepresentation,term,  TEXT_HEIGHT,  SWT.NULL, true);
123
            text_source.setTerm(term, true);
124

    
125
        }
126

    
127
        /**
128
         *
129
         * @param element
130
         */
131
        private void createRightControls(ICdmFormElement element){
132
            text_target = formFactory.createRepresentationElement(element, null, term, TEXT_HEIGHT, SWT.NULL, false);
133
            
134
        }
135

    
136

    
137

    
138

    
139
        /* (non-Javadoc)
140
         * @see org.eclipse.jface.dialogs.DialogPage#dispose()
141
         */
142
        /** {@inheritDoc} */
143
        @Override
144
        public void dispose() {
145
            super.dispose();
146
        }
147

    
148
        /**
149
         * @return
150
         *
151
         */
152
        public Representation getTargetRepresentation() {
153
            return text_target.getSelectedRepresentation();
154
        }
155

    
156
        /* (non-Javadoc)
157
         * @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)
158
         */
159
        @Override
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);
165
                }
166
            }
167

    
168
        }
169

    
170

    
171

    
172

    
173
}
(4-4/7)