1   /**
2    * Copyright (c) 2000-2008 Liferay, Inc. All rights reserved.
3    *
4    * Permission is hereby granted, free of charge, to any person obtaining a copy
5    * of this software and associated documentation files (the "Software"), to deal
6    * in the Software without restriction, including without limitation the rights
7    * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8    * copies of the Software, and to permit persons to whom the Software is
9    * furnished to do so, subject to the following conditions:
10   *
11   * The above copyright notice and this permission notice shall be included in
12   * all copies or substantial portions of the Software.
13   *
14   * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15   * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16   * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17   * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18   * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19   * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
20   * SOFTWARE.
21   */
22  
23  package com.liferay.taglib.util;
24  
25  import com.liferay.portal.kernel.servlet.StringServletResponse;
26  import com.liferay.portal.kernel.util.HttpUtil;
27  import com.liferay.portal.model.Layout;
28  import com.liferay.taglib.portlet.ActionURLTag;
29  import com.liferay.taglib.portletext.IconBackTag;
30  import com.liferay.taglib.portletext.IconCloseTag;
31  import com.liferay.taglib.portletext.IconConfigurationTag;
32  import com.liferay.taglib.portletext.IconEditDefaultsTag;
33  import com.liferay.taglib.portletext.IconEditGuestTag;
34  import com.liferay.taglib.portletext.IconEditTag;
35  import com.liferay.taglib.portletext.IconHelpTag;
36  import com.liferay.taglib.portletext.IconMaximizeTag;
37  import com.liferay.taglib.portletext.IconMinimizeTag;
38  import com.liferay.taglib.portletext.IconOptionsTag;
39  import com.liferay.taglib.portletext.IconPortletCssTag;
40  import com.liferay.taglib.portletext.IconPortletTag;
41  import com.liferay.taglib.portletext.IconPrintTag;
42  import com.liferay.taglib.portletext.IconRefreshTag;
43  import com.liferay.taglib.portletext.RuntimeTag;
44  import com.liferay.taglib.security.DoAsURLTag;
45  import com.liferay.taglib.security.PermissionsURLTag;
46  import com.liferay.taglib.theme.LayoutIconTag;
47  import com.liferay.taglib.theme.MetaTagsTag;
48  import com.liferay.taglib.theme.WrapPortletTag;
49  import com.liferay.taglib.ui.JournalContentSearchTag;
50  import com.liferay.taglib.ui.LanguageTag;
51  import com.liferay.taglib.ui.MyPlacesTag;
52  import com.liferay.taglib.ui.PngImageTag;
53  import com.liferay.taglib.ui.SearchTag;
54  import com.liferay.taglib.ui.StagingTag;
55  import com.liferay.taglib.ui.ToggleTag;
56  
57  import java.util.Map;
58  
59  import javax.portlet.PortletMode;
60  import javax.portlet.PortletRequest;
61  import javax.portlet.WindowState;
62  
63  import javax.servlet.RequestDispatcher;
64  import javax.servlet.ServletContext;
65  import javax.servlet.http.HttpServletRequest;
66  import javax.servlet.jsp.PageContext;
67  
68  /**
69   * <a href="VelocityTaglib.java.html"><b><i>View Source</i></b></a>
70   *
71   * @author Brian Wing Shun Chan
72   *
73   */
74  public class VelocityTaglib {
75  
76      public VelocityTaglib() {
77      }
78  
79      public VelocityTaglib(
80          ServletContext servletContext, HttpServletRequest request,
81          StringServletResponse stringResponse, PageContext pageContext) {
82  
83          init(servletContext, request, stringResponse, pageContext);
84      }
85  
86      public VelocityTaglib init(
87          ServletContext servletContext, HttpServletRequest request,
88          StringServletResponse stringResponse, PageContext pageContext) {
89  
90          _servletContext = servletContext;
91          _request = request;
92          _stringResponse = stringResponse;
93          _pageContext = pageContext;
94  
95          return this;
96      }
97  
98      public String actionURL(String portletName, String queryString)
99          throws Exception {
100 
101         String windowState = WindowState.NORMAL.toString();
102         String portletMode = PortletMode.VIEW.toString();
103 
104         return actionURL(windowState, portletMode, portletName, queryString);
105     }
106 
107     public String actionURL(
108             String windowState, String portletMode, String portletName,
109             String queryString)
110         throws Exception {
111 
112         Boolean secure = null;
113         Boolean copyCurrentRenderParameters = null;
114         Boolean escapeXml = null;
115         String name = null;
116         Boolean anchor = null;
117         Boolean encrypt = null;
118         long doAsUserId = 0;
119         Boolean portletConfiguration = null;
120 
121         return actionURL(
122             windowState, portletMode, secure, copyCurrentRenderParameters,
123             escapeXml, name, portletName, anchor, encrypt, doAsUserId,
124             portletConfiguration, queryString);
125     }
126 
127     public String actionURL(
128             String windowState, String portletMode, Boolean secure,
129             Boolean copyCurrentRenderParameters, Boolean escapeXml, String name,
130             String portletName, Boolean anchor, Boolean encrypt,
131             long doAsUserId, Boolean portletConfiguration, String queryString)
132         throws Exception {
133 
134         String var = null;
135         String varImpl = null;
136         String resourceID = null;
137         String cacheability = null;
138         Map<String, String[]> params = HttpUtil.parameterMapFromString(
139             queryString);
140         boolean writeOutput = false;
141 
142         return ActionURLTag.doTag(
143             PortletRequest.ACTION_PHASE, windowState, portletMode, var, varImpl,
144             secure, copyCurrentRenderParameters, escapeXml, name, resourceID,
145             cacheability, portletName, anchor, encrypt, doAsUserId,
146             portletConfiguration, params, writeOutput, _pageContext);
147     }
148 
149     public String doAsURL(long doAsUserId) throws Exception {
150         return DoAsURLTag.doTag(doAsUserId, null, false, _pageContext);
151     }
152 
153     public String iconBack() throws Exception {
154         _stringResponse.recycle();
155 
156         IconBackTag.doTag(_servletContext, _request, _stringResponse);
157 
158         return _stringResponse.getString();
159     }
160 
161     public String iconBack(String page) throws Exception {
162         _stringResponse.recycle();
163 
164         IconBackTag.doTag(page, _servletContext, _request, _stringResponse);
165 
166         return _stringResponse.getString();
167     }
168 
169     public String iconClose() throws Exception {
170         _stringResponse.recycle();
171 
172         IconCloseTag.doTag(_servletContext, _request, _stringResponse);
173 
174         return _stringResponse.getString();
175     }
176 
177     public String iconClose(String page) throws Exception {
178         _stringResponse.recycle();
179 
180         IconCloseTag.doTag(page, _servletContext, _request, _stringResponse);
181 
182         return _stringResponse.getString();
183     }
184 
185     public String iconConfiguration() throws Exception {
186         _stringResponse.recycle();
187 
188         IconConfigurationTag.doTag(_servletContext, _request, _stringResponse);
189 
190         return _stringResponse.getString();
191     }
192 
193     public String iconConfiguration(String page) throws Exception {
194         _stringResponse.recycle();
195 
196         IconConfigurationTag.doTag(
197             page, _servletContext, _request, _stringResponse);
198 
199         return _stringResponse.getString();
200     }
201 
202     public String iconEdit() throws Exception {
203         _stringResponse.recycle();
204 
205         IconEditTag.doTag(_servletContext, _request, _stringResponse);
206 
207         return _stringResponse.getString();
208     }
209 
210     public String iconEdit(String page) throws Exception {
211         _stringResponse.recycle();
212 
213         IconEditTag.doTag(page, _servletContext, _request, _stringResponse);
214 
215         return _stringResponse.getString();
216     }
217 
218     public String iconEditDefaults() throws Exception {
219         _stringResponse.recycle();
220 
221         IconEditDefaultsTag.doTag(_servletContext, _request, _stringResponse);
222 
223         return _stringResponse.getString();
224     }
225 
226     public String iconEditGuest() throws Exception {
227         _stringResponse.recycle();
228 
229         IconEditGuestTag.doTag(_servletContext, _request, _stringResponse);
230 
231         return _stringResponse.getString();
232     }
233 
234     public String iconEditGuest(String page) throws Exception {
235         _stringResponse.recycle();
236 
237         IconEditGuestTag.doTag(
238             page, _servletContext, _request, _stringResponse);
239 
240         return _stringResponse.getString();
241     }
242 
243     public String iconHelp() throws Exception {
244         _stringResponse.recycle();
245 
246         IconHelpTag.doTag(_servletContext, _request, _stringResponse);
247 
248         return _stringResponse.getString();
249     }
250 
251     public String iconHelp(String page) throws Exception {
252         _stringResponse.recycle();
253 
254         IconHelpTag.doTag(page, _servletContext, _request, _stringResponse);
255 
256         return _stringResponse.getString();
257     }
258 
259     public String iconMaximize() throws Exception {
260         _stringResponse.recycle();
261 
262         IconMaximizeTag.doTag(_servletContext, _request, _stringResponse);
263 
264         return _stringResponse.getString();
265     }
266 
267     public String iconMaximize(String page) throws Exception {
268         _stringResponse.recycle();
269 
270         IconMaximizeTag.doTag(page, _servletContext, _request, _stringResponse);
271 
272         return _stringResponse.getString();
273     }
274 
275     public String iconMinimize() throws Exception {
276         _stringResponse.recycle();
277 
278         IconMinimizeTag.doTag(_servletContext, _request, _stringResponse);
279 
280         return _stringResponse.getString();
281     }
282 
283     public String iconMinimize(String page) throws Exception {
284         _stringResponse.recycle();
285 
286         IconMinimizeTag.doTag(page, _servletContext, _request, _stringResponse);
287 
288         return _stringResponse.getString();
289     }
290 
291     public String iconOptions() throws Exception {
292         _stringResponse.recycle();
293 
294         IconOptionsTag.doTag(_servletContext, _request, _stringResponse);
295 
296         return _stringResponse.getString();
297     }
298 
299     public String iconOptions(String page) throws Exception {
300         _stringResponse.recycle();
301 
302         IconOptionsTag.doTag(page, _servletContext, _request, _stringResponse);
303 
304         return _stringResponse.getString();
305     }
306 
307     public String iconPortlet() throws Exception {
308         _stringResponse.recycle();
309 
310         IconPortletTag.doTag(_servletContext, _request, _stringResponse);
311 
312         return _stringResponse.getString();
313     }
314 
315     public String iconPortlet(String page) throws Exception {
316         _stringResponse.recycle();
317 
318         IconPortletTag.doTag(page, _servletContext, _request, _stringResponse);
319 
320         return _stringResponse.getString();
321     }
322 
323     public String iconPortletCss() throws Exception {
324         _stringResponse.recycle();
325 
326         IconPortletCssTag.doTag(_servletContext, _request, _stringResponse);
327 
328         return _stringResponse.getString();
329     }
330 
331     public String iconPortletCss(String page) throws Exception {
332         _stringResponse.recycle();
333 
334         IconPortletCssTag.doTag(
335             page, _servletContext, _request, _stringResponse);
336 
337         return _stringResponse.getString();
338     }
339 
340     public String iconPrint() throws Exception {
341         _stringResponse.recycle();
342 
343         IconPrintTag.doTag(_servletContext, _request, _stringResponse);
344 
345         return _stringResponse.getString();
346     }
347 
348     public String iconPrint(String page) throws Exception {
349         _stringResponse.recycle();
350 
351         IconPrintTag.doTag(page, _servletContext, _request, _stringResponse);
352 
353         return _stringResponse.getString();
354     }
355 
356     public String iconRefresh() throws Exception {
357         _stringResponse.recycle();
358 
359         IconRefreshTag.doTag(_servletContext, _request, _stringResponse);
360 
361         return _stringResponse.getString();
362     }
363 
364     public String iconRefresh(String page) throws Exception {
365         _stringResponse.recycle();
366 
367         IconRefreshTag.doTag(page, _servletContext, _request, _stringResponse);
368 
369         return _stringResponse.getString();
370     }
371 
372     public String include(String page) throws Exception {
373         _stringResponse.recycle();
374 
375         RequestDispatcher requestDispatcher =
376             _servletContext.getRequestDispatcher(page);
377 
378         requestDispatcher.include(_request, _stringResponse);
379 
380         return _stringResponse.getString();
381     }
382 
383     public String include(ServletContext servletContext, String page)
384         throws Exception {
385 
386         _stringResponse.recycle();
387 
388         RequestDispatcher requestDispatcher =
389             servletContext.getRequestDispatcher(page);
390 
391         requestDispatcher.include(_request, _stringResponse);
392 
393         return _stringResponse.getString();
394     }
395 
396     public String journalContentSearch() throws Exception {
397         _stringResponse.recycle();
398 
399         JournalContentSearchTag.doTag(
400             _servletContext, _request, _stringResponse);
401 
402         return _stringResponse.getString();
403     }
404 
405     public String language() throws Exception {
406         _stringResponse.recycle();
407 
408         LanguageTag.doTag(_servletContext, _request, _stringResponse);
409 
410         return _stringResponse.getString();
411     }
412 
413     public String language(
414             String formName, String formAction, String name, int displayStyle)
415         throws Exception {
416 
417         _stringResponse.recycle();
418 
419         LanguageTag.doTag(
420             formName, formAction, name, null, displayStyle, _servletContext,
421             _request, _stringResponse);
422 
423         return _stringResponse.getString();
424     }
425 
426     public String language(
427             String formName, String formAction, String name,
428             String[] languageIds, int displayStyle)
429         throws Exception {
430 
431         _stringResponse.recycle();
432 
433         LanguageTag.doTag(
434             formName, formAction, name, languageIds, displayStyle,
435             _servletContext, _request, _stringResponse);
436 
437         return _stringResponse.getString();
438     }
439 
440     public String language(
441             String page, String formName, String formAction, String name,
442             int displayStyle)
443         throws Exception {
444 
445         _stringResponse.recycle();
446 
447         LanguageTag.doTag(
448             page, formName, formAction, name, null, displayStyle,
449             _servletContext, _request, _stringResponse);
450 
451         return _stringResponse.getString();
452     }
453 
454     public String language(
455             String page, String formName, String formAction, String name,
456             String[] languageIds, int displayStyle)
457         throws Exception {
458 
459         _stringResponse.recycle();
460 
461         LanguageTag.doTag(
462             page, formName, formAction, name, languageIds, displayStyle,
463             _servletContext, _request, _stringResponse);
464 
465         return _stringResponse.getString();
466     }
467 
468     public String layoutIcon(Layout layout) throws Exception {
469         _stringResponse.recycle();
470 
471         LayoutIconTag.doTag(layout, _servletContext, _request, _stringResponse);
472 
473         return _stringResponse.getString();
474     }
475 
476     public String metaTags() throws Exception {
477         _stringResponse.recycle();
478 
479         MetaTagsTag.doTag(_servletContext, _request, _stringResponse);
480 
481         return _stringResponse.getString();
482     }
483 
484     public String myPlaces() throws Exception {
485         _stringResponse.recycle();
486 
487         MyPlacesTag.doTag(_servletContext, _request, _stringResponse);
488 
489         return _stringResponse.getString();
490     }
491 
492     public String permissionsURL(
493             String redirect, String modelResource,
494             String modelResourceDescription, String resourcePrimKey)
495         throws Exception {
496 
497         return PermissionsURLTag.doTag(
498             redirect, modelResource, modelResourceDescription, resourcePrimKey,
499             null, false, _pageContext);
500     }
501 
502     public String pngImage(String image, String height, String width)
503         throws Exception {
504 
505         _stringResponse.recycle();
506 
507         PngImageTag.doTag(image, height, width, _servletContext, _request,
508             _stringResponse);
509 
510         return _stringResponse.getString();
511     }
512 
513     public String renderURL(String portletName, String queryString)
514         throws Exception {
515 
516         String windowState = WindowState.NORMAL.toString();
517         String portletMode = PortletMode.VIEW.toString();
518 
519         return renderURL(windowState, portletMode, portletName, queryString);
520     }
521 
522     public String renderURL(
523             String windowState, String portletMode, String portletName,
524             String queryString)
525         throws Exception {
526 
527         Boolean secure = null;
528         Boolean copyCurrentRenderParameters = null;
529         Boolean escapeXml = null;
530         Boolean anchor = null;
531         Boolean encrypt = null;
532         long doAsUserId = 0;
533         Boolean portletConfiguration = null;
534 
535         return renderURL(
536             windowState, portletMode, secure, copyCurrentRenderParameters,
537             escapeXml, portletName, anchor, encrypt, doAsUserId,
538             portletConfiguration, queryString);
539     }
540 
541     public String renderURL(
542             String windowState, String portletMode, Boolean secure,
543             Boolean copyCurrentRenderParameters, Boolean escapeXml,
544             String portletName, Boolean anchor, Boolean encrypt,
545             long doAsUserId, Boolean portletConfiguration, String queryString)
546         throws Exception {
547 
548         String var = null;
549         String varImpl = null;
550         String name = null;
551         String resourceID = null;
552         String cacheability = null;
553         Map<String, String[]> params = HttpUtil.parameterMapFromString(
554             queryString);
555         boolean writeOutput = false;
556 
557         return ActionURLTag.doTag(
558             PortletRequest.RENDER_PHASE, windowState, portletMode, var, varImpl,
559             secure, copyCurrentRenderParameters, escapeXml, name, resourceID,
560             cacheability, portletName, anchor, encrypt, doAsUserId,
561             portletConfiguration, params, writeOutput, _pageContext);
562     }
563 
564     public String runtime(String portletName)
565         throws Exception {
566 
567         return runtime(portletName, null);
568     }
569 
570     public String runtime(String portletName, String queryString)
571         throws Exception {
572 
573         _stringResponse.recycle();
574 
575         RuntimeTag.doTag(
576             portletName, queryString, null, _servletContext, _request,
577             _stringResponse);
578 
579         return _stringResponse.getString();
580     }
581 
582     public String runtime(
583             String portletName, String queryString, String defaultPreferences)
584         throws Exception {
585 
586         _stringResponse.recycle();
587 
588         RuntimeTag.doTag(
589             portletName, queryString, defaultPreferences, null, _servletContext,
590             _request, _stringResponse);
591 
592         return _stringResponse.getString();
593     }
594 
595     public String search() throws Exception {
596         _stringResponse.recycle();
597 
598         SearchTag.doTag(_servletContext, _request, _stringResponse);
599 
600         return _stringResponse.getString();
601     }
602 
603     public String staging() throws Exception {
604         _stringResponse.recycle();
605 
606         StagingTag.doTag(_servletContext, _request, _stringResponse);
607 
608         return _stringResponse.getString();
609     }
610 
611     public String toggle(
612             String id, String showImage, String hideImage, String showMessage,
613             String hideMessage, boolean defaultShowContent)
614         throws Exception {
615 
616         _stringResponse.recycle();
617 
618         ToggleTag.doTag(
619             id, showImage, hideImage, showMessage, hideMessage,
620             defaultShowContent, null, _servletContext, _request,
621             _stringResponse);
622 
623         return _stringResponse.getString();
624     }
625 
626     public String wrapPortlet(String wrapPage, String portletPage)
627         throws Exception {
628 
629         _stringResponse.recycle();
630 
631         return WrapPortletTag.doTag(
632             wrapPage, portletPage, _servletContext, _request, _stringResponse,
633             _pageContext);
634     }
635 
636     private ServletContext _servletContext;
637     private HttpServletRequest _request;
638     private StringServletResponse _stringResponse;
639     private PageContext _pageContext;
640 
641 }