primarySlot
Returns the location this renderer's primary bar belongs in —
NavSlots.sideRail()
or NavSlots.touchBar(), depending on the concrete subclass.NavRendererNavRenderer for NavType.RAIL
— a left-edge icon rail in NavSlots.sideRail(), with a "More" overflow trigger when
more root sections exist than fit, plus a drill-down bar in NavSlots.headerNav() for
nested routes, however deep they go.
Override createOverflowComponent(List, Button, Map) to replace the overflow presentation while
keeping everything else unchanged.
protected com.vaadin.flow.component.button.ButtoncreateNavButton(com.vaadin.flow.component.Component content,
Class<? extends com.vaadin.flow.component.Component> viewClass) Button wrapping content, and navigating to
viewClass on click (or doing nothing on click if null — the "More"
overflow trigger has no route of its own).protected com.vaadin.flow.component.ComponentcreateOverflowComponent(List<com.vaadin.flow.server.menu.MenuEntry> overflowEntries,
com.vaadin.flow.component.button.Button overflowTrigger,
Map<NavNode, com.vaadin.flow.component.button.Button> overflowButtonsOut) Popover listing the overflowing entries.navType()NavStrategy gets built for
whichever scenario this renderer is configured for.protected com.vaadin.flow.component.HasComponentsprimarySlot(NavSlots slots) NavSlots.sideRail()
or NavSlots.touchBar(), depending on the concrete subclass.voidrender(NavRenderContext context) clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitrailWidthPopover listing the overflowing entries. Override to replace it with a
different presentation shown in response to tapping the "More" trigger (e.g. a
Dialog) while keeping bar layout, active highlighting, and header-nav delegation
unchanged. Implementations that want the "More" item to highlight while one of their
entries is active should populate overflowButtonsOut the same way this default
does. If the replacement presentation still uses one button per entry, build them via
createNavButton(Component, Class) rather than a plain new Button(...) to keep the same
theme-adaptive active-color behavior.