com.liferay.trash.web.internal.display.context.TrashContainerModelDisplayContext.java Source code

Java tutorial

Introduction

Here is the source code for com.liferay.trash.web.internal.display.context.TrashContainerModelDisplayContext.java

Source

/**
 * 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.trash.web.internal.display.context;

import com.liferay.petra.string.StringPool;
import com.liferay.portal.kernel.dao.search.SearchContainer;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.language.LanguageUtil;
import com.liferay.portal.kernel.model.ContainerModel;
import com.liferay.portal.kernel.portlet.LiferayPortletRequest;
import com.liferay.portal.kernel.portlet.LiferayPortletResponse;
import com.liferay.portal.kernel.theme.ThemeDisplay;
import com.liferay.portal.kernel.trash.TrashHandler;
import com.liferay.portal.kernel.trash.TrashHandlerRegistryUtil;
import com.liferay.portal.kernel.trash.TrashRenderer;
import com.liferay.portal.kernel.util.HtmlUtil;
import com.liferay.portal.kernel.util.ListUtil;
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 javax.portlet.PortletURL;

import javax.servlet.http.HttpServletRequest;

/**
 * Provides utility methods moved from the trash entry model container's JSP
 * file to reduce the complexity of that particular view.
 *
 * @author Jrgen Kappler
 */
public class TrashContainerModelDisplayContext {

    public TrashContainerModelDisplayContext(LiferayPortletRequest liferayPortletRequest,
            LiferayPortletResponse liferayPortletResponse) {

        _liferayPortletRequest = liferayPortletRequest;
        _liferayPortletResponse = liferayPortletResponse;

        _request = PortalUtil.getHttpServletRequest(liferayPortletRequest);
    }

    public String getBackURL() {
        if (Validator.isNotNull(_backURL)) {
            return _backURL;
        }

        _backURL = ParamUtil.getString(_request, "backURL", getRedirect());

        return _backURL;
    }

    public String getClassName() {
        if (Validator.isNotNull(_className)) {
            return _className;
        }

        _className = PortalUtil.getClassName(getClassNameId());

        return _className;
    }

    public long getClassNameId() {
        if (_classNameId != null) {
            return _classNameId;
        }

        _classNameId = ParamUtil.getLong(_request, "classNameId");

        return _classNameId;
    }

    public long getClassPK() {
        if (_classPK != null) {
            return _classPK;
        }

        _classPK = ParamUtil.getLong(_request, "classPK");

        return _classPK;
    }

    public String getContainerModelClassName() {
        if (Validator.isNotNull(_containerModelClassName)) {
            return _containerModelClassName;
        }

        _containerModelClassName = PortalUtil.getClassName(getContainerModelClassNameId());

        return _containerModelClassName;
    }

    public long getContainerModelClassNameId() {
        if (_containerModelClassNameId != null) {
            return _containerModelClassNameId;
        }

        String containerModelClassName = StringPool.BLANK;

        TrashHandler trashHandler = getTrashHandler();

        if (trashHandler != null) {
            containerModelClassName = trashHandler.getContainerModelClassName(getClassPK());
        }

        _containerModelClassNameId = ParamUtil.getLong(_request, "containerModelClassNameId",
                PortalUtil.getClassNameId(containerModelClassName));

        return _containerModelClassNameId;
    }

    public long getContainerModelId() {
        if (_containerModelId != null) {
            return _containerModelId;
        }

        _containerModelId = ParamUtil.getLong(_request, "containerModelId");

        return _containerModelId;
    }

    public String getContainerModelName() {
        if (Validator.isNotNull(_containerModelName)) {
            return _containerModelName;
        }

        TrashHandler trashHandler = getTrashHandler();

        if (trashHandler != null) {
            _containerModelName = trashHandler.getContainerModelName();
        }

        return _containerModelName;
    }

    public List<ContainerModel> getContainerModels() throws PortalException {
        if (ListUtil.isNotEmpty(_containerModels)) {
            return _containerModels;
        }

        SearchContainer searchContainer = getSearchContainer();

        TrashHandler trashHandler = getTrashHandler();

        if ((searchContainer != null) && (trashHandler != null)) {
            _containerModels = trashHandler.getContainerModels(getClassPK(), getContainerModelId(),
                    searchContainer.getStart(), searchContainer.getEnd());
        }

        return _containerModels;
    }

