Project

General

Profile

Download (3.51 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
* Copyright (C) 2018 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.section.common;
10

    
11
import org.eclipse.swt.events.SelectionListener;
12

    
13
import eu.etaxonomy.cdm.model.media.ExternalLink;
14
import eu.etaxonomy.cdm.model.media.ExternalLinkType;
15
import eu.etaxonomy.taxeditor.ui.combo.EnumComboElement;
16
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
17
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
18
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
19
import eu.etaxonomy.taxeditor.ui.element.ISelectableElement;
20
import eu.etaxonomy.taxeditor.ui.element.MultilanguageTextElement;
21
import eu.etaxonomy.taxeditor.ui.element.SelectionArbitrator;
22
import eu.etaxonomy.taxeditor.ui.element.UriWithLabelElement;
23
import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
24

    
25
/**
26
 * @author k.luther
27
 * @since 23.08.2018
28
 *
29
 */
30
public class ExternalLinksElement extends AbstractEntityCollectionElement<ExternalLink> implements ISelectableElement{
31

    
32
    private final SelectionArbitrator selectionArbitrator;
33

    
34
    private UriWithLabelElement externalLinkUriText;
35
    private EnumComboElement<ExternalLinkType> combo_linkType;
36
    private MultilanguageTextElement description;
37

    
38

    
39

    
40
    /**
41
     * @param formFactory
42
     * @param section
43
     * @param entity
44
     * @param removeListener
45
     * @param style
46
     */
47
    public ExternalLinksElement(CdmFormFactory formFactory, AbstractFormSection section, ExternalLink entity,
48
            SelectionListener removeListener, int style) {
49
        super(formFactory, section, entity, removeListener, null, style);
50
        selectionArbitrator = formFactory.createSelectionArbitrator(this);
51
    }
52

    
53
    @Override
54
    public SelectionArbitrator getSelectionArbitrator() {
55

    
56
        return selectionArbitrator;
57
    }
58

    
59
    @Override
60
    public void setEntity(ExternalLink entity) {
61
        if (entity.getUri() != null){
62
            externalLinkUriText.setText(entity.getUri().toString());
63
        }
64
        if (entity.getLinkType() != null){
65
            combo_linkType.setSelection(entity.getLinkType());
66
        }
67
        if (entity.getDescription() != null) {
68
            description.setMultilanguageText(entity.getDescription());
69
//            description.setText(entity.getDescription().get(
70
//                        CdmStore.getDefaultLanguage()).getText());
71
        }
72
    }
73

    
74
    @Override
75
    public void createControls(ICdmFormElement element, int style) {
76

    
77
        combo_linkType = formFactory.createEnumComboElement(ExternalLinkType.class, element, style);
78
        externalLinkUriText = formFactory.createUriWithLabelElement(element, "URI", null,  style);
79

    
80
       // description = formFactory.createMultiLineTextWithLabel(this, "Description", 50, SWT.WRAP);
81
        description = formFactory.createMultiLanguageTextElement(element, "Description", null, 50, style);
82

    
83

    
84
    }
85

    
86
    @Override
87
    public void handleEvent(Object eventSource) {
88
        if (eventSource.equals(externalLinkUriText)){
89
            getEntity().setUri(externalLinkUriText.parseText());
90
        }else if (eventSource.equals(combo_linkType)){
91
            getEntity().setLinkType(combo_linkType.getSelection());
92
        }else if (eventSource.equals(description)){
93
            description.getMultilanguageText().values()
94
            .forEach(languageString -> getEntity().putDescription(languageString));
95

    
96
        }
97

    
98
    }
99

    
100

    
101

    
102
}
(1-1/4)