KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > dotmarketing > util > PortletURLUtil


1 /*
2  * Created on Jul 14, 2004
3  *
4  */

5 package com.dotmarketing.util;
6
7 import java.util.Map JavaDoc;
8 import java.util.StringTokenizer JavaDoc;
9
10 import javax.portlet.ActionRequest;
11 import javax.portlet.WindowState;
12 import javax.servlet.http.HttpServletRequest JavaDoc;
13
14 import com.liferay.portal.model.Layout;
15 import com.liferay.portal.util.WebKeys;
16 import com.liferay.portlet.ActionRequestImpl;
17 import com.liferay.portlet.PortletConfigImpl;
18 import com.liferay.portlet.RenderRequestImpl;
19 import com.liferay.util.Validator;
20
21 /**
22  * @author Maria
23  *
24  */

25 public class PortletURLUtil {
26
27     public static String JavaDoc getActionURL(ActionRequest req, String JavaDoc _windowState, Map JavaDoc _params) {
28
29         // wraps request to get session object
30
ActionRequestImpl reqImpl = (ActionRequestImpl) req;
31         HttpServletRequest JavaDoc httpReq = reqImpl.getHttpServletRequest();
32
33         return com.dotmarketing.util.PortletURLUtil.getActionURL(httpReq, _windowState, _params);
34     }
35
36     public static String JavaDoc getActionURL(HttpServletRequest JavaDoc req, String JavaDoc _windowState, Map JavaDoc _params) {
37         RenderRequestImpl renderRequest = (RenderRequestImpl) req.getAttribute(WebKeys.JAVAX_PORTLET_REQUEST);
38
39         PortletConfigImpl portletConfig = (PortletConfigImpl) req.getAttribute(WebKeys.JAVAX_PORTLET_CONFIG);
40
41         String JavaDoc portletName = portletConfig.getPortletId();
42         Layout layout = (Layout) req.getAttribute(WebKeys.LAYOUT);
43
44         com.liferay.portlet.PortletURLImpl portletURL = new com.liferay.portlet.PortletURLImpl(renderRequest, portletName, layout.getLayoutId(), true);
45
46         try {
47             if (Validator.isNotNull(_windowState)) {
48                 portletURL.setWindowState(new WindowState(_windowState));
49             } else {
50                 portletURL.setWindowState(renderRequest.getWindowState());
51             }
52
53             // if (Validator.isNotNull(_portletMode)) {
54
// portletURL.setPortletMode(new PortletMode(_portletMode));
55
// }
56
// else {
57
portletURL.setPortletMode(renderRequest.getPortletMode());
58             // }
59

60             // if (_secure != null) {
61
// portletURL.setSecure(_secure.booleanValue());
62
// }
63
// else {
64
portletURL.setSecure(req.isSecure());
65             // }
66

67             if (_params != null) {
68                 Logger.debug(Config.class, "Setting params=" + _params);
69                 portletURL.setParameters(_params);
70             }
71
72
73         } catch (Exception JavaDoc e) {
74             Logger.warn(PortletURLUtil.class, e.toString(), e);
75         }
76
77         return stripProtocolAndHost(portletURL.toString());
78     }
79
80     public PortletURLUtil() {
81         // empty constructor to call methods from velocity pages
82
}
83
84     public static String JavaDoc getRenderURL(HttpServletRequest JavaDoc req, String JavaDoc _windowState, Map JavaDoc _params) {
85         RenderRequestImpl renderRequest = (RenderRequestImpl) req.getAttribute(WebKeys.JAVAX_PORTLET_REQUEST);
86
87         PortletConfigImpl portletConfig = (PortletConfigImpl) req.getAttribute(WebKeys.JAVAX_PORTLET_CONFIG);
88
89         String JavaDoc portletName = portletConfig.getPortletId();
90         Layout layout = (Layout) req.getAttribute(WebKeys.LAYOUT);
91
92         com.liferay.portlet.PortletURLImpl portletURL = new com.liferay.portlet.PortletURLImpl(renderRequest, portletName, layout.getLayoutId(),
93                 false);
94
95         try {
96             if (Validator.isNotNull(_windowState)) {
97                 portletURL.setWindowState(new WindowState(_windowState));
98             } else {
99                 portletURL.setWindowState(renderRequest.getWindowState());
100             }
101
102             portletURL.setPortletMode(renderRequest.getPortletMode());
103             portletURL.setSecure(req.isSecure());
104
105             if (_params != null) {
106                 Logger.debug(PortletURLUtil.class, "Setting params=" + _params);
107                 portletURL.setParameters(_params);
108             }
109         } catch (Exception JavaDoc e) {
110             Logger.error(PortletURLUtil.class, e.toString(), e);
111         }
112         return stripProtocolAndHost(portletURL.toString());
113     }
114     
115     /**
116      * this method returns a relative url from an absolute url
117      * @param url the full url + uri to be stripped
118      * @return the new url without protocol or host information
119      */

120     
121     
122     private static String JavaDoc stripProtocolAndHost(String JavaDoc url){
123     
124         if(url.indexOf("://")<0){
125             return url;
126         }
127         StringTokenizer JavaDoc st = new StringTokenizer JavaDoc(url, "/");
128         StringBuffer JavaDoc sb = new StringBuffer JavaDoc();
129         int i = 0;
130
131         while (st.hasMoreTokens()) {
132             String JavaDoc _y = st.nextToken();
133             if (i > 1) {
134                 sb.append("/");
135                 sb.append(_y);
136             }
137             i++;
138         }
139         //return portletURL.toString();
140
return sb.toString();
141         
142         
143     }
144     
145     
146     
147 }
148
Popular Tags