Example usage for com.liferay.portal.kernel.util PortalUtil addPortletBreadcrumbEntry

List of usage examples for com.liferay.portal.kernel.util PortalUtil addPortletBreadcrumbEntry

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.util PortalUtil addPortletBreadcrumbEntry.

Prototype

public static void addPortletBreadcrumbEntry(HttpServletRequest httpServletRequest, String title, String url,
        Map<String, Object> data) 

Source Link

Document

Adds an entry to the portlet breadcrumbs for the page in the request.

Usage

From source file:com.liferay.document.library.web.internal.util.DLBreadcrumbUtil.java

License:Open Source License

public static void addPortletBreadcrumbEntries(Folder folder, HttpServletRequest request,
        LiferayPortletResponse liferayPortletResponse) throws Exception {

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

    PortletURL portletURL = liferayPortletResponse.createRenderURL();

    portletURL.setParameter("mvcRenderCommandName", "/document_library/view");

    Map<String, Object> data = new HashMap<>();

    data.put("direction-right", Boolean.TRUE.toString());

    PortletDisplay portletDisplay = themeDisplay.getPortletDisplay();

    DLPortletInstanceSettings dlPortletInstanceSettings = DLPortletInstanceSettings
            .getInstance(themeDisplay.getLayout(), portletDisplay.getId());

    data.put("folder-id", dlPortletInstanceSettings.getRootFolderId());

    PortalUtil.addPortletBreadcrumbEntry(request, themeDisplay.translate("home"), portletURL.toString(), data);

    portletURL.setParameter("mvcRenderCommandName", "/document_library/view_folder");

    addPortletBreadcrumbEntries(folder, request, portletURL);
}

From source file:com.liferay.document.library.web.internal.util.DLBreadcrumbUtil.java

License:Open Source License

public static void addPortletBreadcrumbEntries(Folder folder, HttpServletRequest request, PortletURL portletURL)
        throws Exception {

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

    PortletDisplay portletDisplay = themeDisplay.getPortletDisplay();

    long rootFolderId = DLFolderConstants.DEFAULT_PARENT_FOLDER_ID;

    boolean ignoreRootFolder = ParamUtil.getBoolean(request, "ignoreRootFolder");

    if (!ignoreRootFolder) {
        DLPortletInstanceSettings dlPortletInstanceSettings = DLPortletInstanceSettings
                .getInstance(themeDisplay.getLayout(), portletDisplay.getId());

        rootFolderId = dlPortletInstanceSettings.getRootFolderId();
    }/* ww  w  .  java2s  . c om*/

    List<Folder> ancestorFolders = Collections.emptyList();

    if ((folder != null) && (folder.getFolderId() != rootFolderId)) {
        ancestorFolders = folder.getAncestors();

        int indexOfRootFolder = -1;

        for (int i = 0; i < ancestorFolders.size(); i++) {
            Folder ancestorFolder = ancestorFolders.get(i);

            if (rootFolderId == ancestorFolder.getFolderId()) {
                indexOfRootFolder = i;
            }
        }

        if (indexOfRootFolder > -1) {
            ancestorFolders = ancestorFolders.subList(0, indexOfRootFolder);
        }
    }

    Collections.reverse(ancestorFolders);

    for (Folder ancestorFolder : ancestorFolders) {
        portletURL.setParameter("folderId", String.valueOf(ancestorFolder.getFolderId()));

        Map<String, Object> data = new HashMap<>();

        data.put("direction-right", Boolean.TRUE.toString());
        data.put("folder-id", ancestorFolder.getFolderId());

        PortalUtil.addPortletBreadcrumbEntry(request, ancestorFolder.getName(), portletURL.toString(), data);
    }

    long folderId = DLFolderConstants.DEFAULT_PARENT_FOLDER_ID;

    if (folder != null) {
        folderId = folder.getFolderId();
    }

    portletURL.setParameter("folderId", String.valueOf(folderId));

    if ((folderId != DLFolderConstants.DEFAULT_PARENT_FOLDER_ID) && (folderId != rootFolderId)) {

        Folder unescapedFolder = folder.toUnescapedModel();

        Map<String, Object> data = new HashMap<>();

        data.put("direction-right", Boolean.TRUE.toString());
        data.put("folder-id", folderId);

        PortalUtil.addPortletBreadcrumbEntry(request, unescapedFolder.getName(), portletURL.toString(), data);
    }
}