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 myPlaces(int max) throws Exception {
493         _stringResponse.recycle();
494 
495         MyPlacesTag.doTag(max, _servletContext, _request, _stringResponse);
496 
497         return _stringResponse.getString();
498     }
499 
500     public String permissionsURL(
501             String redirect, String modelResource,
502             String modelResourceDescription, String resourcePrimKey)
503         throws Exception {
504 
505         return PermissionsURLTag.doTag(
506             redirect, modelResource, modelResourceDescription, resourcePrimKey,
507             null, false, _pageContext);
508     }
509 
510     public String pngImage(String image, String height, String width)
511         throws Exception {
512 
513         _stringResponse.recycle();
514 
515         PngImageTag.doTag(image, height, width, _servletContext, _request,
516             _stringResponse);
517 
518         return _stringResponse.getString();
519     }
520 
521     public String renderURL(String portletName, String queryString)
522         throws Exception {
523 
524         String windowState = WindowState.NORMAL.toString();
525         String portletMode = PortletMode.VIEW.toString();
526 
527         return renderURL(windowState, portletMode, portletName, queryString);
528     }
529 
530     public String renderURL(
531             String windowState, String portletMode, String portletName,
532             String queryString)
533         throws Exception {
534 
535         Boolean secure = null;
536         Boolean copyCurrentRenderParameters = null;
537         Boolean escapeXml = null;
538         Boolean anchor = null;
539         Boolean encrypt = null;
540         long doAsUserId = 0;
541         Boolean portletConfiguration = null;
542 
543         return renderURL(
544             windowState, portletMode, secure, copyCurrentRenderParameters,
545             escapeXml, portletName, anchor, encrypt, doAsUserId,
546             portletConfiguration, queryString);
547     }
548 
549     public String renderURL(
550             String windowState, String portletMode, Boolean secure,
551             Boolean copyCurrentRenderParameters, Boolean escapeXml,
552             String portletName, Boolean anchor, Boolean encrypt,
553             long doAsUserId, Boolean portletConfiguration, String queryString)
554         throws Exception {
555 
556         String var = null;
557         String varImpl = null;
558         String name = null;
559         String resourceID = null;
560         String cacheability = null;
561         Map<String, String[]> params = HttpUtil.parameterMapFromString(
562             queryString);
563         boolean writeOutput = false;
564 
565         return ActionURLTag.doTag(
566             PortletRequest.RENDER_PHASE, windowState, portletMode, var, varImpl,
567             secure, copyCurrentRenderParameters, escapeXml, name, resourceID,
568             cacheability, portletName, anchor, encrypt, doAsUserId,
569             portletConfiguration, params, writeOutput, _pageContext);
570     }
571 
572     public String runtime(String portletName)
573         throws Exception {
574 
575         return runtime(portletName, null);
576     }
577 
578     public String runtime(String portletName, String queryString)
579         throws Exception {
580 
581         _stringResponse.recycle();
582 
583         RuntimeTag.doTag(
584             portletName, queryString, null, _servletContext, _request,
585             _stringResponse);
586 
587         return _stringResponse.getString();
588     }
589 
590     public String runtime(
591             String portletName, String queryString, String defaultPreferences)
592         throws Exception {
593 
594         _stringResponse.recycle();
595 
596         RuntimeTag.doTag(
597             portletName, queryString, defaultPreferences, null, _servletContext,
598             _request, _stringResponse);
599 
600         return _stringResponse.getString();
601     }
602 
603     public String search() throws Exception {
604         _stringResponse.recycle();
605 
606         SearchTag.doTag(_servletContext, _request, _stringResponse);
607 
608         return _stringResponse.getString();
609     }
610 
611     public String staging() throws Exception {
612         _stringResponse.recycle();
613 
614         StagingTag.doTag(_servletContext, _request, _stringResponse);
615 
616         return _stringResponse.getString();
617     }
618 
619     public String toggle(
620             String id, String showImage, String hideImage, String showMessage,
621             String hideMessage, boolean defaultShowContent)
622         throws Exception {
623 
624         _stringResponse.recycle();
625 
626         ToggleTag.doTag(
627             id, showImage, hideImage, showMessage, hideMessage,
628             defaultShowContent, null, _servletContext, _request,
629             _stringResponse);
630 
631         return _stringResponse.getString();
632     }
633 
634     public String wrapPortlet(String wrapPage, String portletPage)
635         throws Exception {
636 
637         _stringResponse.recycle();
638 
639         return WrapPortletTag.doTag(
640             wrapPage, portletPage, _servletContext, _request, _stringResponse,
641             _pageContext);
642     }
643 
644     private ServletContext _servletContext;
645     private HttpServletRequest _request;
646     private StringServletResponse _stringResponse;
647     private PageContext _pageContext;
648 
649 }