1
22
23 package com.liferay.portlet.layoutconfiguration.util.velocity;
24
25 import com.liferay.portal.kernel.util.StringMaker;
26 import com.liferay.portal.model.Portlet;
27 import com.liferay.portal.util.comparator.PortletRenderWeightComparator;
28
29 import java.util.HashMap;
30 import java.util.Map;
31 import java.util.TreeMap;
32
33 import javax.servlet.ServletContext;
34 import javax.servlet.http.HttpServletRequest;
35 import javax.servlet.http.HttpServletResponse;
36
37
44 public class TemplateProcessor {
45
46 public TemplateProcessor(
47 ServletContext ctx, HttpServletRequest req, HttpServletResponse res,
48 String portletId) {
49
50 _ctx = ctx;
51 _req = req;
52 _res = res;
53 _portletId = portletId;
54 _columnsMap = new HashMap<String, String>();
55 _portletsMap = new TreeMap<Portlet, Object[]>(
56 new PortletRenderWeightComparator());
57 }
58
59 public String processColumn(String columnId) throws Exception {
60 Map<String, String> attributes = new HashMap<String, String>();
61
62 attributes.put("id", columnId);
63
64 PortletColumnLogic logic = new PortletColumnLogic(_ctx, _req, _res);
65
66 StringMaker sm = new StringMaker();
67
68 logic.processContent(sm, attributes);
69
70 _portletsMap.putAll(logic.getPortletsMap());
71
72 String columnIdPlaceHolder = "[$TEMPLATE_COLUMN_" + columnId + "$]";
73
74 _columnsMap.put(columnIdPlaceHolder, sm.toString());
75
76 return columnIdPlaceHolder;
77 }
78
79 public String processMax() throws Exception {
80 RuntimeLogic logic = new PortletLogic(_ctx, _req, _res, _portletId);
81
82 StringMaker sm = new StringMaker();
83
84 logic.processContent(sm, new HashMap<String, String>());
85
86 return sm.toString();
87 }
88
89 public String processPortlet(String portletId) throws Exception {
90 RuntimeLogic logic = new PortletLogic(_ctx, _req, _res, portletId);
91
92 StringMaker sm = new StringMaker();
93
94 logic.processContent(sm, new HashMap<String, String>());
95
96 return sm.toString();
97 }
98
99 public Map<String, String> getColumnsMap() {
100 return _columnsMap;
101 }
102
103 public Map<Portlet, Object[]> getPortletsMap() {
104 return _portletsMap;
105 }
106
107 private ServletContext _ctx;
108 private HttpServletRequest _req;
109 private HttpServletResponse _res;
110 private String _portletId;
111 private Map<String, String> _columnsMap;
112 private Map<Portlet, Object[]> _portletsMap;
113
114 }