/** * 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.social.activities.web.internal.portlet.display.context; import com.liferay.portal.kernel.exception.PortalException; import com.liferay.portal.kernel.language.LanguageUtil; import com.liferay.portal.kernel.model.Group; import com.liferay.portal.kernel.model.Layout; import com.liferay.portal.kernel.portlet.LiferayPortletResponse; import com.liferay.portal.kernel.util.AggregateResourceBundleLoader; import com.liferay.portal.kernel.util.HtmlUtil; import com.liferay.portal.kernel.util.ResourceBundleLoader; import com.liferay.portal.kernel.util.ResourceBundleLoaderUtil; import com.liferay.social.activities.web.internal.portlet.display.context.util.SocialActivitiesRequestHelper; import com.liferay.social.activities.web.internal.util.SocialActivitiesQueryHelper; import com.liferay.social.kernel.model.SocialActivitySet; import java.util.List; import java.util.ResourceBundle; import javax.portlet.PortletURL; import javax.portlet.ResourceURL; /** * @author Adolfo PĂ©rez */ public class DefaultSocialActivitiesDisplayContext implements SocialActivitiesDisplayContext { public DefaultSocialActivitiesDisplayContext( SocialActivitiesRequestHelper socialActivitiesRequestHelper, SocialActivitiesQueryHelper socialActivitiesQueryHelper) { _socialActivitiesRequestHelper = socialActivitiesRequestHelper; _socialActivitiesQueryHelper = socialActivitiesQueryHelper; } @Override public int getMax() { return _socialActivitiesRequestHelper.getMax(); } @Override public String getPaginationURL() { LiferayPortletResponse liferayPortletResponse = _socialActivitiesRequestHelper.getLiferayPortletResponse(); PortletURL portletURL = liferayPortletResponse.createRenderURL(); int end = _socialActivitiesRequestHelper.getEnd() + _socialActivitiesRequestHelper.getMax(); portletURL.setParameter("end", String.valueOf(end)); return portletURL.toString(); } @Override public int getRSSDelta() { return _socialActivitiesRequestHelper.getRSSDelta(); } @Override public String getRSSDisplayStyle() { return _socialActivitiesRequestHelper.getRSSDisplayStyle(); } @Override public String getRSSFeedType() { return _socialActivitiesRequestHelper.getRSSFeedType(); } @Override public ResourceURL getRSSResourceURL() throws PortalException { Group group = _socialActivitiesRequestHelper.getScopeGroup(); String groupDescriptiveName = HtmlUtil.escape( group.getDescriptiveName( _socialActivitiesRequestHelper.getLocale())); String feedTitle = LanguageUtil.format( getResourceBundle(), "x's-activities", groupDescriptiveName, false); LiferayPortletResponse liferayPortletResponse = _socialActivitiesRequestHelper.getLiferayPortletResponse(); ResourceURL rssURL = liferayPortletResponse.createResourceURL(); rssURL.setParameter("feedTitle", feedTitle); rssURL.setParameter( "max", String.valueOf(_socialActivitiesRequestHelper.getRSSDelta())); rssURL.setResourceID("rss"); return rssURL; } @Override public String getSelectedTabName() { return _socialActivitiesRequestHelper.getTabs1(); } @Override public List<SocialActivitySet> getSocialActivitySets() { if (_socialActivitySets != null) { return _socialActivitySets; } Group group = _socialActivitiesRequestHelper.getScopeGroup(); Layout layout = _socialActivitiesRequestHelper.getLayout(); SocialActivitiesQueryHelper.Scope scope = SocialActivitiesQueryHelper.Scope.fromValue(getSelectedTabName()); _socialActivitySets = _socialActivitiesQueryHelper.getSocialActivitySets( group, layout, scope, 0, _socialActivitiesRequestHelper.getEnd()); return _socialActivitySets; } @Override public String getTabsNames() { return "all,connections,following,my-sites,me"; } @Override public String getTabsURL() { LiferayPortletResponse liferayPortletResponse = _socialActivitiesRequestHelper.getLiferayPortletResponse(); PortletURL portletURL = liferayPortletResponse.createRenderURL(); portletURL.setParameter("tabs1", getSelectedTabName()); return portletURL.toString(); } @Override public String getTaglibFeedTitle() throws PortalException { return LanguageUtil.get(getResourceBundle(), "rss"); } @Override public boolean isRSSEnabled() { return _socialActivitiesRequestHelper.isRSSEnabled(); } @Override public boolean isSeeMoreControlVisible() { Group group = _socialActivitiesRequestHelper.getScopeGroup(); Layout layout = _socialActivitiesRequestHelper.getLayout(); SocialActivitiesQueryHelper.Scope scope = SocialActivitiesQueryHelper.Scope.fromValue(getSelectedTabName()); int count = _socialActivitiesQueryHelper.getSocialActivitySetsCount( group, layout, scope); if (_socialActivitiesRequestHelper.getEnd() < count) { return true; } return false; } @Override public boolean isTabsVisible() { Group group = _socialActivitiesRequestHelper.getScopeGroup(); Layout layout = _socialActivitiesRequestHelper.getLayout(); if (group.isUser() && layout.isPrivateLayout()) { return true; } return false; } protected ResourceBundle getResourceBundle() { if (_resourceBundle != null) { return _resourceBundle; } ResourceBundleLoader resourceBundleLoader = ResourceBundleLoaderUtil. getResourceBundleLoaderByBundleSymbolicName( "com.liferay.social.activities.web"); resourceBundleLoader = new AggregateResourceBundleLoader( resourceBundleLoader, LanguageUtil.getPortalResourceBundleLoader()); _resourceBundle = resourceBundleLoader.loadResourceBundle( _socialActivitiesRequestHelper.getLocale()); return _resourceBundle; } private ResourceBundle _resourceBundle; private final SocialActivitiesQueryHelper _socialActivitiesQueryHelper; private final SocialActivitiesRequestHelper _socialActivitiesRequestHelper; private List<SocialActivitySet> _socialActivitySets; }