merge-update from trunk
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / media / MediaRepresentationPartSection.java
1
2 package eu.etaxonomy.taxeditor.ui.section.media;
3
4 import java.util.Collection;
5
6 import org.eclipse.jface.util.PropertyChangeEvent;
7
8 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
9 import eu.etaxonomy.cdm.model.media.ImageFile;
10 import eu.etaxonomy.cdm.model.media.MediaRepresentation;
11 import eu.etaxonomy.cdm.model.media.MediaRepresentationPart;
12 import eu.etaxonomy.taxeditor.ui.campanula.compatibility.ICdmFormElement;
13 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
14 import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
15 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
16
17 /**
18 * <p>MediaRepresentationPartSection class.</p>
19 *
20 * @author n.hoffmann
21 * @version $Id: $
22 */
23 public class MediaRepresentationPartSection extends
24 AbstractEntityCollectionSection<MediaRepresentation, MediaRepresentationPart> {
25
26 /**
27 * <p>Constructor for MediaRepresentationPartSection.</p>
28 *
29 * @param cdmFormFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
30 * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
31 * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
32 * @param style a int.
33 */
34 public MediaRepresentationPartSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation,
35 ICdmFormElement parentElement, int style) {
36 super(cdmFormFactory, conversation, parentElement, "Media Representation Part", style);
37 formFactory.addPropertyChangeListener(this);
38 }
39
40 /** {@inheritDoc} */
41 @Override
42 public void addElement(MediaRepresentationPart element) {
43 getEntity().addRepresentationPart(element);
44 }
45
46 /** {@inheritDoc} */
47 @Override
48 public MediaRepresentationPart createNewElement() {
49 // FIXME we are supporting image only at the moment
50 return ImageFile.NewInstance(null, null);
51 }
52
53 /** {@inheritDoc} */
54 @Override
55 public Collection<MediaRepresentationPart> getCollection(
56 MediaRepresentation entity) {
57 return getEntity().getParts();
58 }
59
60 /** {@inheritDoc} */
61 @Override
62 public String getEmptyString() {
63 return "No media representation parts yet.";
64 }
65
66 /** {@inheritDoc} */
67 @Override
68 protected String getTooltipString() {
69 return "Create new media representation part.";
70 }
71
72 /** {@inheritDoc} */
73 @Override
74 public void removeElement(MediaRepresentationPart element) {
75 getEntity().removeRepresentationPart(element);
76 }
77
78 @Override
79 public void propertyChange(PropertyChangeEvent event) {
80 if(event == null){
81 return;
82 }
83 Object eventSource = event.getSource();
84 if(eventSource != this && getElements().contains(eventSource)){
85 firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
86 super.propertyChange(event);
87 }
88 }
89 }