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.jcr.util.ContentMap;
38 import info.magnolia.jcr.util.NodeUtil;
39 import info.magnolia.jcr.util.PropertyUtil;
40 import info.magnolia.module.templatingkit.functions.STKTemplatingFunctions;
41 import info.magnolia.module.templatingkit.style.CssSelectorBuilder;
42 import info.magnolia.rendering.model.RenderingModel;
43 import info.magnolia.rendering.template.TemplateDefinition;
44 import info.magnolia.templating.functions.TemplatingFunctions;
45
46 import javax.inject.Inject;
47 import javax.jcr.Node;
48 import javax.jcr.RepositoryException;
49
50
51
52
53
54
55
56 public abstract class AbstractTeaserModel<RD extends TemplateDefinition> extends ImageModel<TemplateDefinition> {
57
58 @Inject
59 public AbstractTeaserModel(Node content, RD definition, RenderingModel< ? > parent, STKTemplatingFunctions stkFunctions, CssSelectorBuilder cssSelectorBuilder, TemplatingFunctions templatingFunctions) {
60 super(content, definition, parent, stkFunctions, cssSelectorBuilder, templatingFunctions);
61 }
62
63 public ContentMap getTarget(){
64 String id = PropertyUtil.getString(content, "link");
65 if(id == null){
66 return null;
67 }
68 Node target = null;
69 try {
70 target = NodeUtil.getNodeByIdentifier(getRepository(),id);
71 return templatingFunctions.asContentMap(stkFunctions.wrap(target));
72 }
73 catch (RepositoryException e1) {
74 }
75 return null;
76 }
77
78 @Override
79 protected String getImageName() {
80 return "teaserImg";
81 }
82
83
84
85
86 public String getTeaserLink() {
87 String linkUUID = PropertyUtil.getString(content, "link");
88 return templatingFunctions.link(getRepository(), linkUUID);
89 }
90
91 abstract protected String getRepository();
92
93 }