Project

General

Profile

Download (4.91 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.model.AbstractUtility;
13
import eu.etaxonomy.taxeditor.store.CdmStore;
14
import eu.etaxonomy.taxeditor.ui.dialog.selection.MediaSelectionDialog;
15
import eu.etaxonomy.taxeditor.ui.element.AbstractFormSection;
16
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
17
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
18
import eu.etaxonomy.taxeditor.ui.element.LanguageStringWithLabelElement;
19
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
20
import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
21
import eu.etaxonomy.taxeditor.ui.selection.EntitySelectionElement;
22

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

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

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

    
63
    /*
64
     * (non-Javadoc)
65
     *
66
     * @see
67
     * eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetElementComposite
68
     * #createControls(org.eclipse.swt.widgets.Composite, int)
69
     */
70
    /** {@inheritDoc} */
71
    @Override
72
    public void createControls(ICdmFormElement element, int style) {
73

    
74
        text_title = formFactory.createLanguageStringWithLabelElement(element, "Title", null, style);
75
        selection_artist = formFactory.createSelectionElement(AgentBase.class, getConversationHolder(), element, "Artist", null, EntitySelectionElement.ALL, style);
76
        text_description = formFactory.createLanguageStringWithLabelElement(element, "Description", null, 100, true, style);
77
        mediaDetailElement = formFactory.createMediaDetailElement(element);
78
    }
79

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

    
86
        selection_artist.setEntity((AgentBase<?>) HibernateProxyHelper
87
                .deproxy(element.getArtist()));
88

    
89
        text_description.setLanguageString(element.getDescription(CdmStore
90
                .getDefaultLanguage()));
91

    
92
        LanguageString title = element.getTitle(CdmStore.getDefaultLanguage());
93

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

    
98
        text_title.setLanguageString(title);
99
    }
100

    
101
    /* (non-Javadoc)
102
     * @see eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement#selectFromDialog()
103
     */
104
    @Override
105
    protected Media selectFromDialog() {
106
        return MediaSelectionDialog.select(AbstractUtility.getShell(), null, null);
107
    }
108

    
109
    public void toggleAdvancedMediaView(){
110
        mediaDetailElement.toggleAdvancedMediaView();
111
    }
112

    
113
    /*
114
     * (non-Javadoc)
115
     *
116
     * @see
117
     * eu.etaxonomy.taxeditor.section.AbstractEntityCollectionElement#handleEvent
118
     * (java.lang.Object)
119
     */
120
    /** {@inheritDoc} */
121
    @Override
122
    public void handleEvent(Object eventSource) {
123
        if (eventSource == selection_artist) {
124
            getEntity().setArtist(selection_artist.getSelection());
125
        } else if (eventSource == text_description) {
126
            getEntity().addDescription(text_description.getLanguageString());
127
        } else if (eventSource == text_title) {
128
            getEntity().putTitle(text_title.getLanguageString());
129
            if (getParentElement() instanceof AbstractCdmDetailSection) {
130
                ((AbstractCdmDetailSection<?>) getParentElement()).updateTitle();
131
            }
132
        }
133
    }
134

    
135
    /**
136
     * @return
137
     */
138
    public boolean isAdvancedMediaView() {
139
        return mediaDetailElement.isAdvancedMediaView();
140
    }
141
}
(3-3/8)