/**
* 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.document.library.web.internal.portlet.action;
import com.liferay.document.library.kernel.model.DLFolder;
import com.liferay.document.library.kernel.model.DLFolderConstants;
import com.liferay.document.library.kernel.service.DLAppService;
import com.liferay.document.library.kernel.service.DLFolderLocalService;
import com.liferay.document.library.web.constants.DLPortletKeys;
import com.liferay.document.library.web.constants.DLWebKeys;
import com.liferay.document.library.web.internal.portlet.toolbar.contributor.DLPortletToolbarContributor;
import com.liferay.document.library.web.internal.util.DLTrashUtil;
import com.liferay.portal.kernel.portlet.bridges.mvc.MVCRenderCommand;
import com.liferay.portal.kernel.servlet.SessionErrors;
import com.liferay.portal.kernel.util.ParamUtil;
import javax.portlet.PortletException;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;
/**
* @author Iván Zaera
*/
@Component(
property = {
"javax.portlet.name=" + DLPortletKeys.DOCUMENT_LIBRARY,
"javax.portlet.name=" + DLPortletKeys.DOCUMENT_LIBRARY_ADMIN,
"mvc.command.name=/", "mvc.command.name=/document_library/view",
"mvc.command.name=/document_library/view_folder"
},
service = MVCRenderCommand.class
)
public class DLViewMVCRenderCommand extends GetFolderMVCRenderCommand {
@Override
public String render(
RenderRequest renderRequest, RenderResponse renderResponse)
throws PortletException {
renderRequest.setAttribute(
DLWebKeys.DOCUMENT_LIBRARY_PORTLET_TOOLBAR_CONTRIBUTOR,
_dlPortletToolbarContributor);
try {
pingFolderRepository(renderRequest);
}
catch (Exception e) {
SessionErrors.add(renderRequest, "repositoryPingFailed", e);
return "/document_library/error.jsp";
}
return super.render(renderRequest, renderResponse);
}
@Override
protected DLTrashUtil getDLTrashUtil() {
return _dlTrashUtil;
}
@Override
protected String getPath() {
return "/document_library/view.jsp";
}
protected void pingFolderRepository(RenderRequest renderRequest)
throws Exception {
String mvcRenderCommandName = ParamUtil.getString(
renderRequest, "mvcRenderCommandName");
if (!mvcRenderCommandName.equals("/document_library/view_folder")) {
return;
}
long folderId = ParamUtil.getLong(renderRequest, "folderId");
if (folderId == DLFolderConstants.DEFAULT_PARENT_FOLDER_ID) {
return;
}
DLFolder dlFolder = _dlFolderLocalService.fetchDLFolder(folderId);
if ((dlFolder == null) || !dlFolder.isMountPoint()) {
return;
}
_dlAppService.getFileEntriesCount(
dlFolder.getRepositoryId(), dlFolder.getFolderId());
}
@Reference
private DLAppService _dlAppService;
@Reference
private DLFolderLocalService _dlFolderLocalService;
@Reference
private DLPortletToolbarContributor _dlPortletToolbarContributor;
@Reference
private DLTrashUtil _dlTrashUtil;
}