/**
* 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.wiki.web.internal.display.context;
import com.liferay.portal.kernel.theme.ThemeDisplay;
import com.liferay.portal.kernel.util.StringBundler;
import com.liferay.wiki.display.context.WikiPageInfoPanelDisplayContext;
import com.liferay.wiki.model.WikiNode;
import com.liferay.wiki.model.WikiPage;
import com.liferay.wiki.service.WikiPageLocalServiceUtil;
import com.liferay.wiki.web.internal.display.context.util.WikiPageInfoPanelRequestHelper;
import java.util.List;
import java.util.UUID;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* @author Adolfo PĂ©rez
*/
public class DefaultWikiPageInfoPanelDisplayContext
implements WikiPageInfoPanelDisplayContext {
public DefaultWikiPageInfoPanelDisplayContext(
HttpServletRequest request, HttpServletResponse response) {
_wikiPageInfoPanelRequestHelper = new WikiPageInfoPanelRequestHelper(
request);
}
@Override
public WikiPage getFirstPage() {
List<WikiPage> pages = _wikiPageInfoPanelRequestHelper.getPages();
if (pages.isEmpty()) {
return _wikiPageInfoPanelRequestHelper.getPage();
}
return pages.get(0);
}
@Override
public String getPageRSSURL(WikiPage page) {
ThemeDisplay themeDisplay =
_wikiPageInfoPanelRequestHelper.getThemeDisplay();
StringBundler sb = new StringBundler(5);
sb.append(themeDisplay.getPathMain());
sb.append("/wiki/rss?nodeId=");
sb.append(page.getNodeId());
sb.append("&title=");
sb.append(page.getTitle());
return sb.toString();
}
@Override
public int getPagesCount() {
WikiNode node = _wikiPageInfoPanelRequestHelper.getCurrentNode();
return WikiPageLocalServiceUtil.getPagesCount(node.getNodeId(), true);
}
@Override
public int getSelectedPagesCount() {
List<?> items = getSelectedPages();
return items.size();
}
@Override
public UUID getUuid() {
return _UUID;
}
@Override
public boolean isMultiplePageSelection() {
List<?> items = getSelectedPages();
if (items.size() > 1) {
return true;
}
else {
return false;
}
}
@Override
public boolean isShowSidebarHeader() {
return _wikiPageInfoPanelRequestHelper.isShowSidebarHeader();
}
@Override
public boolean isSinglePageSelection() {
List<WikiPage> pages = _wikiPageInfoPanelRequestHelper.getPages();
if (pages.size() == 1) {
return true;
}
else {
WikiPage page = _wikiPageInfoPanelRequestHelper.getPage();
if (page != null) {
return true;
}
return false;
}
}
protected List<WikiPage> getSelectedPages() {
return _wikiPageInfoPanelRequestHelper.getPages();
}
private static final UUID _UUID = UUID.fromString(
"7099F1F8-ED73-47D8-9CDC-ED292BF7779F");
private final WikiPageInfoPanelRequestHelper
_wikiPageInfoPanelRequestHelper;
}