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