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.cms.gui.control;
35
36 import info.magnolia.cms.core.Content;
37 import info.magnolia.cms.core.MetaData;
38 import info.magnolia.cms.core.NodeData;
39 import info.magnolia.cms.i18n.MessagesUtil;
40 import info.magnolia.cms.util.MetaDataUtil;
41 import info.magnolia.cms.util.NodeDataUtil;
42 import info.magnolia.context.MgnlContext;
43
44
45
46
47
48 public class TreeColumnHtmlRendererImpl implements TreeColumnHtmlRenderer {
49
50
51
52
53 @Override
54 public String renderHtml(TreeColumn treeColumn, Content content) {
55 String html;
56 if (treeColumn.getIsMeta()) {
57 html = MetaDataUtil.getPropertyValueString(content, treeColumn.getName(), treeColumn.getDateFormat());
58 }
59 else if (treeColumn.getIsLabel()) {
60 html = content.getName();
61 }
62 else if (treeColumn.getIsIcons()) {
63 html = getHtmlIcons(treeColumn, content);
64 }
65 else {
66 NodeData data = content.getNodeData(treeColumn.getName());
67 html = ControlImpl.escapeHTML(NodeDataUtil.getValueString(data, treeColumn.getDateFormat()));
68 }
69
70 if (treeColumn.getKeyValue().size() != 0) {
71 String value = (String) treeColumn.getKeyValue().get(html);
72 if (value != null) {
73 html = value;
74 }
75 }
76 return html;
77
78 }
79
80
81
82
83
84
85
86 private String getHtmlIcons(TreeColumn treeColumn, Content content) {
87 StringBuilder html = new StringBuilder();
88 String altOrTitle = "";
89 if (treeColumn.getIconsActivation()) {
90 String imgSrc = Tree.ICONDOCROOT + MetaDataUtil.getActivationStatusIcon(content.getJCRNode());
91 int activationStatus = content.getMetaData().getActivationStatus();
92
93 switch (activationStatus) {
94 case MetaData.ACTIVATION_STATUS_ACTIVATED:
95 altOrTitle = MessagesUtil.get("status.activated");
96 break;
97 case MetaData.ACTIVATION_STATUS_MODIFIED:
98 altOrTitle = MessagesUtil.get("status.modified");
99 break;
100 case MetaData.ACTIVATION_STATUS_NOT_ACTIVATED:
101 altOrTitle = MessagesUtil.get("status.notActivated");
102 break;
103 }
104 html.append("<img src=\"")
105 .append(MgnlContext.getContextPath())
106 .append(imgSrc)
107 .append("\" alt=\"")
108 .append(altOrTitle)
109 .append("\" title=\"")
110 .append(altOrTitle)
111 .append("\" />");
112 }
113 if (treeColumn.getIconsPermission()) {
114 if (!content.isGranted(info.magnolia.cms.security.Permission.WRITE)) {
115 altOrTitle = MessagesUtil.get("status.readOnly");
116 html.append("<img src=\"")
117 .append(treeColumn.getRequest().getContextPath())
118 .append(Tree.ICONDOCROOT)
119 .append("pen_blue_canceled.gif\"")
120 .append(" alt=\"")
121 .append(altOrTitle)
122 .append("\" title=\"")
123 .append(altOrTitle)
124 .append("\" />");
125 }
126 }
127 return html.toString();
128 }
129
130 }