1   /**
2    * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
3    *
4    * The contents of this file are subject to the terms of the Liferay Enterprise
5    * Subscription License ("License"). You may not use this file except in
6    * compliance with the License. You can obtain a copy of the License by
7    * contacting Liferay, Inc. See the License for the specific language governing
8    * permissions and limitations under the License, including but not limited to
9    * distribution rights of the Software.
10   *
11   *
12   *
13   */
14  
15  package com.liferay.taglib.util;
16  
17  import com.liferay.portal.kernel.servlet.StringServletResponse;
18  import com.liferay.portal.kernel.util.HttpUtil;
19  import com.liferay.portal.kernel.util.WebKeys;
20  import com.liferay.portal.model.Layout;
21  import com.liferay.portal.model.LayoutConstants;
22  import com.liferay.portal.model.Portlet;
23  import com.liferay.portal.model.Theme;
24  import com.liferay.portal.theme.ThemeDisplay;
25  import com.liferay.taglib.portlet.ActionURLTag;
26  import com.liferay.taglib.portletext.IconBackTag;
27  import com.liferay.taglib.portletext.IconCloseTag;
28  import com.liferay.taglib.portletext.IconConfigurationTag;
29  import com.liferay.taglib.portletext.IconEditDefaultsTag;
30  import com.liferay.taglib.portletext.IconEditGuestTag;
31  import com.liferay.taglib.portletext.IconEditTag;
32  import com.liferay.taglib.portletext.IconHelpTag;
33  import com.liferay.taglib.portletext.IconMaximizeTag;
34  import com.liferay.taglib.portletext.IconMinimizeTag;
35  import com.liferay.taglib.portletext.IconOptionsTag;
36  import com.liferay.taglib.portletext.IconPortletCssTag;
37  import com.liferay.taglib.portletext.IconPortletTag;
38  import com.liferay.taglib.portletext.IconPrintTag;
39  import com.liferay.taglib.portletext.IconRefreshTag;
40  import com.liferay.taglib.portletext.RuntimeTag;
41  import com.liferay.taglib.security.DoAsURLTag;
42  import com.liferay.taglib.security.PermissionsURLTag;
43  import com.liferay.taglib.theme.LayoutIconTag;
44  import com.liferay.taglib.theme.MetaTagsTag;
45  import com.liferay.taglib.theme.WrapPortletTag;
46  import com.liferay.taglib.ui.BreadcrumbTag;
47  import com.liferay.taglib.ui.JournalContentSearchTag;
48  import com.liferay.taglib.ui.LanguageTag;
49  import com.liferay.taglib.ui.MyPlacesTag;
50  import com.liferay.taglib.ui.PngImageTag;
51  import com.liferay.taglib.ui.SearchTag;
52  import com.liferay.taglib.ui.StagingTag;
53  import com.liferay.taglib.ui.ToggleTag;
54  
55  import java.util.Map;
56  
57  import javax.portlet.PortletMode;
58  import javax.portlet.PortletRequest;
59  import javax.portlet.PortletURL;
60  import javax.portlet.WindowState;
61  
62  import javax.servlet.RequestDispatcher;
63  import javax.servlet.ServletContext;
64  import javax.servlet.http.HttpServletRequest;
65  import javax.servlet.jsp.PageContext;
66  
67  /**
68   * <a href="VelocityTaglib.java.html"><b><i>View Source</i></b></a>
69   *
70   * @author Brian Wing Shun Chan
71   */
72  public class VelocityTaglib {
73  
74      public VelocityTaglib() {
75      }
76  
77      public VelocityTaglib(
78          ServletContext servletContext, HttpServletRequest request,
79          StringServletResponse stringResponse, PageContext pageContext) {
80  
81          init(servletContext, request, stringResponse, pageContext);
82      }
83  
84      public VelocityTaglib init(
85          ServletContext servletContext, HttpServletRequest request,
86          StringServletResponse stringResponse, PageContext pageContext) {
87  
88          _servletContext = servletContext;
89          _request = request;
90          _stringResponse = stringResponse;
91          _pageContext = pageContext;
92  
93          return this;
94      }
95  
96      public String actionURL(String portletName, String queryString)
97          throws Exception {
98  
99          return actionURL(
100             LayoutConstants.DEFAULT_PLID, portletName, queryString);
101     }
102 
103     public String actionURL(long plid, String portletName, String queryString)
104         throws Exception {
105 
106         String windowState = WindowState.NORMAL.toString();
107         String portletMode = PortletMode.VIEW.toString();
108 
109         return actionURL(
110             windowState, portletMode, plid, portletName, queryString);
111     }
112 
113     public String actionURL(
114             String windowState, String portletMode, String portletName,
115             String queryString)
116         throws Exception {
117 
118         return actionURL(
119             windowState, portletMode, LayoutConstants.DEFAULT_PLID, portletName,
120             queryString);
121     }
122 
123     public String actionURL(
124             String windowState, String portletMode, long plid,
125             String portletName, String queryString)
126         throws Exception {
127 
128         Boolean secure = null;
129         Boolean copyCurrentRenderParameters = null;
130         Boolean escapeXml = null;
131         String name = null;
132         Boolean anchor = null;
133         Boolean encrypt = null;
134         long doAsUserId = 0;
135         Boolean portletConfiguration = null;
136 
137         return actionURL(
138             windowState, portletMode, secure, copyCurrentRenderParameters,
139             escapeXml, name, plid, portletName, anchor, encrypt, doAsUserId,
140             portletConfiguration, queryString);
141     }
142 
143     public String actionURL(
144             String windowState, String portletMode, Boolean secure,
145             Boolean copyCurrentRenderParameters, Boolean escapeXml, String name,
146             long plid, String portletName, Boolean anchor, Boolean encrypt,
147             long doAsUserId, Boolean portletConfiguration, String queryString)
148         throws Exception {
149 
150         String var = null;
151         String varImpl = null;
152         String resourceID = null;
153         String cacheability = null;
154         Map<String, String[]> params = HttpUtil.parameterMapFromString(
155             queryString);
156         boolean writeOutput = false;
157 
158         return ActionURLTag.doTag(
159             PortletRequest.ACTION_PHASE, windowState, portletMode, var, varImpl,
160             secure, copyCurrentRenderParameters, escapeXml, name, resourceID,
161             cacheability, plid, portletName, anchor, encrypt, doAsUserId,
162             portletConfiguration, params, writeOutput, _pageContext);
163     }
164 
165     public String breadcrumb() throws Exception {
166         _stringResponse.recycle();
167 
168         BreadcrumbTag.doTag(_servletContext, _request, _stringResponse);
169 
170         return _stringResponse.getString();
171     }
172 
173     public String breadcrumb(
174             String page, Layout selLayout, String selLayoutParam,
175             PortletURL portletURL, int displayStyle)
176         throws Exception {
177 
178         _stringResponse.recycle();
179 
180         BreadcrumbTag.doTag(
181             page, selLayout, selLayoutParam, portletURL, displayStyle,
182             _servletContext, _request, _stringResponse);
183 
184         return _stringResponse.getString();
185     }
186 
187     public String doAsURL(long doAsUserId) throws Exception {
188         return DoAsURLTag.doTag(doAsUserId, null, false, _pageContext);
189     }
190 
191     public String getSetting(String name) {
192         ThemeDisplay themeDisplay = (ThemeDisplay)_request.getAttribute(
193             WebKeys.THEME_DISPLAY);
194 
195         Theme theme = themeDisplay.getTheme();
196 
197         return theme.getSetting(name);
198     }
199 
200     public String iconBack() throws Exception {
201         _stringResponse.recycle();
202 
203         IconBackTag.doTag(_servletContext, _request, _stringResponse);
204 
205         return _stringResponse.getString();
206     }
207 
208     public String iconBack(String page) throws Exception {
209         _stringResponse.recycle();
210 
211         IconBackTag.doTag(page, _servletContext, _request, _stringResponse);
212 
213         return _stringResponse.getString();
214     }
215 
216     public String iconClose() throws Exception {
217         _stringResponse.recycle();
218 
219         IconCloseTag.doTag(_servletContext, _request, _stringResponse);
220 
221         return _stringResponse.getString();
222     }
223 
224     public String iconClose(String page) throws Exception {
225         _stringResponse.recycle();
226 
227         IconCloseTag.doTag(page, _servletContext, _request, _stringResponse);
228 
229         return _stringResponse.getString();
230     }
231 
232     public String iconConfiguration() throws Exception {
233         _stringResponse.recycle();
234 
235         IconConfigurationTag.doTag(_servletContext, _request, _stringResponse);
236 
237         return _stringResponse.getString();
238     }
239 
240     public String iconConfiguration(String page) throws Exception {
241         _stringResponse.recycle();
242 
243         IconConfigurationTag.doTag(
244             page, _servletContext, _request, _stringResponse);
245 
246         return _stringResponse.getString();
247     }
248 
249     public String iconEdit() throws Exception {
250         _stringResponse.recycle();
251 
252         IconEditTag.doTag(_servletContext, _request, _stringResponse);
253 
254         return _stringResponse.getString();
255     }
256 
257     public String iconEdit(String page) throws Exception {
258         _stringResponse.recycle();
259 
260         IconEditTag.doTag(page, _servletContext, _request, _stringResponse);
261 
262         return _stringResponse.getString();
263     }
264 
265     public String iconEditDefaults() throws Exception {
266         _stringResponse.recycle();
267 
268         IconEditDefaultsTag.doTag(_servletContext, _request, _stringResponse);
269 
270         return _stringResponse.getString();
271     }
272 
273     public String iconEditGuest() throws Exception {
274         _stringResponse.recycle();
275 
276         IconEditGuestTag.doTag(_servletContext, _request, _stringResponse);
277 
278         return _stringResponse.getString();
279     }
280 
281     public String iconEditGuest(String page) throws Exception {
282         _stringResponse.recycle();
283 
284         IconEditGuestTag.doTag(
285             page, _servletContext, _request, _stringResponse);
286 
287         return _stringResponse.getString();
288     }
289 
290     public String iconHelp() throws Exception {
291         _stringResponse.recycle();
292 
293         IconHelpTag.doTag(_servletContext, _request, _stringResponse);
294 
295         return _stringResponse.getString();
296     }
297 
298     public String iconHelp(String page) throws Exception {
299         _stringResponse.recycle();
300 
301         IconHelpTag.doTag(page, _servletContext, _request, _stringResponse);
302 
303         return _stringResponse.getString();
304     }
305 
306     public String iconMaximize() throws Exception {
307         _stringResponse.recycle();
308 
309         IconMaximizeTag.doTag(_servletContext, _request, _stringResponse);
310 
311         return _stringResponse.getString();
312     }
313 
314     public String iconMaximize(String page) throws Exception {
315         _stringResponse.recycle();
316 
317         IconMaximizeTag.doTag(page, _servletContext, _request, _stringResponse);
318 
319         return _stringResponse.getString();
320     }
321 
322     public String iconMinimize() throws Exception {
323         _stringResponse.recycle();
324 
325         IconMinimizeTag.doTag(_servletContext, _request, _stringResponse);
326 
327         return _stringResponse.getString();
328     }
329 
330     public String iconMinimize(String page) throws Exception {
331         _stringResponse.recycle();
332 
333         IconMinimizeTag.doTag(page, _servletContext, _request, _stringResponse);
334 
335         return _stringResponse.getString();
336     }
337 
338     public String iconOptions() throws Exception {
339         _stringResponse.recycle();
340 
341         IconOptionsTag.doTag(_servletContext, _request, _stringResponse);
342 
343         return _stringResponse.getString();
344     }
345 
346     public String iconOptions(String page) throws Exception {
347         _stringResponse.recycle();
348 
349         IconOptionsTag.doTag(page, _servletContext, _request, _stringResponse);
350 
351         return _stringResponse.getString();
352     }
353 
354     public String iconPortlet() throws Exception {
355         _stringResponse.recycle();
356 
357         IconPortletTag.doTag(_servletContext, _request, _stringResponse);
358 
359         return _stringResponse.getString();
360     }
361 
362     public String iconPortlet(String page, Portlet portlet) throws Exception {
363         _stringResponse.recycle();
364 
365         IconPortletTag.doTag(
366             page, portlet, _servletContext, _request, _stringResponse);
367 
368         return _stringResponse.getString();
369     }
370 
371     public String iconPortletCss() throws Exception {
372         _stringResponse.recycle();
373 
374         IconPortletCssTag.doTag(_servletContext, _request, _stringResponse);
375 
376         return _stringResponse.getString();
377     }
378 
379     public String iconPortletCss(String page) throws Exception {
380         _stringResponse.recycle();
381 
382         IconPortletCssTag.doTag(
383             page, _servletContext, _request, _stringResponse);
384 
385         return _stringResponse.getString();
386     }
387 
388     public String iconPrint() throws Exception {
389         _stringResponse.recycle();
390 
391         IconPrintTag.doTag(_servletContext, _request, _stringResponse);
392 
393         return _stringResponse.getString();
394     }
395 
396     public String iconPrint(String page) throws Exception {
397         _stringResponse.recycle();
398 
399         IconPrintTag.doTag(page, _servletContext, _request, _stringResponse);
400 
401         return _stringResponse.getString();
402     }
403 
404     public String iconRefresh() throws Exception {
405         _stringResponse.recycle();
406 
407         IconRefreshTag.doTag(_servletContext, _request, _stringResponse);
408 
409         return _stringResponse.getString();
410     }
411 
412     public String iconRefresh(String page) throws Exception {
413         _stringResponse.recycle();
414 
415         IconRefreshTag.doTag(page, _servletContext, _request, _stringResponse);
416 
417         return _stringResponse.getString();
418     }
419 
420     public String include(String page) throws Exception {
421         _stringResponse.recycle();
422 
423         RequestDispatcher requestDispatcher =
424             _servletContext.getRequestDispatcher(page);
425 
426         requestDispatcher.include(_request, _stringResponse);
427 
428         return _stringResponse.getString();
429     }
430 
431     public String include(ServletContext servletContext, String page)
432         throws Exception {
433 
434         _stringResponse.recycle();
435 
436         RequestDispatcher requestDispatcher =
437             servletContext.getRequestDispatcher(page);
438 
439         requestDispatcher.include(_request, _stringResponse);
440 
441         return _stringResponse.getString();
442     }
443 
444     public String journalContentSearch() throws Exception {
445         _stringResponse.recycle();
446 
447         JournalContentSearchTag.doTag(
448             _servletContext, _request, _stringResponse);
449 
450         return _stringResponse.getString();
451     }
452 
453     public String language() throws Exception {
454         _stringResponse.recycle();
455 
456         LanguageTag.doTag(_servletContext, _request, _stringResponse);
457 
458         return _stringResponse.getString();
459     }
460 
461     public String language(
462             String formName, String formAction, String name, int displayStyle)
463         throws Exception {
464 
465         _stringResponse.recycle();
466 
467         LanguageTag.doTag(
468             formName, formAction, name, null, displayStyle, _servletContext,
469             _request, _stringResponse);
470 
471         return _stringResponse.getString();
472     }
473 
474     public String language(
475             String formName, String formAction, String name,
476             String[] languageIds, int displayStyle)
477         throws Exception {
478 
479         _stringResponse.recycle();
480 
481         LanguageTag.doTag(
482             formName, formAction, name, languageIds, displayStyle,
483             _servletContext, _request, _stringResponse);
484 
485         return _stringResponse.getString();
486     }
487 
488     public String language(
489             String page, String formName, String formAction, String name,
490             int displayStyle)
491         throws Exception {
492 
493         _stringResponse.recycle();
494 
495         LanguageTag.doTag(
496             page, formName, formAction, name, null, displayStyle,
497             _servletContext, _request, _stringResponse);
498 
499         return _stringResponse.getString();
500     }
501 
502     public String language(
503             String page, String formName, String formAction, String name,
504             String[] languageIds, int displayStyle)
505         throws Exception {
506 
507         _stringResponse.recycle();
508 
509         LanguageTag.doTag(
510             page, formName, formAction, name, languageIds, displayStyle,
511             _servletContext, _request, _stringResponse);
512 
513         return _stringResponse.getString();
514     }
515 
516     public String layoutIcon(Layout layout) throws Exception {
517         _stringResponse.recycle();
518 
519         LayoutIconTag.doTag(layout, _servletContext, _request, _stringResponse);
520 
521         return _stringResponse.getString();
522     }
523 
524     public String metaTags() throws Exception {
525         _stringResponse.recycle();
526 
527         MetaTagsTag.doTag(_servletContext, _request, _stringResponse);
528 
529         return _stringResponse.getString();
530     }
531 
532     public String myPlaces() throws Exception {
533         _stringResponse.recycle();
534 
535         MyPlacesTag.doTag(_servletContext, _request, _stringResponse);
536 
537         return _stringResponse.getString();
538     }
539 
540     public String myPlaces(int max) throws Exception {
541         _stringResponse.recycle();
542 
543         MyPlacesTag.doTag(max, _servletContext, _request, _stringResponse);
544 
545         return _stringResponse.getString();
546     }
547 
548     public String permissionsURL(
549             String redirect, String modelResource,
550             String modelResourceDescription, String resourcePrimKey)
551         throws Exception {
552 
553         return PermissionsURLTag.doTag(
554             redirect, modelResource, modelResourceDescription, resourcePrimKey,
555             null, false, _pageContext);
556     }
557 
558     public String pngImage(String image, String height, String width)
559         throws Exception {
560 
561         _stringResponse.recycle();
562 
563         PngImageTag.doTag(image, height, width, _servletContext, _request,
564             _stringResponse);
565 
566         return _stringResponse.getString();
567     }
568 
569     public String renderURL(String portletName, String queryString)
570         throws Exception {
571 
572         return renderURL(
573             LayoutConstants.DEFAULT_PLID, portletName, queryString);
574     }
575 
576     public String renderURL(long plid, String portletName, String queryString)
577         throws Exception {
578 
579         String windowState = WindowState.NORMAL.toString();
580         String portletMode = PortletMode.VIEW.toString();
581 
582         return renderURL(
583             windowState, portletMode, plid, portletName, queryString);
584     }
585 
586     public String renderURL(
587             String windowState, String portletMode, String portletName,
588             String queryString)
589         throws Exception {
590 
591         return renderURL(
592             windowState, portletMode, LayoutConstants.DEFAULT_PLID, portletName,
593             queryString);
594     }
595 
596     public String renderURL(
597             String windowState, String portletMode, long plid,
598             String portletName, String queryString)
599         throws Exception {
600 
601         Boolean secure = null;
602         Boolean copyCurrentRenderParameters = null;
603         Boolean escapeXml = null;
604         Boolean anchor = null;
605         Boolean encrypt = null;
606         long doAsUserId = 0;
607         Boolean portletConfiguration = null;
608 
609         return renderURL(
610             windowState, portletMode, secure, copyCurrentRenderParameters,
611             escapeXml, plid, portletName, anchor, encrypt, doAsUserId,
612             portletConfiguration, queryString);
613     }
614 
615     public String renderURL(
616             String windowState, String portletMode, Boolean secure,
617             Boolean copyCurrentRenderParameters, Boolean escapeXml,
618             long plid, String portletName, Boolean anchor, Boolean encrypt,
619             long doAsUserId, Boolean portletConfiguration, String queryString)
620         throws Exception {
621 
622         String var = null;
623         String varImpl = null;
624         String name = null;
625         String resourceID = null;
626         String cacheability = null;
627         Map<String, String[]> params = HttpUtil.parameterMapFromString(
628             queryString);
629         boolean writeOutput = false;
630 
631         return ActionURLTag.doTag(
632             PortletRequest.RENDER_PHASE, windowState, portletMode, var, varImpl,
633             secure, copyCurrentRenderParameters, escapeXml, name, resourceID,
634             cacheability, plid, portletName, anchor, encrypt, doAsUserId,
635             portletConfiguration, params, writeOutput, _pageContext);
636     }
637 
638     public String runtime(String portletName)
639         throws Exception {
640 
641         return runtime(portletName, null);
642     }
643 
644     public String runtime(String portletName, String queryString)
645         throws Exception {
646 
647         _stringResponse.recycle();
648 
649         RuntimeTag.doTag(
650             portletName, queryString, null, _servletContext, _request,
651             _stringResponse);
652 
653         return _stringResponse.getString();
654     }
655 
656     public String runtime(
657             String portletName, String queryString, String defaultPreferences)
658         throws Exception {
659 
660         _stringResponse.recycle();
661 
662         RuntimeTag.doTag(
663             portletName, queryString, defaultPreferences, null, _servletContext,
664             _request, _stringResponse);
665 
666         return _stringResponse.getString();
667     }
668 
669     public String search() throws Exception {
670         _stringResponse.recycle();
671 
672         SearchTag.doTag(_servletContext, _request, _stringResponse);
673 
674         return _stringResponse.getString();
675     }
676 
677     public String staging() throws Exception {
678         _stringResponse.recycle();
679 
680         StagingTag.doTag(_servletContext, _request, _stringResponse);
681 
682         return _stringResponse.getString();
683     }
684 
685     public String toggle(
686             String id, String showImage, String hideImage, String showMessage,
687             String hideMessage, boolean defaultShowContent)
688         throws Exception {
689 
690         _stringResponse.recycle();
691 
692         ToggleTag.doTag(
693             id, showImage, hideImage, showMessage, hideMessage,
694             defaultShowContent, null, _servletContext, _request,
695             _stringResponse);
696 
697         return _stringResponse.getString();
698     }
699 
700     public String wrapPortlet(String wrapPage, String portletPage)
701         throws Exception {
702 
703         _stringResponse.recycle();
704 
705         return WrapPortletTag.doTag(
706             wrapPage, portletPage, _servletContext, _request, _stringResponse,
707             _pageContext);
708     }
709 
710     private ServletContext _servletContext;
711     private HttpServletRequest _request;
712     private StringServletResponse _stringResponse;
713     private PageContext _pageContext;
714 
715 }