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 import info.magnolia.cms.core.MgnlNodeType;
38 import info.magnolia.cms.util.ContentUtil;
39 import info.magnolia.jcr.util.ContentMap;
40 import info.magnolia.jcr.util.NodeUtil;
41 import info.magnolia.jcr.util.PropertyUtil;
42 import info.magnolia.module.dms.DMSModule;
43 import info.magnolia.module.dms.beans.Document;
44 import info.magnolia.module.templatingkit.functions.STKTemplatingFunctions;
45 import info.magnolia.module.templatingkit.style.CssSelectorBuilder;
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.jcr.Node;
51 import javax.jcr.RepositoryException;
52
53 import org.apache.commons.lang.StringUtils;
54
55 import javax.inject.Inject;
56
57
58
59
60
61
62
63
64 public class DownloadTeaserModel<RD extends TemplateDefinition> extends AbstractTeaserModel<TemplateDefinition>{
65
66 @Inject
67 public DownloadTeaserModel(Node content, RD definition, RenderingModel< ? > parent, STKTemplatingFunctions stkFunctions, CssSelectorBuilder cssSelectorBuilder, TemplatingFunctions templatingFunctions) {
68 super(content, definition, parent, stkFunctions, cssSelectorBuilder, templatingFunctions);
69 }
70
71 @Override
72 public ContentMap getTarget(){
73 String id = PropertyUtil.getString(content, "link");
74 if(id == null){
75 return null;
76 }
77 Node target = null;
78 try {
79 target = NodeUtil.getNodeByIdentifier(getRepository(),id);
80 if(target.isNodeType(MgnlNodeType.MIX_DELETED)){
81 return null;
82 }
83 return templatingFunctions.asContentMap(stkFunctions.wrap(target));
84 }
85 catch (RepositoryException e1) {
86 }
87 return null;
88 }
89
90
91
92
93 public Document getDMSDocument() throws RepositoryException{
94 String id = getDMSNodeUUID();
95 Node target = null;
96
97 if (!StringUtils.isEmpty(id)) {
98 try {
99 target = NodeUtil.getNodeByIdentifier(getRepository(),id);
100 } catch (RepositoryException e) {
101 }
102 }else{
103 return null;
104 }
105
106 if(target == null){
107 return null;
108 }
109 return new Document(ContentUtil.asContent(target));
110 }
111
112 private String getDMSNodeUUID() {
113 return PropertyUtil.getString(content, "link",StringUtils.EMPTY);
114 }
115
116 @Override
117 protected String getRepository() {
118 return DMSModule.getInstance().getRepository();
119 }
120 }