Example usage for com.liferay.portal.kernel.theme NavItem NavItem

List of usage examples for com.liferay.portal.kernel.theme NavItem NavItem

Introduction

In this page you can find the example usage for com.liferay.portal.kernel.theme NavItem NavItem.

Prototype

public NavItem(HttpServletRequest httpServletRequest, ThemeDisplay themeDisplay, Layout layout,
            Map<String, Object> contextObjects) 

Source Link

Usage

From source file:com.liferay.site.navigation.taglib.servlet.taglib.NavigationTag.java

License:Open Source License

protected List<NavItem> getBranchNavItems(HttpServletRequest request) throws PortalException {

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

    Layout layout = themeDisplay.getLayout();

    if (layout.isRootLayout()) {
        return Collections.singletonList(new NavItem(request, themeDisplay, layout, null));
    }/*from ww w .  j  av a  2  s .  co  m*/

    List<Layout> ancestorLayouts = layout.getAncestors();

    List<NavItem> navItems = new ArrayList<>(ancestorLayouts.size() + 1);

    ListIterator<Layout> listIterator = ancestorLayouts.listIterator(ancestorLayouts.size());

    while (listIterator.hasPrevious()) {
        Layout ancestorLayout = listIterator.previous();

        navItems.add(new NavItem(request, themeDisplay, ancestorLayout, null));
    }

    navItems.add(new NavItem(request, themeDisplay, layout, null));

    return navItems;
}

From source file:com.liferay.site.navigation.taglib.servlet.taglib.NavigationTag.java

License:Open Source License

protected List<NavItem> getNavItems(List<NavItem> branchNavItems) throws Exception {

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

    List<NavItem> navItems = new ArrayList<>();

    NavItem rootNavItem = null;//from  w w  w. j a  v  a  2s . c o  m

    if (_rootLayoutType.equals("relative")) {
        if ((_rootLayoutLevel >= 0) && (_rootLayoutLevel < branchNavItems.size())) {

            rootNavItem = branchNavItems.get(_rootLayoutLevel);
        }
    } else if (_rootLayoutType.equals("absolute")) {
        if (_rootLayoutLevel == 0) {
            navItems = NavItem.fromLayouts(request, themeDisplay, null);
        } else if (branchNavItems.size() >= _rootLayoutLevel) {
            rootNavItem = branchNavItems.get(_rootLayoutLevel - 1);
        }
    } else if (_rootLayoutType.equals("select")) {
        Layout layout = themeDisplay.getLayout();

        if (Validator.isNotNull(_rootLayoutUuid)) {
            Layout rootLayout = LayoutLocalServiceUtil.getLayoutByUuidAndGroupId(_rootLayoutUuid,
                    layout.getGroupId(), layout.isPrivateLayout());

            rootNavItem = new NavItem(request, themeDisplay, rootLayout, null);
        } else {
            navItems = NavItem.fromLayouts(request, themeDisplay, null);
        }
    }

    if (rootNavItem != null) {
        navItems = rootNavItem.getChildren();
    }

    return navItems;
}