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.renderers;
35
36 import info.magnolia.cms.beans.config.ServerConfiguration;
37 import info.magnolia.context.MgnlContext;
38 import info.magnolia.rendering.context.RenderingContext;
39 import info.magnolia.rendering.model.RenderingModel;
40 import info.magnolia.rendering.renderer.AbstractRenderer;
41 import info.magnolia.rendering.template.RenderableDefinition;
42 import info.magnolia.rendering.util.AppendableWriter;
43
44 import java.io.IOException;
45 import java.util.HashMap;
46 import java.util.Map;
47
48 import javax.jcr.Node;
49 import javax.jcr.RepositoryException;
50 import javax.servlet.http.HttpServletResponse;
51
52 import org.apache.commons.lang.StringUtils;
53
54
55
56
57 public class PlainTextTemplateRenderer extends AbstractRenderer {
58
59 @Override
60 protected String resolveTemplateScript(Node content, RenderableDefinition definition, RenderingModel<?> model, String actionResult) {
61 return StringUtils.EMPTY;
62 }
63
64 @Override
65 protected void onRender(Node content, info.magnolia.rendering.template.RenderableDefinition definition, RenderingContext renderingCtx, Map<String, Object> ctx, String templateScript) throws info.magnolia.rendering.engine.RenderException {
66 final HttpServletResponse response = MgnlContext.getWebContext().getResponse();
67
68 final boolean isAdmin = ServerConfiguration.getInstance().isAdmin();
69 final boolean isPreview = MgnlContext.getAggregationState().isPreviewMode();
70 try {
71
72 final String text = content.getProperty("text").getString();
73 final String contentType = content.getProperty("contentType").getString();
74
75 AppendableWriter out = renderingCtx.getAppendable();
76 if (!isAdmin || isPreview) {
77 response.setContentType(contentType);
78 out.write(text);
79 } else {
80 final String dialogName = (String) definition.getParameters().get("dialog");
81 response.setContentType("text/html");
82
83 out.write("<html>\n");
84 out.write("<body>\n");
85
86 out.write("<h2 style=\"padding-top: 30px;\">");
87 out.write(content.getPath());
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 } catch (RepositoryException e) {
98 throw new info.magnolia.rendering.engine.RenderException(e);
99 } catch (IOException e) {
100 throw new info.magnolia.rendering.engine.RenderException(e);
101 }
102 }
103
104 @Override
105 protected Map newContext() {
106 return new HashMap<String, Object>();
107 }
108
109 }