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