performed javacscript:fix and worked on documentation
[taxeditor.git] / taxeditor-editor / src / main / java / eu / etaxonomy / taxeditor / section / supplemental / MediaElement.java
1 /**
2 *
3 */
4 package eu.etaxonomy.taxeditor.section.supplemental;
5
6 import org.eclipse.swt.events.SelectionListener;
7
8 import eu.etaxonomy.cdm.hibernate.HibernateProxyHelper;
9 import eu.etaxonomy.cdm.model.agent.TeamOrPersonBase;
10 import eu.etaxonomy.cdm.model.common.LanguageString;
11 import eu.etaxonomy.cdm.model.media.Media;
12 import eu.etaxonomy.taxeditor.forms.AbstractFormSection;
13 import eu.etaxonomy.taxeditor.forms.CdmFormFactory;
14 import eu.etaxonomy.taxeditor.forms.ICdmFormElement;
15 import eu.etaxonomy.taxeditor.forms.LanguageStringWithLabelElement;
16 import eu.etaxonomy.taxeditor.forms.CdmFormFactory.EntityDetailType;
17 import eu.etaxonomy.taxeditor.forms.CdmFormFactory.SelectionType;
18 import eu.etaxonomy.taxeditor.forms.selection.AgentSelectionElement;
19 import eu.etaxonomy.taxeditor.section.AbstractCdmDetailSection;
20 import eu.etaxonomy.taxeditor.section.AbstractEntityCollectionElement;
21 import eu.etaxonomy.taxeditor.store.CdmStore;
22
23 /**
24 * <p>MediaElement class.</p>
25 *
26 * @author n.hoffmann
27 * @created Nov 17, 2009
28 * @version 1.0
29 */
30 public class MediaElement extends AbstractEntityCollectionElement<Media> {
31
32 private MediaRepresentationSection section_mediaRepresentation;
33 private AgentSelectionElement selection_artist;
34 private LanguageStringWithLabelElement text_description;
35 private LanguageStringWithLabelElement text_title;
36
37 /**
38 * <p>Constructor for MediaElement.</p>
39 *
40 * @param formElement a {@link eu.etaxonomy.taxeditor.forms.AbstractFormSection} object.
41 * @param element a {@link eu.etaxonomy.cdm.model.media.Media} object.
42 * @param removeListener a {@link org.eclipse.swt.events.SelectionListener} object.
43 * @param style a int.
44 * @param cdmFormFactory a {@link eu.etaxonomy.taxeditor.forms.CdmFormFactory} object.
45 */
46 public MediaElement(CdmFormFactory cdmFormFactory, AbstractFormSection formElement, Media element,
47 SelectionListener removeListener, int style) {
48 super(cdmFormFactory, formElement, element, removeListener, null, style);
49 }
50
51
52
53 /* (non-Javadoc)
54 * @see eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetElementComposite#createControls(org.eclipse.swt.widgets.Composite, int)
55 */
56 /** {@inheritDoc} */
57 @Override
58 public void createControls(ICdmFormElement element, int style) {
59 text_title = formFactory.createLanguageStringWithLabelElement(element, "Title", null, style);
60 selection_artist = (AgentSelectionElement) formFactory.createSelectionElement(SelectionType.AGENT, getConversationHolder(), element, "Artist", null, style);
61 text_description = formFactory.createLanguageStringWithLabelElement(element, "Description", null, 100, style);
62 section_mediaRepresentation = (MediaRepresentationSection) formFactory.createEntityDetailSection(EntityDetailType.MEDIAREPRESENTATION, getConversationHolder(), element, style);
63 section_mediaRepresentation.setLayoutData(CdmFormFactory.FILL_HORIZONTALLY(2, 1));
64 }
65
66 /** {@inheritDoc} */
67 @Override
68 public void setEntity(Media element) {
69 this.entity = element;
70 section_mediaRepresentation.setEntity(element);
71 selection_artist.setEntity((TeamOrPersonBase)HibernateProxyHelper.deproxy(element.getArtist()));
72
73 text_description.setLanguageString(element.getDescription(CdmStore.getDefaultLanguage()));
74
75 LanguageString title = element.getTitle(CdmStore.getDefaultLanguage());
76 text_title.setLanguageString(title);
77 }
78
79 /*
80 * (non-Javadoc)
81 * @see eu.etaxonomy.taxeditor.section.AbstractEntityCollectionElement#handleEvent(java.lang.Object)
82 */
83 /** {@inheritDoc} */
84 @Override
85 public void handleEvent(Object eventSource) {
86 if(eventSource == selection_artist){
87 getEntity().setArtist(selection_artist.getSelection());
88 }
89 else if(eventSource == text_description){
90 getEntity().addDescription(text_description.getLanguageString());
91 }
92 else if(eventSource == text_title){
93 getEntity().addTitle(text_title.getLanguageString());
94 if(getParentElement() instanceof AbstractCdmDetailSection){
95 ((AbstractCdmDetailSection) getParentElement()).updateTitle();
96 }
97 }
98 }
99 }