Project

General

Profile

Download (4.48 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
 *
3
 */
4
package eu.etaxonomy.taxeditor.ui.section.media;
5

    
6
import org.eclipse.swt.events.SelectionListener;
7

    
8
import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
9
import eu.etaxonomy.cdm.model.agent.AgentBase;
10
import eu.etaxonomy.cdm.model.common.LanguageString;
11
import eu.etaxonomy.cdm.model.media.Media;
12
import eu.etaxonomy.taxeditor.store.CdmStore;
13
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
14
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
15
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
16
import eu.etaxonomy.taxeditor.ui.element.LanguageStringWithLabelElement;
17
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
18
import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
19
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
20

    
21
/**
22
 * <p>
23
 * MediaElement class.
24
 * </p>
25
 *
26
 * @author n.hoffmann
27
 * @created Nov 17, 2009
28
 * @version 1.0
29
 */
30
public class MediaMetaElement extends AbstractEntityCollectionElement<Media> {
31

    
32
    private EntitySelectionElement<AgentBase> selection_artist;
33
    private LanguageStringWithLabelElement text_description;
34
    private LanguageStringWithLabelElement text_title;
35
    private MediaDetailElement mediaDetailElement;
36

    
37
    /**
38
     * <p>
39
     * Constructor for MediaElement.
40
     * </p>
41
     *
42
     * @param formElement
43
     *            a {@link eu.etaxonomy.taxeditor.ui.element.AbstractFormSection}
44
     *            object.
45
     * @param element
46
     *            a {@link eu.etaxonomy.cdm.model.media.Media} object.
47
     * @param removeListener
48
     *            a {@link org.eclipse.swt.events.SelectionListener} object.
49
     * @param style
50
     *            a int.
51
     * @param cdmFormFactory
52
     *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
53
     *            object.
54
     */
55
    public MediaMetaElement(CdmFormFactory cdmFormFactory,
56
            AbstractFormSection<?> formElement, Media element,
57
            SelectionListener removeListener, int style) {
58
        super(cdmFormFactory, formElement, element, removeListener, null, style);
59
    }
60

    
61
    /*
62
     * (non-Javadoc)
63
     *
64
     * @see
65
     * eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetElementComposite
66
     * #createControls(org.eclipse.swt.widgets.Composite, int)
67
     */
68
    /** {@inheritDoc} */
69
    @Override
70
    public void createControls(ICdmFormElement element, int style) {
71
        text_title = formFactory.createLanguageStringWithLabelElement(element, "Title", null, style);
72
        selection_artist = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), element, "Artist", null, EntitySelectionElement.ALL, style);
73
        text_description = formFactory.createLanguageStringWithLabelElement(element, "Description", null, 100, true, style);
74
        mediaDetailElement = formFactory.createMediaDetailElement(element);
75
    }
76

    
77
    /** {@inheritDoc} */
78
    @Override
79
    public void setEntity(Media element) {
80
        this.entity = element;
81
        mediaDetailElement.setEntity(element);
82

    
83
        selection_artist.setEntity((AgentBase<?>) HibernateProxyHelper
84
                .deproxy(element.getArtist()));
85

    
86
        text_description.setLanguageString(element.getDescription(CdmStore
87
                .getDefaultLanguage()));
88

    
89
        LanguageString title = element.getTitle(CdmStore.getDefaultLanguage());
90

    
91
        if (title == null) {
92
            title = LanguageString.NewInstance("", CdmStore.getDefaultLanguage());
93
        }
94

    
95
        text_title.setLanguageString(title);
96
    }
97

    
98
    public void toggleAdvancedMediaView(){
99
        mediaDetailElement.toggleAdvancedMediaView();
100
    }
101

    
102
    /*
103
     * (non-Javadoc)
104
     *
105
     * @see
106
     * eu.etaxonomy.taxeditor.section.AbstractEntityCollectionElement#handleEvent
107
     * (java.lang.Object)
108
     */
109
    /** {@inheritDoc} */
110
    @Override
111
    public void handleEvent(Object eventSource) {
112
        if (eventSource == selection_artist) {
113
            getEntity().setArtist(selection_artist.getSelection());
114
        } else if (eventSource == text_description) {
115
            getEntity().addDescription(text_description.getLanguageString());
116
        } else if (eventSource == text_title) {
117
            getEntity().putTitle(text_title.getLanguageString());
118
            if (getParentElement() instanceof AbstractCdmDetailSection) {
119
                ((AbstractCdmDetailSection<?>) getParentElement()).updateTitle();
120
            }
121
        }
122
    }
123

    
124
    /**
125
     * @return
126
     */
127
    public boolean isAdvancedMediaView() {
128
        return mediaDetailElement.isAdvancedMediaView();
129
    }
130
}
(3-3/8)