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.templating.renderers;
35
36 import info.magnolia.cms.beans.config.ServerConfiguration;
37 import info.magnolia.cms.core.Content;
38 import info.magnolia.cms.gui.inline.BarMain;
39 import info.magnolia.cms.security.Permission;
40 import info.magnolia.context.MgnlContext;
41 import info.magnolia.module.templating.Template;
42 import info.magnolia.module.templating.RenderableDefinition;
43 import info.magnolia.module.templating.RenderException;
44
45 import javax.servlet.http.HttpServletResponse;
46 import java.io.IOException;
47 import java.io.Writer;
48 import java.util.Map;
49
50
51
52
53
54
55 public class PlainTextTemplateRenderer extends AbstractTemplateRenderer {
56
57 public void renderTemplate(Content content, Template template, Writer out) throws IOException {
58 final HttpServletResponse response = MgnlContext.getWebContext().getResponse();
59
60 final boolean isAdmin = ServerConfiguration.getInstance().isAdmin();
61 final boolean isPreview = MgnlContext.getAggregationState().isPreviewMode();
62
63 final String text = content.getNodeData("text").getString();
64 final String contentType = content.getNodeData("contentType").getString();
65
66 if (!isAdmin || isPreview) {
67 response.setContentType(contentType);
68 out.write(text);
69 } else {
70 final String dialogName = template.getParameter("dialog");
71 response.setContentType("text/html");
72
73 out.write("<html>\n");
74 out.write("<body>\n");
75
76 if (content.isGranted(Permission.SET)) {
77 BarMain bar = new BarMain();
78 bar.setPath(content.getHandle());
79 bar.setDialog(dialogName);
80 bar.setAdminButtonVisible(true);
81 bar.setDefaultButtons();
82 bar.placeDefaultButtons();
83 bar.drawHtml(out);
84 }
85
86 out.write("<h2 style=\"padding-top: 30px;\">");
87 out.write(content.getHandle());
88 out.write(" : ");
89 out.write(contentType);
90 out.write("</h2>");
91 out.write("<pre>\n");
92 out.write(text);
93 out.write("</pre>\n");
94 out.write("</body>\n");
95 out.write("</html>\n");
96 }
97 }
98
99 protected Map newContext() {
100 throw new IllegalStateException();
101 }
102
103 protected void onRender(Content content, RenderableDefinition definition, Writer out, Map ctx, String templatePath) throws RenderException {
104 throw new IllegalStateException();
105 }
106 }