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 public class PlainTextTemplateRenderer extends AbstractTemplateRenderer {
55
56 public void renderTemplate(Content content, Template template, Writer out) throws IOException {
57 final HttpServletResponse response = MgnlContext.getWebContext().getResponse();
58
59 final boolean isAdmin = ServerConfiguration.getInstance().isAdmin();
60 final boolean isPreview = MgnlContext.getAggregationState().isPreviewMode();
61
62 final String text = content.getNodeData("text").getString();
63 final String contentType = content.getNodeData("contentType").getString();
64
65 if (!isAdmin || isPreview) {
66 response.setContentType(contentType);
67 out.write(text);
68 } else {
69 final String dialogName = template.getParameter("dialog");
70 response.setContentType("text/html");
71
72 out.write("<html>\n");
73 out.write("<body>\n");
74
75 if (content.isGranted(Permission.SET)) {
76 BarMain bar = new BarMain();
77 bar.setPath(content.getHandle());
78 bar.setDialog(dialogName);
79 bar.setAdminButtonVisible(true);
80 bar.setDefaultButtons();
81 bar.placeDefaultButtons();
82 bar.drawHtml(out);
83 }
84
85 out.write("<h2 style=\"padding-top: 30px;\">");
86 out.write(content.getHandle());
87 out.write(" : ");
88 out.write(contentType);
89 out.write("</h2>");
90 out.write("<pre>\n");
91 out.write(text);
92 out.write("</pre>\n");
93 out.write("</body>\n");
94 out.write("</html>\n");
95 }
96 }
97
98 protected Map newContext() {
99 throw new IllegalStateException();
100 }
101
102 protected void onRender(Content content, RenderableDefinition definition, Writer out, Map ctx, String templatePath) throws RenderException {
103 throw new IllegalStateException();
104 }
105 }