Project

General

Profile

Download (5.57 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.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 = 400;
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(CdmStore.getDefaultLanguage());
120

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

    
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, true);
132
        }
133

    
134

    
135

    
136

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

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

    
154
        /* (non-Javadoc)
155
         * @see java.beans.PropertyChangeListener#propertyChange(java.beans.PropertyChangeEvent)
156
         */
157
        @Override
158
        public void propertyChange(PropertyChangeEvent evt) {
159
            if (evt.getSource() == text_target){
160
                if (!StringUtils.isBlank(text_target.getSelectedRepresentation().getAbbreviatedLabel()) ||
161
                        !StringUtils.isBlank(text_target.getSelectedRepresentation().getLabel()) || !StringUtils.isBlank(text_target.getSelectedRepresentation().getText())){
162
                    setPageComplete(true);
163
                }
164
            }
165

    
166
        }
167

    
168

    
169

    
170

    
171
}
(4-4/7)