1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.module.templatingkit.templates.components;
35
36
37
38 import info.magnolia.cms.core.MgnlNodeType;
39 import info.magnolia.cms.util.ContentUtil;
40 import info.magnolia.dam.Dam;
41 import info.magnolia.jcr.util.NodeUtil;
42 import info.magnolia.jcr.util.PropertyUtil;
43 import info.magnolia.module.dms.beans.Document;
44 import info.magnolia.module.templatingkit.functions.STKTemplatingFunctions;
45 import info.magnolia.module.templatingkit.templates.AbstractSTKTemplateModel;
46 import info.magnolia.rendering.model.RenderingModel;
47 import info.magnolia.rendering.template.TemplateDefinition;
48 import info.magnolia.templating.functions.TemplatingFunctions;
49
50 import javax.inject.Inject;
51 import javax.jcr.Node;
52 import javax.jcr.RepositoryException;
53
54 import org.apache.commons.lang.StringUtils;
55
56
57
58
59
60
61
62
63
64 public class DownloadLinkModel<RD extends TemplateDefinition> extends AbstractSTKTemplateModel<TemplateDefinition> {
65
66 @Inject
67 public DownloadLinkModel(Node content, RD definition, RenderingModel<?> parent, STKTemplatingFunctions stkFunctions, TemplatingFunctions templatingFunctions) {
68 super(content, definition, parent, stkFunctions, templatingFunctions);
69 }
70
71
72
73 public Document getDMSDocument() throws RepositoryException{
74 Node node = null;
75 String id = getDMSNodeUUID();
76
77 if (!StringUtils.isEmpty(id)) {
78 try {
79 node = NodeUtil.getNodeByIdentifier(Dam.DAM_WORKSPACE,id);
80 }
81 catch (RepositoryException e) {
82 }
83 }
84
85 if(node == null || node.isNodeType(MgnlNodeType.MIX_DELETED)){
86 return null;
87 }
88 return new Document(ContentUtil.asContent(node));
89 }
90
91 private String getDMSNodeUUID() {
92 return PropertyUtil.getString(content,"link");
93 }
94
95 public String getLink(){
96 return templatingFunctions.link(Dam.DAM_WORKSPACE, getDMSNodeUUID());
97 }
98
99 }