Project

General

Profile

Download (3.12 KB) Statistics
| Branch: | Tag: | Revision:
1

    
2
package eu.etaxonomy.taxeditor.ui.section.media;
3

    
4
import java.util.Collection;
5
import java.util.Comparator;
6

    
7
import org.eclipse.jface.util.PropertyChangeEvent;
8

    
9
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
10
import eu.etaxonomy.cdm.model.media.ImageFile;
11
import eu.etaxonomy.cdm.model.media.MediaRepresentation;
12
import eu.etaxonomy.cdm.model.media.MediaRepresentationPart;
13
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
14
import eu.etaxonomy.taxeditor.ui.element.CdmPropertyChangeEvent;
15
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
16
import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
17
import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
18

    
19
/**
20
 * <p>MediaRepresentationPartSection class.</p>
21
 *
22
 * @author n.hoffmann
23
 * @version $Id: $
24
 */
25
public class MediaRepresentationPartSection extends
26
		AbstractEntityCollectionSection<MediaRepresentation, MediaRepresentationPart> {
27

    
28
	/**
29
	 * <p>Constructor for MediaRepresentationPartSection.</p>
30
	 *
31
	 * @param cdmFormFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
32
	 * @param conversation a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder} object.
33
	 * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
34
	 * @param style a int.
35
	 */
36
	public MediaRepresentationPartSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation,
37
			ICdmFormElement parentElement, int style) {
38
		super(cdmFormFactory, conversation, parentElement, "Media Representation Part", style);
39
		formFactory.addPropertyChangeListener(this);
40
	}
41

    
42
	/** {@inheritDoc} */
43
	@Override
44
	public void addElement(MediaRepresentationPart element) {
45
		getEntity().addRepresentationPart(element);
46
	}
47

    
48
	/** {@inheritDoc} */
49
	@Override
50
	public MediaRepresentationPart createNewElement() {
51
		// FIXME we are supporting image only at the moment
52
		return ImageFile.NewInstance(null, null);
53
	}
54

    
55
	/** {@inheritDoc} */
56
	@Override
57
	public Collection<MediaRepresentationPart> getCollection(
58
			MediaRepresentation entity) {
59
		return getEntity().getParts();
60
	}
61

    
62
	@Override
63
	public Comparator<MediaRepresentationPart> getComparator() {
64
        return new DefaultCdmBaseComparator<>();
65
	}
66

    
67
	/** {@inheritDoc} */
68
	@Override
69
	public String getEmptyString() {
70
		return "No media representation parts yet.";
71
	}
72

    
73
	/** {@inheritDoc} */
74
	@Override
75
	protected String getTooltipString() {
76
		return "Create new media representation part.";
77
	}
78

    
79
	/** {@inheritDoc} */
80
	@Override
81
	public void removeElement(MediaRepresentationPart element) {
82
		getEntity().removeRepresentationPart(element);
83
	}
84

    
85
	@Override
86
	public void propertyChange(PropertyChangeEvent event) {
87
		if(event == null){
88
			return;
89
		}
90
		Object eventSource = event.getSource();
91
		if(eventSource != this && getElements().contains(eventSource)){
92
			firePropertyChangeEvent(new CdmPropertyChangeEvent(this, null));
93
			super.propertyChange(event);
94
		}
95
	}
96

    
97
    /**
98
     * {@inheritDoc}
99
     */
100
    @Override
101
    public MediaRepresentationPart addExisting() {
102
        return null;
103
    }
104

    
105
    /**
106
     * {@inheritDoc}
107
     */
108
    @Override
109
    public boolean allowAddExisting() {
110
        return false;
111
    }
112
}
(7-7/10)