    public int getContainerModelsCount() throws PortalException {
        if (_containerModelsCount != null) {
            return _containerModelsCount;
        }

        int containerModelsCount = 0;

        TrashHandler trashHandler = getTrashHandler();

        if (trashHandler != null) {
            containerModelsCount = trashHandler.getContainerModelsCount(getClassPK(), getContainerModelId());
        }

        _containerModelsCount = containerModelsCount;

        return _containerModelsCount;
    }

    public PortletURL getContainerURL() {
        String currentURL = (String) _request.getAttribute(WebKeys.CURRENT_URL);

        PortletURL containerURL = _liferayPortletResponse.createRenderURL();

        containerURL.setParameter("mvcPath", "/view_container_model.jsp");
        containerURL.setParameter("redirect", getRedirect());
        containerURL.setParameter("backURL", currentURL);
        containerURL.setParameter("classNameId", String.valueOf(getClassNameId()));
        containerURL.setParameter("classPK", String.valueOf(getClassPK()));

        return containerURL;
    }

    public String getEventName() {
        if (Validator.isNotNull(_eventName)) {
            return _eventName;
        }

        _eventName = ParamUtil.getString(_request, "eventName",
                _liferayPortletResponse.getNamespace() + "selectContainer");

        return _eventName;
    }

    public Object[] getMissingContainerMessageArguments() throws PortalException {

        if (Validator.isNotNull(_missingContainerMessageArguments)) {
            return _missingContainerMessageArguments;
        }

        ThemeDisplay themeDisplay = (ThemeDisplay) _request.getAttribute(WebKeys.THEME_DISPLAY);

        String trashRendererTitle = StringPool.BLANK;

        TrashRenderer trashRenderer = getTrashRenderer();

        if (trashRenderer != null) {
            trashRendererTitle = trashRenderer.getTitle(themeDisplay.getLocale());
        }

        _missingContainerMessageArguments = new Object[] { LanguageUtil.get(_request, getContainerModelName()),
                HtmlUtil.escape(trashRendererTitle) };

        return _missingContainerMessageArguments;
    }

    public String getRedirect() {
        if (Validator.isNotNull(_redirect)) {
            return _redirect;
        }

        _redirect = ParamUtil.getString(_request, "redirect");

        return _redirect;
    }

    public SearchContainer getSearchContainer() {
        if (_searchContainer != null) {
            return _searchContainer;
        }

        PortletURL containerURL = getContainerURL();

        containerURL.setParameter("containerModelId", String.valueOf(getContainerModelId()));

        _searchContainer = new SearchContainer(_liferayPortletRequest, null, null,
                SearchContainer.DEFAULT_CUR_PARAM, SearchContainer.DEFAULT_DELTA, containerURL, null, null);

        return _searchContainer;
    }

    public TrashHandler getTrashHandler() {
        if (_trashHandler != null) {
            return _trashHandler;
        }

        _trashHandler = TrashHandlerRegistryUtil.getTrashHandler(getClassName());

        return _trashHandler;
    }

    public TrashRenderer getTrashRenderer() throws PortalException {
        if (_trashRenderer != null) {
            return _trashRenderer;
        }

        TrashHandler trashHandler = getTrashHandler();

        if (trashHandler != null) {
            _trashRenderer = trashHandler.getTrashRenderer(getClassPK());
        }

        return _trashRenderer;
    }

    public boolean isShowBackIcon() throws PortalException {
        if (_showBackIcon != null) {
            return _showBackIcon;
        }

        TrashHandler containerTrashHandler = TrashHandlerRegistryUtil.getTrashHandler(getContainerModelClassName());

        ContainerModel containerModel = null;

        if (getContainerModelId() > 0) {
            containerModel = containerTrashHandler.getContainerModel(getContainerModelId());
        }

        boolean showBackIcon = false;

        if (containerModel != null) {
            showBackIcon = true;
        }

        _showBackIcon = showBackIcon;

        return _showBackIcon;
    }

    private String _backURL;
    private String _className;
    private Long _classNameId;
    private Long _classPK;
    private String _containerModelClassName;
    private Long _containerModelClassNameId;
    private Long _containerModelId;
    private String _containerModelName;
    private List<ContainerModel> _containerModels;
    private Integer _containerModelsCount;
    private String _eventName;
    private final LiferayPortletRequest _liferayPortletRequest;
    private final LiferayPortletResponse _liferayPortletResponse;
    private Object[] _missingContainerMessageArguments;
    private String _redirect;
    private final HttpServletRequest _request;
    private SearchContainer _searchContainer;
    private Boolean _showBackIcon;
    private TrashHandler _trashHandler;
    private TrashRenderer _trashRenderer;

}