001
014
015 package com.liferay.portal.kernel.portlet;
016
017 import com.liferay.portal.kernel.exception.PortalException;
018 import com.liferay.portal.kernel.util.WebKeys;
019 import com.liferay.portal.model.Group;
020 import com.liferay.portal.theme.ThemeDisplay;
021 import com.liferay.portal.util.PortalUtil;
022 import com.liferay.portlet.PortletURLFactoryUtil;
023
024 import javax.portlet.PortletRequest;
025 import javax.portlet.PortletURL;
026
027 import javax.servlet.http.HttpServletRequest;
028
029
032 public abstract class BasePortletProvider implements PortletProvider {
033
034 @Override
035 public PortletURL getPortletURL(HttpServletRequest request)
036 throws PortalException {
037
038 return getPortletURL(request, null);
039 }
040
041 @Override
042 public PortletURL getPortletURL(HttpServletRequest request, Group group)
043 throws PortalException {
044
045 ThemeDisplay themeDisplay = (ThemeDisplay)request.getAttribute(
046 WebKeys.THEME_DISPLAY);
047
048 long plid = getPlid(themeDisplay);
049 long controlPanelPlid = PortalUtil.getControlPanelPlid(
050 themeDisplay.getCompanyId());
051
052 if (plid == controlPanelPlid) {
053 return PortalUtil.getControlPanelPortletURL(
054 request, group, getPortletId(), 0, 0,
055 PortletRequest.RENDER_PHASE);
056 }
057 else {
058 return PortletURLFactoryUtil.create(
059 request, getPortletId(), plid, PortletRequest.RENDER_PHASE);
060 }
061 }
062
063 protected long getPlid(ThemeDisplay themeDisplay) throws PortalException {
064 return PortalUtil.getControlPanelPlid(themeDisplay.getCompanyId());
065 }
066
067 }