/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*/
package com.liferay.site.item.selector.web.internal.display.context;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.model.Group;
import com.liferay.portal.kernel.portlet.LiferayPortletResponse;
import com.liferay.portal.kernel.portlet.PortalPreferences;
import com.liferay.portal.kernel.portlet.PortletPreferencesFactoryUtil;
import com.liferay.portal.kernel.portlet.PortletURLUtil;
import com.liferay.portal.kernel.theme.ThemeDisplay;
import com.liferay.portal.kernel.util.JavaConstants;
import com.liferay.portal.kernel.util.ParamUtil;
import com.liferay.portal.kernel.util.Validator;
import com.liferay.portal.kernel.util.WebKeys;
import com.liferay.site.item.selector.criterion.SiteItemSelectorCriterion;
import com.liferay.site.item.selector.web.internal.constants.SitesItemSelectorWebKeys;
import javax.portlet.PortletException;
import javax.portlet.PortletRequest;
import javax.portlet.PortletResponse;
import javax.portlet.PortletURL;
import javax.servlet.http.HttpServletRequest;
/**
* @author Julio Camarero
*/
public abstract class BaseSitesItemSelectorViewDisplayContext
implements SitesItemSelectorViewDisplayContext {
public BaseSitesItemSelectorViewDisplayContext(
HttpServletRequest request,
SiteItemSelectorCriterion siteItemSelectorCriterion,
String itemSelectedEventName, PortletURL portletURL) {
this.request = request;
_siteItemSelectorCriterion = siteItemSelectorCriterion;
_itemSelectedEventName = itemSelectedEventName;
this.portletURL = portletURL;
}
@Override
public String getDisplayStyle() {
String displayStyle = ParamUtil.getString(request, "displayStyle");
PortalPreferences portalPreferences =
PortletPreferencesFactoryUtil.getPortalPreferences(request);
if (Validator.isNull(displayStyle)) {
displayStyle = portalPreferences.getValue(
SitesItemSelectorWebKeys.SITES_ITEM_SELECTOR, "display-style",
"icon");
}
else {
portalPreferences.setValue(
SitesItemSelectorWebKeys.SITES_ITEM_SELECTOR, "display-style",
displayStyle);
request.setAttribute(
WebKeys.SINGLE_PAGE_APPLICATION_CLEAR_CACHE, Boolean.TRUE);
}
return displayStyle;
}
@Override
public String getGroupName(Group group) throws PortalException {
ThemeDisplay themeDisplay = (ThemeDisplay)request.getAttribute(
WebKeys.THEME_DISPLAY);
return group.getDescriptiveName(themeDisplay.getLocale());
}
@Override
public String getItemSelectedEventName() {
return _itemSelectedEventName;
}
@Override
public PortletRequest getPortletRequest() {
return (PortletRequest)request.getAttribute(
JavaConstants.JAVAX_PORTLET_REQUEST);
}
@Override
public PortletResponse getPortletResponse() {
return (PortletResponse)request.getAttribute(
JavaConstants.JAVAX_PORTLET_RESPONSE);
}
@Override
public PortletURL getPortletURL() throws PortletException {
return PortletURLUtil.clone(
portletURL, (LiferayPortletResponse)getPortletResponse());
}
@Override
public SiteItemSelectorCriterion getSiteItemSelectorCriterion() {
return _siteItemSelectorCriterion;
}
@Override
public boolean isShowChildSitesLink() {
return false;
}
@Override
public boolean isShowSortFilter() {
return false;
}
protected final PortletURL portletURL;
protected final HttpServletRequest request;
private final String _itemSelectedEventName;
private final SiteItemSelectorCriterion _siteItemSelectorCriterion;
}