Project

General

Profile

Download (5.68 KB) Statistics
| Branch: | Tag: | Revision:
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
}
(4-4/7)