Project

General

Profile

Download (4.54 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.agent.TeamOrPersonBase;
11
import eu.etaxonomy.cdm.model.common.LanguageString;
12
import eu.etaxonomy.cdm.model.media.Media;
13
import eu.etaxonomy.taxeditor.store.CdmStore;
14
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
15
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
16
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
17
import eu.etaxonomy.taxeditor.ui.element.LanguageStringWithLabelElement;
18
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
19
import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
20
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
21

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

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

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

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

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

    
84
        selection_artist.setEntity((TeamOrPersonBase<?>) HibernateProxyHelper
85
                .deproxy(element.getArtist()));
86

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

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

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

    
96
        text_title.setLanguageString(title);
97
    }
98

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

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

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