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.templating.models.components;
35
36 import info.magnolia.dam.templating.functions.DamTemplatingFunctions;
37 import info.magnolia.jcr.util.PropertyUtil;
38 import info.magnolia.rendering.model.RenderingModel;
39 import info.magnolia.rendering.template.RenderableDefinition;
40 import info.magnolia.templating.functions.TemplatingFunctions;
41
42 import javax.inject.Inject;
43 import javax.jcr.Node;
44
45
46
47
48
49
50
51 public abstract class AbstractTeaserModel<RD extends RenderableDefinition> extends ImageModel {
52
53 protected static final String PROPERTY_NAME_LINK = "link";
54 protected static final String PROPERTY_NAME_TEASER_TITLE = "teaserTitle";
55 protected static final String PROPERTY_NAME_TEASER_ABSTRACT = "teaserAbstract";
56 protected static final String PROPERTY_NAME_HIGHLIGHTED = "highlight";
57 protected static final String PROPERTY_NAME_HIDE_TEASER_IMAGE = "hideTeaserImage";
58
59 protected final TemplatingFunctions templatingFunctions;
60
61 @Inject
62 public AbstractTeaserModel(Node content, RD definition, RenderingModel<?> parent, TemplatingFunctions templatingFunctions, DamTemplatingFunctions damTemplatingFunctions) {
63 super(content, definition, parent, damTemplatingFunctions);
64
65 this.templatingFunctions = templatingFunctions;
66 }
67
68
69
70
71 public String getTeaserTitle() {
72 return PropertyUtil.getString(content, PROPERTY_NAME_TEASER_TITLE);
73 }
74
75
76
77
78 public String getTeaserText() {
79 return PropertyUtil.getString(content, PROPERTY_NAME_TEASER_ABSTRACT);
80 }
81
82
83
84
85 public boolean isHighlighted() {
86 return PropertyUtil.getBoolean(content, PROPERTY_NAME_HIGHLIGHTED, false);
87 }
88
89
90
91
92
93
94 public boolean isHideTeaserImage() {
95 return PropertyUtil.getBoolean(content, PROPERTY_NAME_HIDE_TEASER_IMAGE, false);
96 }
97
98
99
100
101 abstract public String getTeaserLink();
102
103
104
105
106 abstract public boolean isTargetBlank();
107
108 }