Class EnhancedTabs
- All Implemented Interfaces:
AttachNotifier,DetachNotifier,HasElement,HasEnabled,HasSize,HasStyle,Serializable
Tab components can be added to this component with the add(Tab...) method or the
Tabs(Tab...) constructor. The Tab components added to it can be selected with the
setSelectedIndex(int) or setSelectedTab(Tab) methods. The first added
Tab component will be automatically selected, firing a EnhancedTabs.SelectedChangeEvent,
unless autoselection is explicitly disabled with Tabs(boolean, Tab...), or
setAutoselect(boolean). Removing the selected tab from the component changes the
selection to the next available tab.
Note: Adding or removing Tab components via the Element API, eg.
tabs.getElement().insertChild(0, tab.getElement()); , doesn't update the selected index, so it
may cause the selected tab to change unexpectedly.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classAn event to mark that the selected tab has changed. -
Constructor Summary
ConstructorsConstructorDescriptionConstructs an empty new object.EnhancedTabs(boolean autoselect, Tab... tabs) Constructs a new object enclosing the given autoselect option and tabs,.EnhancedTabs(Tab... tabs) Constructs a new object enclosing the given tabs. -
Method Summary
Modifier and TypeMethodDescriptionvoidAdds the given tabs to the component.addRouterLink(String text, Class<? extends Component> target) Adds a listener forEnhancedTabs.SelectedChangeEvent.intGets the number of children tabs.intGets the zero-based index of the currently selected tab.Gets the currently selected tab.getTabAt(int index) Returns the tab at the given position.intgetTabs()intReturns the index of the given tab.booleanGets whether the tabs should be automatically selected.booleanGets whether the submenu opens by clicking or hovering on the overflow buttons.protected voidonAttach(AttachEvent event) voidRemoves the given child tabs from this component.voidRemoves all tabs from this component.voidReplaces the tab in the container with another one without changing position.voidsetAutoselect(boolean autoselect) Specify that the tabs should be automatically selected.voidsetOpenOnHover(boolean openOnHover) Sets whether the submenu opens by clicking or hovering on the overflow buttons.voidsetSelectedIndex(int selectedIndex) Selects a tab based on its zero-based index.voidsetSelectedTab(Tab selectedTab) Selects the given tab.voidsetSelectedTab(Tab selectedTab, boolean changedFromClient) Methods inherited from class com.vaadin.flow.component.Composite
getChildren, getContent, getElement, initContentMethods inherited from class com.vaadin.flow.component.Component
addListener, fireEvent, from, get, getEventBus, getId, getLocale, getParent, getTranslation, getTranslation, getTranslation, getTranslation, getUI, hasListener, isAttached, isTemplateMapped, isVisible, onDetach, onEnabledStateChanged, set, setElement, setId, setVisibleMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface com.vaadin.flow.component.AttachNotifier
addAttachListenerMethods inherited from interface com.vaadin.flow.component.DetachNotifier
addDetachListenerMethods inherited from interface com.vaadin.flow.component.HasElement
getElementMethods inherited from interface com.vaadin.flow.component.HasEnabled
isEnabled, setEnabledMethods inherited from interface com.vaadin.flow.component.HasSize
getHeight, getHeightUnit, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getWidth, getWidthUnit, setHeight, setHeight, setHeightFull, setMaxHeight, setMaxHeight, setMaxWidth, setMaxWidth, setMinHeight, setMinHeight, setMinWidth, setMinWidth, setSizeFull, setSizeUndefined, setWidth, setWidth, setWidthFullMethods inherited from interface com.vaadin.flow.component.HasStyle
addClassName, addClassNames, getClassName, getClassNames, getStyle, hasClassName, removeClassName, removeClassNames, setClassName, setClassName
-
Constructor Details
-
EnhancedTabs
public EnhancedTabs()Constructs an empty new object. -
EnhancedTabs
Constructs a new object enclosing the given tabs.The first added
Tabcomponent will be automatically selected. Any selection change listener added afterwards will not be notified about the auto-selected tab.- Parameters:
tabs- the tabs to enclose
-
EnhancedTabs
Constructs a new object enclosing the given autoselect option and tabs,.Unless auto-select is disabled, the first added
Tabcomponent will be automatically selected. Any selection change listener added afterwards will not be notified about the auto-selected tab.- Parameters:
autoselect-trueto automatically select the first added tab,falseto leave tabs unselectedtabs- the tabs to enclose
-
-
Method Details
-
onAttach
-
setOpenOnHover
public void setOpenOnHover(boolean openOnHover) Sets whether the submenu opens by clicking or hovering on the overflow buttons. Defaults totrue.- Parameters:
openOnHover-trueto make the sub menus open on hover (mouseover),falseto make them openable by clicking
-
isOpenOnHover
public boolean isOpenOnHover()Gets whether the submenu opens by clicking or hovering on the overflow buttons.- Returns:
trueif the sub menus open by hovering on the root level buttons,falseif they open by clicking
-
add
Adds the given tabs to the component.The first added
Tabcomponent will be automatically selected, unless auto-selection is explicitly disabled withTabs(boolean, Tab...), orsetAutoselect(boolean). If a selection change listener has been added before adding the tabs, it will be notified with the auto-selected tab.- Parameters:
tabs- the tabs to enclose
-
addRouterLink
-
remove
Removes the given child tabs from this component.- Parameters:
tabs- the tabs to remove- Throws:
IllegalArgumentException- if there is a tab whose nonnullparent is not this componentRemoving tabs before the selected tab will decrease the
selected indexto avoid changing the selected tab. Removing the selected tab will select the next available tab if autoselect is true, otherwise no tab will be selected.
-
removeAll
public void removeAll()Removes all tabs from this component. It also removes the children that were added only at the client-side.This will reset the
selected indexto zero. -
replace
Replaces the tab in the container with another one without changing position. This method replaces tab with another one is such way that the new tab overtakes the position of the old tab. If the old tab is not in the container, the new tab is added to the container. If the both tabs are already in the container, their positions are swapped. Tab attach and detach events should be taken care as with add and remove.- Parameters:
oldTab- the old tab that will be replaced. Can benull, which will make the newTab to be added to the layout without replacing any othernewTab- the new tab to be replaced. Can benull, which will make the oldTab to be removed from the layout without adding any otherReplacing the currently selected tab will make the new tab selected.
-
addSelectedChangeListener
public Registration addSelectedChangeListener(ComponentEventListener<EnhancedTabs.SelectedChangeEvent> listener) Adds a listener forEnhancedTabs.SelectedChangeEvent.- Parameters:
listener- the listener to add, notnull- Returns:
- a handle that can be used for removing the listener
-
getSelectedIndex
public int getSelectedIndex()Gets the zero-based index of the currently selected tab.- Returns:
- the zero-based index of the selected tab, or -1 if none of the tabs is selected
-
setSelectedIndex
public void setSelectedIndex(int selectedIndex) Selects a tab based on its zero-based index.- Parameters:
selectedIndex- the zero-based index of the selected tab, -1 to unselect all
-
getSelectedTab
Gets the currently selected tab.- Returns:
- the selected tab, or
nullif none is selected
-
setSelectedTab
Selects the given tab.- Parameters:
selectedTab- the tab to select,nullto unselect all- Throws:
IllegalArgumentException- ifselectedTabis not a child of this component
-
setSelectedTab
-
setAutoselect
public void setAutoselect(boolean autoselect) Specify that the tabs should be automatically selected. When autoselect is false, no tab will be selected when the component load and it will not select any others tab when removing currently selected tab. The default value is true.- Parameters:
autoselect-trueto autoselect tab,falseto not.
-
isAutoselect
public boolean isAutoselect()Gets whether the tabs should be automatically selected. The default value is true.- Returns:
trueif autoselect is active,falseotherwise- See Also:
-
indexOf
Returns the index of the given tab.- Parameters:
tab- the tab to look up, can not benull- Returns:
- the index of the tab or -1 if the tab is not a child
-
getComponentCount
public int getComponentCount()Gets the number of children tabs.- Returns:
- the number of tabs
-
getTabAt
Returns the tab at the given position.- Parameters:
index- the position of the tab, must be greater than or equals to 0 and less than the number of children tabs- Returns:
- The tab at the given index
- Throws:
IllegalArgumentException- if the index is less than 0 or greater than or equals to the number of children tabs
-
getTabCount
public int getTabCount() -
getTabs
-