Project

General

Profile

Download (4.41 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.TeamOrPersonBase;
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.CdmPropertyChangeEvent;
16
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
17
import eu.etaxonomy.taxeditor.ui.element.LanguageStringWithLabelElement;
18
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory.EntityDetailType;
19
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory.SelectionType;
20
import eu.etaxonomy.taxeditor.ui.section.AbstractCdmDetailSection;
21
import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionElement;
22
import eu.etaxonomy.taxeditor.ui.selection.AgentSelectionElement;
23

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

    
35
	private MediaRepresentationSection section_mediaRepresentation;
36
	private AgentSelectionElement selection_artist;
37
	private LanguageStringWithLabelElement text_description;
38
	private LanguageStringWithLabelElement text_title;
39

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

    
64
	/*
65
	 * (non-Javadoc)
66
	 * 
67
	 * @see
68
	 * eu.etaxonomy.taxeditor.forms.entitysections.AbstractEntitySetElementComposite
69
	 * #createControls(org.eclipse.swt.widgets.Composite, int)
70
	 */
71
	/** {@inheritDoc} */
72
	@Override
73
	public void createControls(ICdmFormElement element, int style) {
74
		text_title = formFactory.createLanguageStringWithLabelElement(element,
75
				"Title", null, style);
76
		selection_artist = (AgentSelectionElement) formFactory
77
				.createSelectionElement(SelectionType.AGENT,
78
						getConversationHolder(), element, "Artist", null,
79
						AgentSelectionElement.DEFAULT, style);
80
		text_description = formFactory.createLanguageStringWithLabelElement(
81
				element, "Description", null, 100, style);
82
		section_mediaRepresentation = (MediaRepresentationSection) formFactory
83
				.createEntityDetailSection(
84
						EntityDetailType.MEDIAREPRESENTATION,
85
						getConversationHolder(), element, style);
86
		section_mediaRepresentation.setLayoutData(CdmFormFactory
87
				.FILL_HORIZONTALLY(2, 1));
88
	}
89

    
90
	/** {@inheritDoc} */
91
	@Override
92
	public void setEntity(Media element) {
93
		this.entity = element;
94
		section_mediaRepresentation.setEntity(element);
95
		selection_artist.setEntity((TeamOrPersonBase) HibernateProxyHelper
96
				.deproxy(element.getArtist()));
97

    
98
		text_description.setLanguageString(element.getDescription(CdmStore
99
				.getDefaultLanguage()));
100

    
101
		LanguageString title = element.getTitle(CdmStore.getDefaultLanguage());
102

    
103
		if (title == null) {
104
			title = LanguageString.NewInstance("",
105
					CdmStore.getDefaultLanguage());
106
		}
107

    
108
		text_title.setLanguageString(title);
109
	}
110

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