ref #10361: media editing is not allowed for managed terms
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / vocabulary / TermMediaSection.java
1 /**
2 *
3 */
4 package eu.etaxonomy.taxeditor.ui.section.vocabulary;
5
6 import java.util.Collection;
7 import java.util.Comparator;
8
9 import eu.etaxonomy.cdm.model.media.Media;
10 import eu.etaxonomy.cdm.model.term.DefinedTermBase;
11 import eu.etaxonomy.taxeditor.editor.definedterm.TermBasePropertyTester;
12 import eu.etaxonomy.taxeditor.ui.dialog.selection.MediaSelectionDialog;
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 import eu.etaxonomy.taxeditor.ui.section.DefaultCdmBaseComparator;
17
18 /**
19 * @author pplitzner
20 * @since May 17, 2019
21 */
22 public class TermMediaSection extends AbstractEntityCollectionSection<DefinedTermBase, Media>{
23
24 public TermMediaSection(CdmFormFactory cdmFormFactory, ICdmFormElement parentElement, int style) {
25 super(cdmFormFactory, parentElement, "Media", style);
26
27 }
28
29 @Override
30 public Media createNewElement() {
31 return Media.NewInstance();
32 }
33
34 @Override
35 public Collection<Media> getCollection(DefinedTermBase entity) {
36 return entity.getMedia();
37 }
38
39 @Override
40 public Comparator<Media> getComparator() {
41 return new DefaultCdmBaseComparator<>();
42 }
43
44 @Override
45 public String getEmptyString() {
46 return "No media yet.";
47 }
48
49 @Override
50 protected String getTooltipString() {
51 return "Create new media";
52 }
53
54 @Override
55 public void addElement(Media element) {
56 getEntity().addMedia(element);
57 }
58
59 @Override
60 public void removeElement(Media element) {
61 getEntity().removeMedia(element);
62 }
63
64 @Override
65 public Media addExisting() {
66 return MediaSelectionDialog.select(getShell(), null);
67 }
68
69 @Override
70 public boolean allowAddExisting() {
71 return true;
72 }
73
74 @Override
75 public void setEntity(DefinedTermBase entity) {
76 super.setEntity(entity);
77 setEnabled(TermBasePropertyTester.isModifiable(entity));
78 }
79 }