Project

General

Profile

Download (4.32 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
import org.eclipse.jface.util.IPropertyChangeListener;
12
import org.eclipse.jface.wizard.WizardPage;
13
import org.eclipse.swt.SWT;
14
import org.eclipse.swt.widgets.Composite;
15
import org.eclipse.swt.widgets.Display;
16

    
17
import eu.etaxonomy.cdm.model.common.Language;
18
import eu.etaxonomy.cdm.model.term.Representation;
19
import eu.etaxonomy.cdm.model.term.TermBase;
20
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
21
import eu.etaxonomy.taxeditor.store.CdmStore;
22
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
23
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
24
import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
25
import eu.etaxonomy.taxeditor.ui.element.MultilanguageTextElement;
26
import eu.etaxonomy.taxeditor.ui.element.RepresentationElement;
27
import eu.etaxonomy.taxeditor.ui.element.RootElement;
28

    
29
/**
30
 * @author k.luther
31
 * @date 22.06.2016
32
 *
33
 */
34
public class TermTranslationWizardPage extends WizardPage implements IPropertyChangeListener{
35

    
36
        private static int TEXT_HEIGHT = 200;
37

    
38
        private final TermBase term;
39

    
40
        private MultilanguageTextElement source;
41

    
42
        private final CdmFormFactory formFactory;
43

    
44
        private RepresentationElement text_source;
45

    
46
        private RepresentationElement text_target;
47

    
48
        public TermTranslationWizardPage(TermBase term) {
49
            super("TranslationWizardPage");
50
            //Assert.isNotNull(multilanguageText, "Multilanguage text may not be null");
51
            setTitle("Add or edit translations.");
52
            this.term = term;
53
            formFactory = new CdmFormFactory(Display.getCurrent());
54
            formFactory.addPropertyChangeListener(this);
55
            setPageComplete(false);
56
        }
57

    
58
        @Override
59
        public void createControl(Composite parent) {
60
            Composite control = formFactory.createComposite(parent);
61
            control.setLayout(LayoutConstants.LAYOUT(2, false));
62

    
63
            Composite leftContainer = formFactory.createComposite(control);
64
            leftContainer.setLayoutData(LayoutConstants.FILL(1, 4));
65
            leftContainer.setLayout(LayoutConstants.LAYOUT(2, false));
66
            RootElement leftRoot = new RootElement(formFactory, leftContainer);
67

    
68
            Composite rightContainer = formFactory.createComposite(control);
69
            rightContainer.setLayoutData(LayoutConstants.FILL(1, 4));
70
            rightContainer.setLayout(LayoutConstants.LAYOUT(2, false));
71
            RootElement rightRoot = new RootElement(formFactory, rightContainer);
72

    
73
            createLeftControls(leftRoot);
74
            createRightControls(rightRoot);
75

    
76
            // initialize with default language
77
            setSource(CdmStore.getDefaultLanguage());
78

    
79
            setControl(control);
80
            setPageComplete(true);
81
        }
82

    
83
        private void setSource(Language language) {
84
           Representation preferredRepresentation =term.getPreferredRepresentation(language);
85
            if(preferredRepresentation != null){
86
               text_source.setSelectedRepresentation(preferredRepresentation);
87
            }
88
        }
89

    
90
        private void createLeftControls(ICdmFormElement element){
91
            Representation preferredRepresentation= term.getPreferredRepresentation(PreferencesUtil.getGlobalLanguage());
92

    
93
            text_source = formFactory.createRepresentationElement(element, preferredRepresentation,term,  TEXT_HEIGHT,  SWT.NULL, true);
94
            text_source.setTerm(term, true);
95

    
96
        }
97

    
98
        private void createRightControls(ICdmFormElement element){
99
            text_target = formFactory.createRepresentationElement(element, null, term, TEXT_HEIGHT, SWT.NULL, false);
100
        }
101

    
102
        @Override
103
        public void dispose() {
104
            super.dispose();
105
        }
106

    
107
        public Representation getTargetRepresentation() {
108
            return text_target.getSelectedRepresentation();
109
        }
110

    
111
        @Override
112
        public void propertyChange(org.eclipse.jface.util.PropertyChangeEvent event) {
113
            if (event.getSource() == text_target){
114
                getWizard().getContainer().updateButtons();
115
            }
116
        }
117
}
(4-4/7)