All Downloads are FREE. Search and download functionalities are using the official Maven repository.
Please wait. This can take some minutes ...
Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance.
Project price only 1 $
You can buy this project and download/modify it how often you want.
com.liferay.journal.web.internal.display.context.JournalFeedsDisplayContext Maven / Gradle / Ivy
/**
* 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.journal.web.internal.display.context;
import com.liferay.frontend.taglib.clay.servlet.taglib.util.CreationMenu;
import com.liferay.frontend.taglib.clay.servlet.taglib.util.DropdownItem;
import com.liferay.frontend.taglib.clay.servlet.taglib.util.DropdownItemList;
import com.liferay.frontend.taglib.clay.servlet.taglib.util.ViewTypeItem;
import com.liferay.frontend.taglib.clay.servlet.taglib.util.ViewTypeItemList;
import com.liferay.journal.service.JournalFeedLocalServiceUtil;
import com.liferay.journal.web.internal.search.FeedSearch;
import com.liferay.journal.web.internal.search.FeedSearchTerms;
import com.liferay.petra.string.StringPool;
import com.liferay.portal.kernel.dao.search.EmptyOnClickRowChecker;
import com.liferay.portal.kernel.dao.search.SearchContainer;
import com.liferay.portal.kernel.language.LanguageUtil;
import com.liferay.portal.kernel.theme.ThemeDisplay;
import com.liferay.portal.kernel.util.ParamUtil;
import com.liferay.portal.kernel.util.PortalUtil;
import com.liferay.portal.kernel.util.Validator;
import com.liferay.portal.kernel.util.WebKeys;
import java.util.List;
import java.util.Objects;
import javax.portlet.PortletURL;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import javax.servlet.http.HttpServletRequest;
/**
* @author Eudaldo Alonso
*/
public class JournalFeedsDisplayContext {
public JournalFeedsDisplayContext(
RenderRequest renderRequest, RenderResponse renderResponse) {
_renderRequest = renderRequest;
_renderResponse = renderResponse;
_request = PortalUtil.getHttpServletRequest(renderRequest);
}
public List getActionItemsDropdownItems() {
return new DropdownItemList() {
{
add(
dropdownItem -> {
dropdownItem.putData("action", "deleteFeeds");
dropdownItem.setIcon("trash");
dropdownItem.setLabel(
LanguageUtil.get(_request, "delete"));
dropdownItem.setQuickAction(true);
});
}
};
}
public String getClearResultsURL() {
PortletURL clearResultsURL = getPortletURL();
clearResultsURL.setParameter("keywords", StringPool.BLANK);
return clearResultsURL.toString();
}
public CreationMenu getCreationMenu() {
ThemeDisplay themeDisplay = (ThemeDisplay)_request.getAttribute(
WebKeys.THEME_DISPLAY);
return new CreationMenu() {
{
addPrimaryDropdownItem(
dropdownItem -> {
dropdownItem.setHref(
_renderResponse.createRenderURL(), "mvcPath",
"/edit_feed.jsp", "redirect",
themeDisplay.getURLCurrent());
dropdownItem.setLabel(
LanguageUtil.get(_request, "add-feed"));
});
}
};
}
public String getDisplayStyle() {
if (_displayStyle != null) {
return _displayStyle;
}
_displayStyle = ParamUtil.getString(
_renderRequest, "displayStyle", "list");
return _displayStyle;
}
public SearchContainer getFeedsSearchContainer() {
if (_feedSearch != null) {
return _feedSearch;
}
ThemeDisplay themeDisplay = (ThemeDisplay)_renderRequest.getAttribute(
WebKeys.THEME_DISPLAY);
_feedSearch = new FeedSearch(_renderRequest, getPortletURL());
_feedSearch.setRowChecker(new EmptyOnClickRowChecker(_renderResponse));
FeedSearchTerms searchTerms =
(FeedSearchTerms)_feedSearch.getSearchTerms();
int feedsCount = JournalFeedLocalServiceUtil.searchCount(
themeDisplay.getCompanyId(), searchTerms.getGroupId(),
searchTerms.getKeywords());
_feedSearch.setTotal(feedsCount);
List feeds = JournalFeedLocalServiceUtil.search(
themeDisplay.getCompanyId(), searchTerms.getGroupId(),
searchTerms.getKeywords(), _feedSearch.getStart(),
_feedSearch.getEnd(), _feedSearch.getOrderByComparator());
_feedSearch.setResults(feeds);
return _feedSearch;
}
public List getFilterItemsDropdownItems() {
return new DropdownItemList() {
{
addGroup(
dropdownGroupItem -> {
dropdownGroupItem.setDropdownItems(
_getFilterNavigationDropdownItems());
dropdownGroupItem.setLabel(
LanguageUtil.get(_request, "filter-by-navigation"));
});
addGroup(
dropdownGroupItem -> {
dropdownGroupItem.setDropdownItems(
_getOrderByDropdownItems());
dropdownGroupItem.setLabel(
LanguageUtil.get(_request, "order-by"));
});
}
};
}
public String getOrderByCol() {
if (_orderByCol != null) {
return _orderByCol;
}
_orderByCol = ParamUtil.getString(_renderRequest, "orderByCol", "name");
return _orderByCol;
}
public String getOrderByType() {
if (_orderByType != null) {
return _orderByType;
}
_orderByType = ParamUtil.getString(
_renderRequest, "orderByType", "asc");
return _orderByType;
}
public PortletURL getPortletURL() {
PortletURL portletURL = _renderResponse.createRenderURL();
portletURL.setParameter("mvcPath", "/view_feeds.jsp");
portletURL.setParameter("redirect", getRedirect());
portletURL.setParameter("displayStyle", getDisplayStyle());
portletURL.setParameter("orderByCol", getOrderByCol());
portletURL.setParameter("orderByType", getOrderByType());
return portletURL;
}
public String getRedirect() {
if (_redirect != null) {
return _redirect;
}
_redirect = ParamUtil.getString(_renderRequest, "redirect");
return _redirect;
}
public String getSearchActionURL() {
PortletURL searchActionURL = getPortletURL();
return searchActionURL.toString();
}
public String getSortingURL() {
PortletURL sortingURL = getPortletURL();
sortingURL.setParameter(
"orderByType",
Objects.equals(getOrderByType(), "asc") ? "desc" : "asc");
return sortingURL.toString();
}
public int getTotalItems() {
return _getTotal();
}
public List getViewTypeItems() {
return new ViewTypeItemList(getPortletURL(), getDisplayStyle()) {
{
addCardViewTypeItem();
addListViewTypeItem();
addTableViewTypeItem();
}
};
}
public boolean isDisabledManagementBar() {
if (_getTotal() > 0) {
return false;
}
if (_isSearch()) {
return false;
}
return true;
}
public boolean isShowSearch() {
if (_getTotal() > 0) {
return true;
}
if (_isSearch()) {
return true;
}
return false;
}
private List _getFilterNavigationDropdownItems() {
return new DropdownItemList() {
{
add(
dropdownItem -> {
dropdownItem.setActive(true);
dropdownItem.setHref(_renderResponse.createRenderURL());
dropdownItem.setLabel(
LanguageUtil.get(_request, "all"));
});
}
};
}
private String _getKeywords() {
if (_keywords != null) {
return _keywords;
}
_keywords = ParamUtil.getString(_renderRequest, "keywords");
return _keywords;
}
private List _getOrderByDropdownItems() {
return new DropdownItemList() {
{
add(
dropdownItem -> {
dropdownItem.setActive(
Objects.equals(getOrderByCol(), "name"));
dropdownItem.setHref(
getPortletURL(), "orderByCol", "name");
dropdownItem.setLabel(
LanguageUtil.get(_request, "name"));
});
add(
dropdownItem -> {
dropdownItem.setActive(
Objects.equals(getOrderByCol(), "id"));
dropdownItem.setHref(
getPortletURL(), "orderByCol", "id");
dropdownItem.setLabel(LanguageUtil.get(_request, "id"));
});
}
};
}
private int _getTotal() {
SearchContainer feedSearchContainer = getFeedsSearchContainer();
return feedSearchContainer.getTotal();
}
private boolean _isSearch() {
if (Validator.isNotNull(_getKeywords())) {
return true;
}
return true;
}
private String _displayStyle;
private FeedSearch _feedSearch;
private String _keywords;
private String _orderByCol;
private String _orderByType;
private String _redirect;
private final RenderRequest _renderRequest;
private final RenderResponse _renderResponse;
private final HttpServletRequest _request;
}