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