Project

General

Profile

« Previous | Next » 

Revision 01b09f61

Added by Katja Luther almost 8 years ago

#5908: fix that the combo box on the left hand side contains only available languages

View differences:

eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/CdmFormFactory.java
611 611
     *         {@link eu.etaxonomy.taxeditor.ui.element.RepresentationElement}
612 612
     *         object.
613 613
     */
614
    public RepresentationElement createRepresentationElement(ICdmFormElement parentElement, Representation representation, TermBase term,int textHeight, int style, boolean isTranslationWizard) {
615
        RepresentationElement element = new RepresentationElement(this, parentElement, representation, term, textHeight, style, isTranslationWizard);
614
    public RepresentationElement createRepresentationElement(ICdmFormElement parentElement, Representation representation, TermBase term,int textHeight, int style) {
615
        RepresentationElement element = new RepresentationElement(this, parentElement, representation, term, textHeight, style);
616
        adapt(element);
617
        parentElement.addElement(element);
618
        return element;
619
    }
620

  
621
    /**
622
     * <p>
623
     * createMultiLanguageTextElement
624
     * </p>
625
     *
626
     * @param parentElement
627
     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
628
     *            object.
629
     *
630
     * @param Representation
631
     *            a {@link eu.etaxonomy.cdm.model.common.Representation} object.
632
     * @param textHeight
633
     *            a int.
634
     * @param style
635
     *            a int.
636
     * @return a
637
     *         {@link eu.etaxonomy.taxeditor.ui.element.RepresentationElement}
638
     *         object.
639
     */
640
    public TranslatableRepresentationElement createTranslatableRepresentationElement(ICdmFormElement parentElement, Representation representation, TermBase term,int textHeight, int style) {
641
        TranslatableRepresentationElement element = new TranslatableRepresentationElement(this, parentElement, representation, term, textHeight, style);
642
        adapt(element);
643
        parentElement.addElement(element);
644
        return element;
645
    }
646

  
647
    /**
648
     * <p>
649
     * createMultiLanguageTextElement
650
     * </p>
651
     *
652
     * @param parentElement
653
     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
654
     *            object.
655
     *
656
     * @param term
657
     *            a {@link eu.etaxonomy.cdm.model.common.Representation} object.
658
     * @param textHeight
659
     *            a int.
660
     * @param style
661
     *            a int.
662
     * @return a
663
     *         {@link eu.etaxonomy.taxeditor.ui.element.RepresentationElement}
664
     *         object.
665
     */
666
    public RepresentationElement createRepresentationElement(ICdmFormElement parentElement, TermBase term, int textHeight, int style) {
667
        RepresentationElement element = new RepresentationElement(this, parentElement, term, textHeight, style);
616 668
        adapt(element);
617 669
        parentElement.addElement(element);
618 670
        return element;
......
637 689
     *         {@link eu.etaxonomy.taxeditor.ui.element.RepresentationElement}
638 690
     *         object.
639 691
     */
640
    public RepresentationElement createRepresentationElement(ICdmFormElement parentElement, TermBase term, int textHeight, int style, boolean isTranslationWizard) {
641
        RepresentationElement element = new RepresentationElement(this, parentElement, term, textHeight, style, isTranslationWizard);
692
    public TranslatableRepresentationElement createTranslatableRepresentationElement(ICdmFormElement parentElement, TermBase term, int textHeight, int style) {
693
        TranslatableRepresentationElement element = new TranslatableRepresentationElement(this, parentElement, term, textHeight, style);
642 694
        adapt(element);
643 695
        parentElement.addElement(element);
644 696
        return element;
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/RepresentationElement.java
21 21
import java.util.List;
22 22

  
23 23
import org.eclipse.jface.util.PropertyChangeEvent;
24
import org.eclipse.jface.window.Window;
25
import org.eclipse.jface.wizard.WizardDialog;
26
import org.eclipse.swt.SWT;
27
import org.eclipse.swt.events.SelectionAdapter;
28 24
import org.eclipse.swt.events.SelectionEvent;
29 25
import org.eclipse.swt.events.SelectionListener;
30 26
import org.eclipse.swt.widgets.Button;
......
34 30
import eu.etaxonomy.cdm.model.common.TermBase;
35 31
import eu.etaxonomy.cdm.model.common.TermType;
36 32
import eu.etaxonomy.taxeditor.model.DefaultTermComparator;
37
import eu.etaxonomy.taxeditor.model.MessagingUtils;
38 33
import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
39 34
import eu.etaxonomy.taxeditor.store.CdmStore;
40 35
import eu.etaxonomy.taxeditor.ui.combo.TermComboElement;
41
import eu.etaxonomy.taxeditor.ui.section.vocabulary.TermTranslationWizard;
42 36

  
43 37
public class RepresentationElement  extends AbstractCdmFormElement implements
44 38
SelectionListener{
45
        private class OpenTranslationWizard extends SelectionAdapter {
46 39

  
47
            public OpenTranslationWizard() {
48
                super();
49
            }
50

  
51
            /*
52
             * (non-Javadoc)
53
             *
54
             * @see
55
             * org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse
56
             * .swt.events.SelectionEvent)
57
             */
58
            @Override
59
            public void widgetSelected(SelectionEvent e) {
60
                TermBase term = getTerm();
61

  
62
                if (term == null){
63
                    MessagingUtils.warningDialog("No term to translate", getClass(), "The term is empty and therefore can not be translated");
64
                }
65

  
66
                TermTranslationWizard wizard = new TermTranslationWizard(term);
67
                WizardDialog dialog = new WizardDialog(getLayoutComposite()
68
                        .getShell(), wizard);
69

  
70
                if (dialog.open() == Window.OK) {
71
                    combo_language.setTerms(getLanguages());
72
                    updateControls();
73
                }
74

  
75
            }
76
        }
77

  
78
        private TermComboElement<Language> combo_language;
40
        protected TermComboElement<Language> combo_language;
79 41

  
80 42
        protected TextWithLabelElement element_Label;
81 43
        protected TextWithLabelElement element_abbrevLabel;
82 44
        protected TextWithLabelElement element_text;
83 45

  
84
        private Button button;
46
        protected Button button;
85 47

  
86
        private Representation selectedRepresentation;
87
        private TermBase term;
48
        protected Representation selectedRepresentation;
49
        protected TermBase term;
88 50

  
89
        private final boolean isTranslationWizard;
51
       // protected final boolean isTranslationWizard;
90 52

  
91 53

  
92 54
        /**
......
110 72
         */
111 73
        public RepresentationElement(CdmFormFactory formFactory,
112 74
                ICdmFormElement formElement, TermBase term,
113
                Integer textHeight, int style, boolean isTranslationWizard) {
75
                Integer textHeight, int style) {
114 76
            super(formFactory, formElement);
115
            this.isTranslationWizard = isTranslationWizard;
77

  
116 78
            formFactory.addPropertyChangeListener(this);
117 79

  
118 80
            element_Label = this.formFactory.createTextWithLabelElement(formElement, "Label", null, style);
......
149 111
         */
150 112
        public RepresentationElement(CdmFormFactory formFactory,
151 113
                ICdmFormElement formElement, Representation representation, TermBase term,
152
                Integer textHeight, int style, boolean isTranslationWizard) {
114
                Integer textHeight, int style) {
153 115
            super(formFactory, formElement);
154
            this.isTranslationWizard = isTranslationWizard;
116

  
155 117
            formFactory.addPropertyChangeListener(this);
156 118

  
157 119
            element_Label = this.formFactory.createTextWithLabelElement(formElement, "Label", null, style);
......
168 130

  
169 131
        }
170 132

  
171
        private void createRepresentationEditingElements(
133
        protected void createRepresentationEditingElements(
172 134
                ICdmFormElement formElement, int style) {
173 135

  
174 136
            combo_language = formFactory.createDefinedTermComboElement(TermType.Language, formElement,
......
177 139

  
178 140
            addControl(formFactory.createLabel(getLayoutComposite(), ""));
179 141

  
180
            if (!isTranslationWizard){
181
                button = formFactory.createButton(getLayoutComposite(),
182
                        "Open In Translation Editor", SWT.PUSH);
183
                addControl(button);
184
                button.setLayoutData(LayoutConstants.RIGHT());
185
                button.addSelectionListener(new OpenTranslationWizard());
186
            }
142

  
187 143
        }
188 144

  
189 145
        public List<Language> getLanguages() {
......
249 205

  
250 206
            if (selectedRepresentation != null) {
251 207
               combo_language.setTerms(getLanguages());
252
               if (!isTranslationWizard){
253
                   button.setEnabled(false);
254
               }
255

  
256 208
            }
257 209
            updateControls();
258 210
        }
......
260 212
        /**
261 213
         *
262 214
         */
263
        private void updateControls() {
215
        protected void updateControls() {
264 216
            Representation preferredRepresentation = term
265 217
                    .getPreferredRepresentation(Arrays.asList(new Language[] { CdmStore
266 218
                                    .getDefaultLanguage() }));
......
270 222
            element_text.setText(preferredRepresentation.getDescription());
271 223
            selectedRepresentation = preferredRepresentation;
272 224
            if (PreferencesUtil.isMultilanguageTextEditingCapability()) {
273

  
274 225
                combo_language.setSelection(preferredRepresentation == null?CdmStore.getDefaultLanguage():preferredRepresentation.getLanguage());
275
                if (!isTranslationWizard){
276
                    button.setEnabled(true);
277
                    combo_language.setTerms(getLanguages());
278
                    combo_language.setSelection(preferredRepresentation.getLanguage());
279
                }
280 226
            }
281 227
        }
282 228

  
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/element/TranslatableRepresentationElement.java
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.element;
11

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

  
18
import eu.etaxonomy.cdm.model.common.Representation;
19
import eu.etaxonomy.cdm.model.common.TermBase;
20
import eu.etaxonomy.taxeditor.model.MessagingUtils;
21
import eu.etaxonomy.taxeditor.ui.section.vocabulary.TermTranslationWizard;
22

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

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

  
43
    }
44

  
45

  
46
    /**
47
     * @param cdmFormFactory
48
     * @param parentElement
49
     * @param term
50
     * @param textHeight
51
     * @param style
52
     */
53
    public TranslatableRepresentationElement(CdmFormFactory cdmFormFactory, ICdmFormElement parentElement,
54
            TermBase term, int textHeight, int style) {
55
        super(cdmFormFactory, parentElement, term, textHeight, style);
56
    }
57

  
58

  
59
    private class OpenTranslationWizard extends SelectionAdapter {
60

  
61
        public OpenTranslationWizard() {
62
            super();
63
        }
64

  
65
        /*
66
         * (non-Javadoc)
67
         *
68
         * @see
69
         * org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse
70
         * .swt.events.SelectionEvent)
71
         */
72
        @Override
73
        public void widgetSelected(SelectionEvent e) {
74
            TermBase term = getTerm();
75

  
76
            if (term == null){
77
                MessagingUtils.warningDialog("No term to translate", getClass(), "The term is empty and therefore can not be translated");
78
            }
79

  
80
            TermTranslationWizard wizard = new TermTranslationWizard(term);
81
            WizardDialog dialog = new WizardDialog(getLayoutComposite()
82
                    .getShell(), wizard);
83

  
84
            if (dialog.open() == Window.OK) {
85
                combo_language.setTerms(getLanguages());
86
                updateControls();
87
            }
88

  
89
        }
90
    }
91
    @Override
92
    protected void createRepresentationEditingElements(ICdmFormElement formElement, int style) {
93
        super.createRepresentationEditingElements(formElement, style);
94
        button = formFactory.createButton(getLayoutComposite(),
95
                "Open In Translation Editor", SWT.PUSH);
96
        addControl(button);
97
        button.setLayoutData(LayoutConstants.RIGHT());
98
        button.addSelectionListener(new OpenTranslationWizard());
99

  
100
    }
101

  
102
    @Override
103
    public void setTerm(
104
            TermBase term) {
105
        super.setTerm(term);
106
        button.setEnabled(false);
107
        updateControls();
108
    }
109

  
110

  
111
    /**
112
     *
113
     */
114
    @Override
115
    protected void updateControls() {
116
       super.updateControls();
117
       button.setEnabled(true);
118
       combo_language.setTerms(getLanguages());
119
       combo_language.setSelection(selectedRepresentation.getLanguage());
120

  
121
    }
122

  
123

  
124
}
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/section/vocabulary/AbstractTermBaseDetailElement.java
52 52
	protected void createControls(ICdmFormElement formElement,
53 53
			T entity, int style) {
54 54

  
55
		element_Representation = formFactory.createRepresentationElement(formElement,  getEntity().getPreferredRepresentation(CdmStore.getDefaultLanguage()),getEntity(), 100, style, false);
55
		element_Representation = formFactory.createTranslatableRepresentationElement(formElement,  getEntity().getPreferredRepresentation(CdmStore.getDefaultLanguage()),getEntity(), 100, style);
56 56

  
57 57
		uri_uri = formFactory.createUriWithLabelElement(formElement, "URI", getEntity().getUri(), style);
58 58

  
eu.etaxonomy.taxeditor.store/src/main/java/eu/etaxonomy/taxeditor/ui/translation/TermTranslationWizardPage.java
118 118
        private void createLeftControls(ICdmFormElement element){
119 119
            Representation preferredRepresentation= term.getPreferredRepresentation(CdmStore.getDefaultLanguage());
120 120

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

  
123 124

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

  
134 135

  

Also available in: Unified diff