Package org.vaadin.addons.joelpop.appnavlayout.ui.layout.appnav
package org.vaadin.addons.joelpop.appnavlayout.ui.layout.appnav
-
ClassDescriptionBase application layout providing adaptive navigation: a bottom icon bar with a secondary tab bar on phone, a permanent left-strip rail on tablet, and a drawer-based
SideNavon desktop.An alternativeNavRendererforNavType.TOUCH— a grid of root sections inNavSlots.touchBar()that expands upward via a chevron when there are more than fit, instead of the default "More" popover.An alternativeNavRendererforNavType.RAIL— every rail item that represents a nav group gets a right-pointing chevron instead of navigating to a representative child; tapping it pops up a flyout listing that group's own children, recursively, to whatever depth the route hierarchy actually goes.An alternativeNavRendererforNavType.HEADER— root sections rendered as aTabsstrip spanning the header; selecting a leaf navigates directly, selecting a group only reveals that root's own children in the sharedSecondaryTabBardrill-down row beneath, never navigating on its own — the same non-committal rule the drill-down row itself applies to a group tab of its own (seeSecondaryTabBar(boolean, boolean)).Everything aNavRendererneeds to build or update its content for the current nav state.Builds and updates the nav-item content for one ofAppNavLayout's five device/orientation scenarios (desktop, tablet portrait, tablet landscape, phone portrait, phone landscape), placing it into whichever ofAppNavLayout's named locations (seeNavSlots) is appropriate.The full set of named locationsAppNavLayouthas for nav-item content.Fired wheneverAppNavLayoutdetermines and applies aNavType— including on first attachment, not just on later changes.An alternativeNavRendererforNavType.TOUCH— a horizontally scrollable bar of root sections inNavSlots.touchBar(), with fading edge chevrons instead of the default "More" popover.DefaultNavRendererforNavType.SIDENAV— builds a fullSideNavhierarchy intoNavSlots.drawer(), using theSideNavItemrenderer configured viaAppNavLayout.setNavNodeRenderer(ComponentRenderer)and the nested-match setting fromAppNavLayout.setNavMatchNested(boolean).DefaultNavRendererforNavType.RAIL— a left-edge icon rail inNavSlots.sideRail(), with a "More" overflow trigger when more root sections exist than fit, plus a drill-down bar inNavSlots.headerNav()for nested routes, however deep they go.DefaultNavRendererforNavType.TOUCH— a bottom icon bar inNavSlots.touchBar(), with a "More" overflow trigger when more root sections exist than fit, plus a drill-down bar inNavSlots.headerNav()for nested routes, however deep they go.