Class Tabs

    • Constructor Detail

      • Tabs

        public Tabs()
        Constructs an empty new object with HORIZONTAL orientation.
      • Tabs

        public Tabs​(boolean autoselect,
                    Tab... tabs)
        Constructs a new object enclosing the given autoselect option and tabs, with HORIZONTAL orientation.
        Parameters:
        autoselect - true to automatically select the first added tab, false to leave tabs unselected
        tabs - the tabs to enclose
    • Method Detail

      • add

        public void add​(Component... components)
        Description copied from interface: HasComponents
        Adds 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:
        add in interface HasComponents
        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 index to 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:
        remove in interface HasComponents
        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 the Element API. it also removes the children that were added only at the client-side.

        This will reset the selected index to zero.

        Specified by:
        removeAll in interface HasComponents
      • 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 index to avoid changing the selected tab.

        Specified by:
        addComponentAtIndex in interface HasComponents
        Parameters:
        index - the index, where the component will be added. The index must be non-negative and may not exceed the children count
        component - 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:
        replace in interface HasOrderedComponents
        Parameters:
        oldComponent - the old component that will be replaced. Can be null, which will make the newComponent to be added to the layout without replacing any other
        newComponent - the new component to be replaced. Can be null, 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: Component
        Called when the component is attached to a UI.

        The default implementation does nothing.

        This method is invoked before the AttachEvent is fired for the component.

        Overrides:
        onAttach in class Component
        Parameters:
        attachEvent - the attach event
      • 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 null if none is selected
      • setSelectedTab

        public void setSelectedTab​(Tab selectedTab)
        Selects the given tab.
        Parameters:
        selectedTab - the tab to select, null to unselect all
        Throws:
        IllegalArgumentException - if selectedTab is 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 - if flexGrow is 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 - true to autoselect tab, false to not.
      • isAutoselect

        public boolean isAutoselect()
        Gets whether the tabs should be automatically selected. The default value is true.
        Returns:
        true if autoselect is active, false otherwise
        See Also:
        setAutoselect(boolean)