All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.liferay.message.boards.web.internal.display.context.MBViewStatisticsDisplayContext Maven / Gradle / Ivy

/**
 * SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com
 * SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
 */

package com.liferay.message.boards.web.internal.display.context;

import com.liferay.message.boards.constants.MBPortletKeys;
import com.liferay.message.boards.model.MBCategory;
import com.liferay.message.boards.web.internal.display.MBCategoryDisplay;
import com.liferay.message.boards.web.internal.util.MBUtil;
import com.liferay.portal.kernel.portlet.url.builder.PortletURLBuilder;
import com.liferay.portal.kernel.theme.PortletDisplay;
import com.liferay.portal.kernel.theme.ThemeDisplay;
import com.liferay.portal.kernel.util.GetterUtil;
import com.liferay.portal.kernel.util.WebKeys;

import java.util.Objects;

import javax.portlet.PortletURL;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;

/**
 * @author Adolfo Pérez
 */
public class MBViewStatisticsDisplayContext {

	public MBViewStatisticsDisplayContext(
		RenderRequest renderRequest, RenderResponse renderResponse) {

		_renderRequest = renderRequest;
		_renderResponse = renderResponse;

		_themeDisplay = (ThemeDisplay)renderRequest.getAttribute(
			WebKeys.THEME_DISPLAY);
	}

	public MBCategoryDisplay getMBCategoryDisplay() {
		return new MBCategoryDisplay(
			_themeDisplay.getScopeGroupId(), _getCategoryId());
	}

	public PortletURL getPortletURL() {
		return PortletURLBuilder.createRenderURL(
			_renderResponse
		).setMVCRenderCommandName(
			"/message_boards/view_statistics"
		).setParameter(
			"mbCategoryId", _getCategoryId()
		).buildPortletURL();
	}

	public boolean isMBAdmin() {
		PortletDisplay portletDisplay = _themeDisplay.getPortletDisplay();

		if (Objects.equals(
				portletDisplay.getPortletName(),
				MBPortletKeys.MESSAGE_BOARDS_ADMIN)) {

			return true;
		}

		return false;
	}

	private long _getCategoryId() {
		if (_categoryId != null) {
			return _categoryId;
		}

		if (!isMBAdmin()) {
			MBCategory category = (MBCategory)_renderRequest.getAttribute(
				WebKeys.MESSAGE_BOARDS_CATEGORY);

			_categoryId = MBUtil.getCategoryId(_renderRequest, category);
		}
		else {
			_categoryId = GetterUtil.getLong(
				_renderRequest.getAttribute("view.jsp-categoryId"));
		}

		return _categoryId;
	}

	private Long _categoryId;
	private final RenderRequest _renderRequest;
	private final RenderResponse _renderResponse;
	private final ThemeDisplay _themeDisplay;

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy