Project

General

Profile

Download (3.19 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
 *
3
 */
4
package eu.etaxonomy.taxeditor.ui.section.description;
5

    
6
import java.util.ArrayList;
7
import java.util.Collection;
8
import java.util.Collections;
9
import java.util.Comparator;
10
import java.util.List;
11

    
12
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
13
import eu.etaxonomy.cdm.model.common.OriginalSourceType;
14
import eu.etaxonomy.cdm.model.description.DescriptionElementBase;
15
import eu.etaxonomy.cdm.model.description.DescriptionElementSource;
16
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
17
import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
18
import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
19
import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
20

    
21
/**
22
 * <p>
23
 * DescriptionElementSourceSection class.
24
 * </p>
25
 *
26
 * @author n.hoffmann
27
 * @created Nov 17, 2009
28
 * @version 1.0
29
 */
30
public class DescriptionElementSourceSection extends
31
        AbstractEntityCollectionSection<DescriptionElementBase, DescriptionElementSource> {
32

    
33
    /**
34
     * <p>
35
     * Constructor for DescriptionElementSourceSection.
36
     * </p>
37
     *
38
     * @param parentElement
39
     *            a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement}
40
     *            object.
41
     * @param style
42
     *            a int.
43
     * @param cdmFormFactory
44
     *            a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory}
45
     *            object.
46
     * @param conversation
47
     *            a {@link eu.etaxonomy.cdm.api.conversation.ConversationHolder}
48
     *            object.
49
     */
50
    public DescriptionElementSourceSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation,
51
            ICdmFormElement parentElement, int style) {
52
        super(cdmFormFactory, conversation, parentElement, "References", style);
53
    }
54

    
55
    /** {@inheritDoc} */
56
    @Override
57
    public DescriptionElementSource createNewElement() {
58
        return DescriptionElementSource.NewInstance(OriginalSourceType.PrimaryTaxonomicSource);
59
    }
60

    
61
    /** {@inheritDoc} */
62
    @Override
63
    public Collection<DescriptionElementSource> getCollection(DescriptionElementBase entity) {
64
        List<DescriptionElementSource> sources = new ArrayList<DescriptionElementSource>(entity.getSources());
65
        Collections.sort(sources, new SourceComparator());
66
        return sources;
67
    }
68

    
69
    @Override
70
    public Comparator<DescriptionElementSource> getComparator() {
71
        return new DefaultCdmBaseComparator<>();
72
    }
73

    
74
    /** {@inheritDoc} */
75
    @Override
76
    public String getEmptyString() {
77
        return "No references yet.";
78
    }
79

    
80
    /** {@inheritDoc} */
81
    @Override
82
    protected String getTooltipString() {
83
        return "Create a new reference";
84
    }
85

    
86
    /** {@inheritDoc} */
87
    @Override
88
    public void addElement(DescriptionElementSource element) {
89
        getEntity().addSource(element);
90
    }
91

    
92
    /** {@inheritDoc} */
93
    @Override
94
    public void removeElement(DescriptionElementSource element) {
95
        getEntity().removeSource(element);
96
    }
97

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

    
106
    /**
107
     * {@inheritDoc}
108
     */
109
    @Override
110
    public boolean allowAddExisting() {
111
        return false;
112
    }
113
}
(9-9/25)