Project

General

Profile

Download (2.69 KB) Statistics
| Branch: | Tag: | Revision:
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.singlesource.ui.forms.CdmFormFactoryFacade;
13
import eu.etaxonomy.taxeditor.ui.forms.CdmPropertyChangeEvent;
14
import eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement;
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.singlesource.ui.forms.CdmFormFactoryFacade} object.
30
	 * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
31
	 * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.forms.ICdmFormElement} object.
32
	 * @param style a int.
33
	 */
34
	public MediaRepresentationPartSection(CdmFormFactoryFacade 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
}
(5-5/7)