- reduced size of text field for textual data description elements
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / media / MediaMetaElement.java
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 }