Project

General

Profile

Download (4.38 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.element;
10

    
11
import org.eclipse.jface.window.Window;
12
import org.eclipse.jface.wizard.WizardDialog;
13
import org.eclipse.swt.SWT;
14
import org.eclipse.swt.events.SelectionAdapter;
15
import org.eclipse.swt.events.SelectionEvent;
16

    
17
import eu.etaxonomy.cdm.model.term.Representation;
18
import eu.etaxonomy.cdm.model.term.TermBase;
19
import eu.etaxonomy.cdm.persistence.dto.TermDto;
20
import eu.etaxonomy.taxeditor.model.MessagingUtils;
21
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
22
import eu.etaxonomy.taxeditor.store.CdmStore;
23
import eu.etaxonomy.taxeditor.ui.section.vocabulary.TermTranslationWizard;
24

    
25
/**
26
 * @author k.luther
27
 * @date 23.06.2016
28
 *
29
 */
30
public class TranslatableRepresentationElement extends RepresentationElement {
31

    
32
    /**
33
     * @param formFactory
34
     * @param formElement
35
     * @param representation
36
     * @param term
37
     * @param textHeight
38
     * @param style
39
     * @param isTranslationWizard
40
     */
41
    public TranslatableRepresentationElement(CdmFormFactory formFactory, ICdmFormElement formElement,
42
            Representation representation, TermBase term, Integer textHeight, int style, boolean fill) {
43
        super(formFactory, formElement, representation, term, textHeight, style, fill);
44

    
45

    
46
    }
47

    
48
    public TranslatableRepresentationElement(CdmFormFactory formFactory, ICdmFormElement formElement,
49
            Representation representation, TermDto term, Integer textHeight, int style, boolean fill) {
50
        super(formFactory, formElement, representation, term, textHeight, style, fill);
51

    
52

    
53
    }
54

    
55

    
56
    /**
57
     * @param cdmFormFactory
58
     * @param parentElement
59
     * @param term
60
     * @param textHeight
61
     * @param style
62
     */
63
    public TranslatableRepresentationElement(CdmFormFactory cdmFormFactory, ICdmFormElement parentElement,
64
            TermBase term, int textHeight, int style, boolean fill) {
65
        super(cdmFormFactory, parentElement, term, textHeight, style, fill);
66
    }
67

    
68

    
69
    private class OpenTranslationWizard extends SelectionAdapter {
70

    
71
        public OpenTranslationWizard() {
72
            super();
73
        }
74

    
75
        /*
76
         * (non-Javadoc)
77
         *
78
         * @see
79
         * org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse
80
         * .swt.events.SelectionEvent)
81
         */
82
        @Override
83
        public void widgetSelected(SelectionEvent e) {
84
            TermBase term = getTerm();
85

    
86
            if (term == null){
87
                MessagingUtils.warningDialog("No term to translate", getClass(), "The term is empty and therefore can not be translated");
88
            }
89

    
90
            TermTranslationWizard wizard = new TermTranslationWizard(term);
91
            WizardDialog dialog = new WizardDialog(getLayoutComposite()
92
                    .getShell(), wizard);
93

    
94
            if (dialog.open() == Window.OK) {
95
                combo_language.setTerms(getLanguages());
96
                updateControls();
97
            }
98

    
99
            firePropertyChangeEvent( e);
100

    
101
        }
102
    }
103
    @Override
104
    protected void createRepresentationEditingElements(ICdmFormElement formElement, int style) {
105
        super.createRepresentationEditingElements(formElement, style );
106
        button = formFactory.createButton(getLayoutComposite(),
107
                "Open In Translation Editor", SWT.PUSH);
108
        addControl(button);
109
        button.setLayoutData(LayoutConstants.RIGHT());
110
        button.addSelectionListener(new OpenTranslationWizard());
111

    
112
    }
113

    
114
    @Override
115
    public void setTerm(
116
            TermBase term, boolean update) {
117
        super.setTerm(term, update);
118
        if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
119
        	button.setEnabled(false);
120
        }
121
        updateControls();
122
    }
123

    
124

    
125
    /**
126
     *
127
     */
128
    @Override
129
    protected void updateControls() {
130
       super.updateControls();
131
       if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
132
    	   button.setEnabled(true);
133
    	   combo_language.setTerms(getLanguages());
134
    	   if (selectedRepresentation != null){
135
    	       combo_language.setSelection(selectedRepresentation.getLanguage());
136
    	   }else {
137
    	       combo_language.setSelection(CdmStore.getDefaultLanguage());
138
    	   }
139
       }
140

    
141
    }
142

    
143

    
144
}
(51-51/53)