Class Tabs
- java.lang.Object
-
- com.vaadin.flow.component.Component
-
- com.vaadin.flow.component.tabs.GeneratedVaadinTabs<Tabs>
-
- com.vaadin.flow.component.tabs.Tabs
-
- All Implemented Interfaces:
AttachNotifier,DetachNotifier,HasComponents,HasElement,HasEnabled,HasOrderedComponents,HasSize,HasStyle,HasTheme,Serializable
public class Tabs extends GeneratedVaadinTabs<Tabs> implements HasOrderedComponents, HasSize
Tabs are used to organize and group content into sections that the user can navigate between. Use Tabs when you want to allow in-place navigation within a certain part of the UI, instead of showing everything at once or forcing the user to navigate between different views.Tabcomponents can be added to this component with theadd(Tab...)method or theTabs(Tab...)constructor. The Tab components added to it can be selected with thesetSelectedIndex(int)orsetSelectedTab(Tab)methods. The first addedTabcomponent will be automatically selected, firing aTabs.SelectedChangeEvent, unless autoselection is explicitly disabled withTabs(boolean, Tab...), orsetAutoselect(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.- Author:
- Vaadin Ltd.
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classTabs.OrientationThe valid orientations ofTabsinstances.static classTabs.SelectedChangeEventAn event to mark that the selected tab has changed.
-
Constructor Summary
Constructors Constructor Description Tabs()Constructs an empty new object withHORIZONTALorientation.Tabs(boolean autoselect, Tab... tabs)Constructs a new object enclosing the given autoselect option and tabs, withHORIZONTALorientation.Tabs(Tab... tabs)Constructs a new object enclosing the given tabs, withHORIZONTALorientation.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidadd(Component... components)Adds the given components as children of this component.voidadd(Tab... tabs)Adds the given tabs to the component.voidaddComponentAtIndex(int index, Component component)Adds the given component as child of this component at the specific index.RegistrationaddSelectedChangeListener(ComponentEventListener<Tabs.SelectedChangeEvent> listener)Adds a listener forTabs.SelectedChangeEvent.voidaddThemeVariants(TabsVariant... variants)Adds theme variants to the component.Tabs.OrientationgetOrientation()Gets the orientation of this tab sheet.intgetSelectedIndex()Gets the zero-based index of the currently selected tab.TabgetSelectedTab()Gets the currently selected tab.booleanisAutoselect()Gets whether the tabs should be automatically selected.protected voidonAttach(AttachEvent attachEvent)Called when the component is attached to a UI.voidremove(Component... components)Removes the given child components from this component.voidremoveAll()Removes all contents from this component, this includes child components, text content as well as child elements that have been added directly to this component using theElementAPI.voidremoveThemeVariants(TabsVariant... variants)Removes theme variants from the component.voidreplace(Component oldComponent, Component newComponent)Replaces the component in the container with another one without changing position.voidsetAutoselect(boolean autoselect)Specify that the tabs should be automatically selected.voidsetFlexGrowForEnclosedTabs(double flexGrow)Sets the flex grow property of all enclosed tabs.voidsetOrientation(Tabs.Orientation orientation)Sets the orientation of this tab sheet.voidsetSelectedIndex(int selectedIndex)Selects a tab based on its zero-based index.voidsetSelectedTab(Tab selectedTab)Selects the given tab.-
Methods inherited from class com.vaadin.flow.component.tabs.GeneratedVaadinTabs
focus
-
Methods inherited from class com.vaadin.flow.component.Component
addListener, findAncestor, fireEvent, from, get, getChildren, getElement, getEventBus, getId, getListeners, getLocale, getParent, getTranslation, getTranslation, getTranslation, 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
-
Methods inherited from interface com.vaadin.flow.component.AttachNotifier
addAttachListener
-
Methods inherited from interface com.vaadin.flow.component.DetachNotifier
addDetachListener
-
Methods inherited from interface com.vaadin.flow.component.HasComponents
add, add, addComponentAsFirst, remove
-
Methods inherited from interface com.vaadin.flow.component.HasElement
getElement
-
Methods inherited from interface com.vaadin.flow.component.HasEnabled
isEnabled, setEnabled
-
Methods inherited from interface com.vaadin.flow.component.HasOrderedComponents
getChildren, getComponentAt, getComponentCount, indexOf
-
Methods 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, setWidthFull
-
Methods inherited from interface com.vaadin.flow.component.HasStyle
addClassName, addClassNames, getClassName, getClassNames, getStyle, hasClassName, removeClassName, removeClassNames, setClassName, setClassName
-
Methods inherited from interface com.vaadin.flow.component.HasTheme
addThemeName, addThemeNames, getThemeName, getThemeNames, hasThemeName, removeThemeName, removeThemeNames, setThemeName, setThemeName
-
-
-
-
Constructor Detail
-
Tabs
public Tabs()
Constructs an empty new object withHORIZONTALorientation.
-
Tabs
public Tabs(Tab... tabs)
Constructs a new object enclosing the given tabs, withHORIZONTALorientation.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
-
Tabs
public Tabs(boolean autoselect, Tab... tabs)Constructs a new object enclosing the given autoselect option and tabs, withHORIZONTALorientation.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 Detail
-
add
public void add(Tab... tabs)
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
-
add
public void add(Component... components)
Description copied from interface:HasComponentsAdds the given components as children of this component.In case any of the specified components has already been added to another parent, it will be removed from there and added to this one.
- Specified by:
addin interfaceHasComponents- Parameters:
components- the components to add
-
remove
public void remove(Component... components)
Removes the given child components from this component.Removing components 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.- Specified by:
removein interfaceHasComponents- Parameters:
components- the components to remove
-
removeAll
public void removeAll()
Removes all contents from this component, this includes child components, text content as well as child elements that have been added directly to this component using theElementAPI. it also removes the children that were added only at the client-side.This will reset the
selected indexto zero.- Specified by:
removeAllin interfaceHasComponents
-
addComponentAtIndex
public void addComponentAtIndex(int index, Component component)Adds the given component as child of this component at the specific index.In case the specified component has already been added to another parent, it will be removed from there and added to this one.
Adding a component before the currently selected tab will increment the
selected indexto avoid changing the selected tab.- Specified by:
addComponentAtIndexin interfaceHasComponents- Parameters:
index- the index, where the component will be added. The index must be non-negative and may not exceed the children countcomponent- the component to add, value should not be null
-
replace
public void replace(Component oldComponent, Component newComponent)
Replaces the component in the container with another one without changing position. This method replaces component with another one is such way that the new component overtakes the position of the old component. If the old component is not in the container, the new component is added to the container. If the both component are already in the container, their positions are swapped. Component attach and detach events should be taken care as with add and remove.Replacing the currently selected tab will make the new tab selected.
- Specified by:
replacein interfaceHasOrderedComponents- Parameters:
oldComponent- the old component that will be replaced. Can benull, which will make the newComponent to be added to the layout without replacing any othernewComponent- the new component to be replaced. Can benull, which will make the oldComponent to be removed from the layout without adding any other
-
onAttach
protected void onAttach(AttachEvent attachEvent)
Description copied from class:ComponentCalled when the component is attached to a UI.The default implementation does nothing.
This method is invoked before the
AttachEventis fired for the component.
-
addSelectedChangeListener
public Registration addSelectedChangeListener(ComponentEventListener<Tabs.SelectedChangeEvent> listener)
Adds a listener forTabs.SelectedChangeEvent.- Parameters:
listener- the listener to add, notnull- Returns:
- a handle that can be used for removing the listener
-
getSelectedIndex
@Synchronize(property="selected", value="selected-changed") 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
public Tab getSelectedTab()
Gets the currently selected tab.- Returns:
- the selected tab, or
nullif none is selected
-
setSelectedTab
public void setSelectedTab(Tab selectedTab)
Selects the given tab.- Parameters:
selectedTab- the tab to select,nullto unselect all- Throws:
IllegalArgumentException- ifselectedTabis not a child of this component
-
getOrientation
public Tabs.Orientation getOrientation()
Gets the orientation of this tab sheet.- Returns:
- the orientation
-
setOrientation
public void setOrientation(Tabs.Orientation orientation)
Sets the orientation of this tab sheet.- Parameters:
orientation- the orientation
-
setFlexGrowForEnclosedTabs
public void setFlexGrowForEnclosedTabs(double flexGrow)
Sets the flex grow property of all enclosed tabs. The flex grow property specifies what amount of the available space inside the layout the component should take up, proportionally to the other components.For example, if all components have a flex grow property value set to 1, the remaining space in the layout will be distributed equally to all components inside the layout. If you set a flex grow property of one component to 2, that component will take twice the available space as the other components, and so on.
Setting to flex grow property value 0 disables the expansion of the component. Negative values are not allowed.
- Parameters:
flexGrow- the proportion of the available space the enclosed tabs should take up- Throws:
IllegalArgumentException- ifflexGrowis negative
-
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:
setAutoselect(boolean)
-
addThemeVariants
public void addThemeVariants(TabsVariant... variants)
Adds theme variants to the component.- Overrides:
addThemeVariantsin classGeneratedVaadinTabs<Tabs>- Parameters:
variants- theme variants to add
-
removeThemeVariants
public void removeThemeVariants(TabsVariant... variants)
Removes theme variants from the component.- Overrides:
removeThemeVariantsin classGeneratedVaadinTabs<Tabs>- Parameters:
variants- theme variants to remove
-
-