Class AppLayout
- java.lang.Object
-
- com.vaadin.flow.component.Component
-
- com.vaadin.flow.component.applayout.AppLayout
-
- All Implemented Interfaces:
com.vaadin.flow.component.AttachNotifier,com.vaadin.flow.component.DetachNotifier,com.vaadin.flow.component.HasElement,com.vaadin.flow.component.HasStyle,com.vaadin.flow.router.RouterLayout,Serializable
@Tag("vaadin-app-layout") @NpmPackage(value="@vaadin/polymer-legacy-adapter",version="23.1.15") @NpmPackage(value="@vaadin/app-layout",version="23.1.15") @NpmPackage(value="@vaadin/vaadin-app-layout",version="23.1.15") @JsModule("@vaadin/polymer-legacy-adapter/style-modules.js") @JsModule("@vaadin/app-layout/src/vaadin-app-layout.js") public class AppLayout extends com.vaadin.flow.component.Component implements com.vaadin.flow.router.RouterLayout, com.vaadin.flow.component.HasStyleApp Layout is a component for building common application layouts.The layout consists of three sections: a horizontal navigation bar (navbar), a collapsible navigation drawer (drawer) and a content area. An application’s main navigation blocks should be positioned in the navbar and/or drawer while views are rendered in the content area.
App Layout is responsive and adjusts automatically to fit desktop, tablet, and mobile screen sizes.
- Author:
- Vaadin Ltd
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classAppLayout.AppLayoutI18nThe internationalization properties forAppLayoutstatic classAppLayout.SectionSections in the component that can be used as primary.
-
Constructor Summary
Constructors Constructor Description AppLayout()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddToDrawer(com.vaadin.flow.component.Component... components)Adds the components to the drawer slot of this AppLayout.voidaddToNavbar(boolean touchOptimized, com.vaadin.flow.component.Component... components)Adds the components to the navbar slot of this AppLayout.voidaddToNavbar(com.vaadin.flow.component.Component... components)Adds the components to the navbar slot of this AppLayout.protected voidafterNavigation()Called after a navigation event.com.vaadin.flow.component.ComponentgetContent()AppLayout.AppLayoutI18ngetI18n()Gets the internationalization object previously set for this component.AppLayout.SectiongetPrimarySection()booleanisDrawerOpened()Whether the drawer is opened (visible) or not.booleanisOverlay()Note: This property is controlled via CSS and can not be changed directly.protected voidonAttach(com.vaadin.flow.component.AttachEvent attachEvent)voidremove(com.vaadin.flow.component.Component... components)Removes the child components from the parent.voidsetContent(com.vaadin.flow.component.Component content)Sets the displayed content.voidsetDrawerOpened(boolean drawerOpened)Server-side API for showing and hiding the drawer.voidsetI18n(AppLayout.AppLayoutI18n i18n)Sets the internationalization properties for this component.voidsetPrimarySection(AppLayout.Section primarySection)Defines whether navbar or drawer will come first visually.voidshowRouterLayoutContent(com.vaadin.flow.component.HasElement content)-
Methods inherited from class com.vaadin.flow.component.Component
addListener, fireEvent, from, get, getChildren, getElement, getEventBus, getId, getLocale, getParent, getTranslation, getTranslation, getTranslation, getUI, hasListener, isAttached, isTemplateMapped, isVisible, onDetach, onEnabledStateChanged, scrollIntoView, set, setElement, setId, setVisible
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
-
-
-
Method Detail
-
getI18n
public AppLayout.AppLayoutI18n getI18n()
Gets the internationalization object previously set for this component.Note: updating the i18n object that is returned from this method will not update the the component, unless it is set again using
setI18n(AppLayoutI18n)- Returns:
- the i18n object. It will be
null, if the i18n properties are not set.
-
setI18n
public void setI18n(AppLayout.AppLayoutI18n i18n)
Sets the internationalization properties for this component.- Parameters:
i18n- the internationalized properties, notnull
-
onAttach
protected void onAttach(com.vaadin.flow.component.AttachEvent attachEvent)
- Overrides:
onAttachin classcom.vaadin.flow.component.Component
-
getPrimarySection
@Synchronize("primary-section-changed") public AppLayout.Section getPrimarySection()- Returns:
- value for the primarySection property. Default is
AppLayout.Section.NAVBAR. - See Also:
setPrimarySection(Section)
-
setPrimarySection
public void setPrimarySection(AppLayout.Section primarySection)
Defines whether navbar or drawer will come first visually.- If
AppLayout.Section.NAVBAR, the navbar takes the full available width and moves the drawer down. This is the default. - If
AppLayout.Section.DRAWERis set, then the drawer will move the navbar, taking the full available height.
- Parameters:
primarySection- new value for the primarySection property. Notnull.- Throws:
NullPointerException- if primarySection isnull.
- If
-
isDrawerOpened
@Synchronize("drawer-opened-changed") public boolean isDrawerOpened()Whether the drawer is opened (visible) or not. Its default value depends on the viewport:truefor desktop size viewsfalsefor mobile size views
- Returns:
trueif the drawer is opened (visible).falseotherwise.
-
setDrawerOpened
public void setDrawerOpened(boolean drawerOpened)
Server-side API for showing and hiding the drawer.- Parameters:
drawerOpened- new value for the drawerOpened property.- See Also:
isDrawerOpened(),for a component that allows the user to open and close the drawer.
-
isOverlay
@Synchronize("overlay-changed") public boolean isOverlay()Note: This property is controlled via CSS and can not be changed directly.- Returns:
trueif drawer is an overlay on top of the content.falseotherwise.
-
getContent
public com.vaadin.flow.component.Component getContent()
- Returns:
- the displayed content
-
setContent
public void setContent(com.vaadin.flow.component.Component content)
Sets the displayed content.- Parameters:
content-Componentto display in the content area
-
addToDrawer
public void addToDrawer(com.vaadin.flow.component.Component... components)
Adds the components to the drawer slot of this AppLayout.- Parameters:
components- Components to add to the drawer slot.- Throws:
NullPointerException- if any of the components is null or if the components array is null.
-
addToNavbar
public void addToNavbar(com.vaadin.flow.component.Component... components)
Adds the components to the navbar slot of this AppLayout.- Parameters:
components- Components to add to the navbar slot.- Throws:
NullPointerException- if any of the components is null or if the components array is null.
-
addToNavbar
public void addToNavbar(boolean touchOptimized, com.vaadin.flow.component.Component... components)Adds the components to the navbar slot of this AppLayout.- Parameters:
touchOptimized- if true, the components will be moved to the bottom navbar area on mobile devices.components- Components to add to the navbar slot.- Throws:
NullPointerException- if any of the components is null or if the components array is null.
-
remove
public void remove(com.vaadin.flow.component.Component... components)
Removes the child components from the parent. Components can be in any slot or be the main content.- Parameters:
components- Components to remove.
-
showRouterLayoutContent
public void showRouterLayoutContent(com.vaadin.flow.component.HasElement content)
- Specified by:
showRouterLayoutContentin interfacecom.vaadin.flow.router.RouterLayout- Throws:
IllegalArgumentException- if content is not aComponent
-
afterNavigation
protected void afterNavigation()
Called after a navigation event. The default behaviour is to close the drawer on mobile devices after a navigation event.
-
-