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.PropertyUtil;
38 import info.magnolia.module.templatingkit.functions.STKTemplatingFunctions;
39 import info.magnolia.module.templatingkit.templates.AbstractSTKTemplateModel;
40 import info.magnolia.rendering.model.RenderingModel;
41 import info.magnolia.rendering.template.TemplateDefinition;
42 import info.magnolia.repository.RepositoryConstants;
43 import info.magnolia.templating.functions.TemplatingFunctions;
44
45 import javax.inject.Inject;
46 import javax.jcr.Node;
47 import javax.jcr.RepositoryException;
48
49 import org.apache.commons.lang.StringUtils;
50
51
52
53
54
55
56
57
58 public class InternalLinkModel<RD extends TemplateDefinition> extends AbstractSTKTemplateModel<TemplateDefinition> {
59
60 @Inject
61 public InternalLinkModel(Node content, RD definition, RenderingModel< ? > parent, STKTemplatingFunctions stkFunctions, TemplatingFunctions templatingFunctions) {
62 super(content, definition, parent, stkFunctions, templatingFunctions);
63 }
64
65 public String getLink(){
66 return templatingFunctions.link(RepositoryConstants.WEBSITE, PropertyUtil.getString(content, "link"));
67 }
68
69 public String getLinkTitle(){
70 String linkTitle = PropertyUtil.getString(content,"linkTitle",StringUtils.EMPTY);
71 if(!linkTitle.equals(StringUtils.EMPTY)){
72 return linkTitle;
73 }
74 Node linkNode = getLinkNode();
75 String pageTitle = PropertyUtil.getString(linkNode, "title", StringUtils.EMPTY);
76 if(!pageTitle.equals(StringUtils.EMPTY)){
77 return pageTitle;
78 } else {
79 String pageName = StringUtils.EMPTY;
80 try {
81 pageName = getLinkNode().getName();
82 }
83 catch (RepositoryException e) {
84 }
85 return pageName;
86 }
87 }
88
89 protected Node getLinkNode(){
90 try {
91 return stkFunctions.getReferencedContent(content, "link", RepositoryConstants.WEBSITE);
92 } catch (RepositoryException e) {
93 return null;
94 }
95 }
96 }