- added PrimaryMediaSource as default for media source (fixes #3570)
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / supplemental / SourceSection.java
1 /**
2 *
3 */
4 package eu.etaxonomy.taxeditor.ui.section.supplemental;
5
6 import java.util.Collection;
7
8 import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
9 import eu.etaxonomy.cdm.model.common.IIdentifiableEntity;
10 import eu.etaxonomy.cdm.model.common.IdentifiableSource;
11 import eu.etaxonomy.cdm.model.common.OriginalSourceType;
12 import eu.etaxonomy.cdm.model.media.Media;
13 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
14 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
15 import eu.etaxonomy.taxeditor.ui.section.AbstractEntityCollectionSection;
16
17 /**
18 * <p>SourceSection class.</p>
19 *
20 * @author n.hoffmann
21 * @created Nov 17, 2009
22 * @version 1.0
23 */
24 public class SourceSection extends AbstractEntityCollectionSection<IIdentifiableEntity, IdentifiableSource> {
25
26 /**
27 * <p>Constructor for SourceSection.</p>
28 *
29 * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
30 * @param style a int.
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 */
34 public SourceSection(CdmFormFactory cdmFormFactory, ConversationHolder conversation, ICdmFormElement parentElement, int style) {
35 super(cdmFormFactory, conversation, parentElement, "Sources", style);
36 }
37
38 /** {@inheritDoc} */
39 @Override
40 public IdentifiableSource createNewElement() {
41 IIdentifiableEntity entity = getEntity();
42 OriginalSourceType type;
43 if(entity instanceof Media) {
44 type = OriginalSourceType.PrimaryMediaSource;
45 }
46 else{
47 //default
48 type = OriginalSourceType.PrimaryTaxonomicSource;
49 }
50 return IdentifiableSource.NewInstance(type);
51 }
52
53 /** {@inheritDoc} */
54 @Override
55 public Collection<IdentifiableSource> getCollection(
56 IIdentifiableEntity entity) {
57 return entity.getSources();
58 }
59
60 /** {@inheritDoc} */
61 @Override
62 public String getEmptyString() {
63 return "No references yet.";
64 }
65
66 /** {@inheritDoc} */
67 @Override
68 protected String getTooltipString() {
69 return "Create a new reference.";
70 }
71
72 /** {@inheritDoc} */
73 @Override
74 public void addElement(IdentifiableSource element) {
75 getEntity().addSource(element);
76 }
77
78 /** {@inheritDoc} */
79 @Override
80 public void removeElement(IdentifiableSource element) {
81 getEntity().removeSource(element);
82 }
83
84 }