 
UI Components
LinkkiTabLayout
A component that allows switching between different contents, using either a horizontal or vertical tab bar. Only a single tab can be active at a time.
This is a replacement for the linkki Vaadin 8 SidebarSheet and TabSheetArea.
 
Create Tabs
Tabs are added to the layout using a LinkkiTabSheet. The tab sheet is created using a builder:
        LinkkiTabLayout linkkiTabLayout = new LinkkiTabLayout();
        linkkiTabLayout.addTabSheet(LinkkiTabSheet.builder("tabSheetId")
                .caption("Tab Sheet Caption")
                .content(this::createTabContent)
                .build());To create a LinkkiTabSheet as sidebar layout, use newSidebarLayout(), and icons as captions. A description can also be provided which is displayed by hovering the mouse over the icon.
        LinkkiTabLayout linkkiTabLayout = LinkkiTabLayout.newSidebarLayout();
        linkkiTabLayout.addTabSheet(LinkkiTabSheet.builder("sidebarSheetId")
                .caption(VaadinIcon.ABACUS.create())
                .description("Sidebar One")
                .content(this::createSidebarContent)
                .build());Toggle Visibility of Tabs
A tab can be dynamically set to visible or invisible by providing a BooleanSupplier in the builder of LinkkiTabSheet using the method visibleWhen(BooleanSupplier). The suppliers must return true to set the tab visible and false to set it invisible.
The method LinkkiTabLayout#updateSheetVisibility() must be triggered to update the visibility state. The method is automatically called by Vaadin’s AfterNavigationEvent, that means the visibility state is at least updated when there is a navigation to the view containing the tabs.
Selection Change Events
There are several possibilities to receive a selection change event in case a new tab is selected. All events are also triggered for the auto-selection when the first tab is added to the tab layout.
- Implement AfterTabSelectedObserver
- 
Components implementing this interface will receive a TabSheetSelectionChangeEventwhen theLinkkiTabSheetthey are attached to is selected. Additional details and limitations can be found in the javadoc ofAfterTabSelectedObserver.
- Adding a listener to LinkkiTabLayout
- 
Use the method addSelectedChangeListener(ComponentEventListener<SelectedChangeEvent>)to get aSelectedChangeEventcontaining the selected tab.
- Adding a listener to LinkkiTabSheet
- 
It is also possible to add a listener directly to the LinkkiTabSheetusingaddTabSelectionChangeListener(ComponentEventListener<TabSheetSelectionChangeEvent>). The returnedRegistrationcould be used to unregister the listener.
ComponentStyles
New utility class that offers several methods for styling UI components
- 
setOverflowAuto(Component): Sets the overflow of the givenComponentto "auto". This makes theComponentautomatically scroll if necessary.
- 
setFormItemLabelWidth(Component, String): Sets the width of all form item labels in the givenComponent.
