1
22
23
41
42 package com.liferay.portal.portletcontainer;
43
44 import com.liferay.portal.kernel.log.Log;
45 import com.liferay.portal.kernel.log.LogFactoryUtil;
46 import com.liferay.portlet.PortletURLImpl;
47
48 import com.sun.portal.container.ChannelURLType;
49
50 import javax.portlet.PortletMode;
51 import javax.portlet.PortletModeException;
52 import javax.portlet.PortletRequest;
53 import javax.portlet.WindowState;
54 import javax.portlet.WindowStateException;
55
56 import javax.servlet.http.HttpServletRequest;
57
58
64 public class LiferayPortletURLImpl extends PortletURLImpl {
65
66 public LiferayPortletURLImpl(
67 HttpServletRequest request, String portletId, WindowState windowState,
68 PortletMode portletMode, long plid, String lifecycle) {
69
70 super(request, portletId, plid, lifecycle);
71
72 setLifecycle(getLifecyclePhase(lifecycle));
73 setURLType(getChannelURlType(lifecycle));
74
75 try {
76 setWindowState(windowState);
77 }
78 catch (WindowStateException wse1) {
79 if (_log.isWarnEnabled()) {
80 _log.warn(
81 "Exception while setting window state for " + portletId,
82 wse1);
83 }
84 try {
85 setWindowState(WindowState.NORMAL);
86 }
87 catch (WindowStateException wse2) {
88 }
89 }
90
91 try {
92 setPortletMode(portletMode);
93 }
94 catch (PortletModeException pme1) {
95 if (_log.isWarnEnabled()) {
96 _log.warn(
97 "Exception while setting portlet mode for " + portletId,
98 pme1);
99 }
100 try {
101 setPortletMode(PortletMode.VIEW);
102 }
103 catch (PortletModeException pme2) {
104 }
105 }
106 }
107
108 protected ChannelURLType getChannelURlType(String lifecycle) {
109 if (PortletRequest.ACTION_PHASE.equals(lifecycle)) {
110 return ChannelURLType.ACTION;
111 }
112 else if (PortletRequest.RENDER_PHASE.equals(lifecycle)) {
113 return ChannelURLType.RENDER;
114 }
115 else if (PortletRequest.RESOURCE_PHASE.equals(lifecycle)) {
116 return ChannelURLType.RESOURCE;
117 }
118 else {
119 return ChannelURLType.RENDER;
120 }
121 }
122
123 protected String getLifecyclePhase(String lifecycle) {
124 if (PortletRequest.RENDER_PHASE.equals(lifecycle)) {
125
126
128 return PortletRequest.ACTION_PHASE;
129 }
130
131 return lifecycle;
132 }
133
134 private static Log _log =
135 LogFactoryUtil.getLog(LiferayPortletURLImpl.class);
136
137 }