Class TabPanel

All Implemented Interfaces:
HasAttachHandlers, HasBeforeSelectionHandlers<Integer>, HasSelectionHandlers<Integer>, HasHandlers, EventListener, HasAnimation, HasVisibility, HasWidgets, IndexedPanel, IndexedPanel.ForIsWidget, IsRenderable, IsWidget, SourcesTabEvents, TabListener, Iterable<Widget>, EventListener
Direct Known Subclasses:
DecoratedTabPanel

A panel that represents a tabbed set of pages, each of which contains another widget. Its child widgets are shown as the user selects the various tabs associated with them. The tabs can contain arbitrary HTML.

This widget will only work in quirks mode. If your application is in Standards Mode, use TabLayoutPanel instead.

Note that this widget is not a panel per se, but rather a Composite that aggregates a TabBar and a DeckPanel. It does, however, implement HasWidgets.

CSS Style Rules

  • .gwt-TabPanel { the tab panel itself }
  • .gwt-TabPanelBottom { the bottom section of the tab panel (the deck containing the widget) }

Example

public class TabPanelExample implements EntryPoint {

  public void onModuleLoad() {
    // Create a tab panel with three tabs, each of which displays a different
    // piece of text.
    TabPanel tp = new TabPanel();
    tp.add(new HTML("Foo"), "foo");
    tp.add(new HTML("Bar"), "bar");
    tp.add(new HTML("Baz"), "baz");

    // Show the 'bar' tab initially.
    tp.selectTab(1);

    // Add it to the root panel.
    RootPanel.get().add(tp);
  }
}

See Also:
  • Constructor Details

    • TabPanel

      public TabPanel()
      Creates an empty tab panel.
  • Method Details

    • add

      public void add(IsWidget w, IsWidget tabWidget)
      Convenience overload to allow IsWidget to be used directly.
    • add

      public void add(IsWidget w, String tabText)
      Convenience overload to allow IsWidget to be used directly.
    • add

      public void add(IsWidget w, String tabText, boolean asHTML)
      Convenience overload to allow IsWidget to be used directly.
    • add

      public void add(Widget w)
      Description copied from interface: HasWidgets
      Adds a child widget.
      Specified by:
      add in interface HasWidgets
      Parameters:
      w - the widget to be added
    • add

      public void add(Widget w, String tabText)
      Adds a widget to the tab panel. If the Widget is already attached to the TabPanel, it will be moved to the right-most index.
      Parameters:
      w - the widget to be added
      tabText - the text to be shown on its tab
    • add

      public void add(Widget w, String tabText, boolean asHTML)
      Adds a widget to the tab panel. If the Widget is already attached to the TabPanel, it will be moved to the right-most index.
      Parameters:
      w - the widget to be added
      tabText - the text to be shown on its tab
      asHTML - true to treat the specified text as HTML
    • add

      public void add(Widget w, Widget tabWidget)
      Adds a widget to the tab panel. If the Widget is already attached to the TabPanel, it will be moved to the right-most index.
      Parameters:
      w - the widget to be added
      tabWidget - the widget to be shown in the tab
    • addBeforeSelectionHandler

      public HandlerRegistration addBeforeSelectionHandler(BeforeSelectionHandler<Integer> handler)
      Description copied from interface: HasBeforeSelectionHandlers
      Adds a BeforeSelectionEvent handler.
      Specified by:
      addBeforeSelectionHandler in interface HasBeforeSelectionHandlers<Integer>
      Parameters:
      handler - the handler
      Returns:
      the registration for the event
    • addSelectionHandler

      public HandlerRegistration addSelectionHandler(SelectionHandler<Integer> handler)
      Description copied from interface: HasSelectionHandlers
      Adds a SelectionEvent handler.
      Specified by:
      addSelectionHandler in interface HasSelectionHandlers<Integer>
      Parameters:
      handler - the handler
      Returns:
      the registration for the event
    • addTabListener

      @Deprecated public void addTabListener(TabListener listener)
      Description copied from interface: SourcesTabEvents
      Adds a listener interface to receive click events.
      Specified by:
      addTabListener in interface SourcesTabEvents
      Parameters:
      listener - the listener interface to add
    • clear

      public void clear()
      Description copied from interface: HasWidgets
      Removes all child widgets.
      Specified by:
      clear in interface HasWidgets
    • getDeckPanel

      public DeckPanel getDeckPanel()
      Gets the deck panel within this tab panel. Adding or removing Widgets from the DeckPanel is not supported and will throw UnsupportedOperationExceptions.
      Returns:
      the deck panel
    • getTabBar

      public TabBar getTabBar()
      Gets the tab bar within this tab panel. Adding or removing tabs from the TabBar is not supported and will throw UnsupportedOperationExceptions.
      Returns:
      the tab bar
    • getWidget

      public Widget getWidget(int index)
      Description copied from interface: IndexedPanel
      Gets the child widget at the specified index.
      Specified by:
      getWidget in interface IndexedPanel
      Parameters:
      index - the child widget's index
      Returns:
      the child widget
    • getWidgetCount

      public int getWidgetCount()
      Description copied from interface: IndexedPanel
      Gets the number of child widgets in this panel.
      Specified by:
      getWidgetCount in interface IndexedPanel
      Returns:
      the number of children
    • getWidgetIndex

      public int getWidgetIndex(IsWidget child)
      Convenience overload to allow IsWidget to be used directly.
      Specified by:
      getWidgetIndex in interface IndexedPanel.ForIsWidget
    • getWidgetIndex

      public int getWidgetIndex(Widget widget)
      Description copied from interface: IndexedPanel
      Gets the index of the specified child widget.
      Specified by:
      getWidgetIndex in interface IndexedPanel
      Parameters:
      widget - the widget to be found
      Returns:
      the widget's index, or -1 if it is not a child of this panel
    • insert

      public void insert(IsWidget widget, IsWidget tabWidget, int beforeIndex)
      Convenience overload to allow IsWidget to be used directly.
    • insert

      public void insert(IsWidget widget, String tabText, boolean asHTML, int beforeIndex)
      Convenience overload to allow IsWidget to be used directly.
    • insert

      public void insert(IsWidget widget, String tabText, int beforeIndex)
      Convenience overload to allow IsWidget to be used directly.
    • insert

      public void insert(Widget widget, String tabText, boolean asHTML, int beforeIndex)
      Inserts a widget into the tab panel. If the Widget is already attached to the TabPanel, it will be moved to the requested index.
      Parameters:
      widget - the widget to be inserted
      tabText - the text to be shown on its tab
      asHTML - true to treat the specified text as HTML
      beforeIndex - the index before which it will be inserted
    • insert

      public void insert(Widget widget, String tabText, int beforeIndex)
      Inserts a widget into the tab panel. If the Widget is already attached to the TabPanel, it will be moved to the requested index.
      Parameters:
      widget - the widget to be inserted
      tabText - the text to be shown on its tab
      beforeIndex - the index before which it will be inserted
    • insert

      public void insert(Widget widget, Widget tabWidget, int beforeIndex)
      Inserts a widget into the tab panel. If the Widget is already attached to the TabPanel, it will be moved to the requested index.
      Parameters:
      widget - the widget to be inserted.
      tabWidget - the widget to be shown on its tab.
      beforeIndex - the index before which it will be inserted.
    • isAnimationEnabled

      public boolean isAnimationEnabled()
      Description copied from interface: HasAnimation
      Returns true if animations are enabled, false if not.
      Specified by:
      isAnimationEnabled in interface HasAnimation
    • iterator

      public Iterator<Widget> iterator()
      Description copied from interface: HasWidgets
      Gets an iterator for the contained widgets. This iterator is required to implement Iterator.remove().
      Specified by:
      iterator in interface HasWidgets
      Specified by:
      iterator in interface Iterable<Widget>
    • onBeforeTabSelected

      @Deprecated public boolean onBeforeTabSelected(SourcesTabEvents sender, int tabIndex)
      Description copied from interface: TabListener
      Fired just before a tab is selected.
      Specified by:
      onBeforeTabSelected in interface TabListener
      Parameters:
      sender - the TabBar or TabPanel whose tab was selected.
      tabIndex - the index of the tab about to be selected
      Returns:
      false to disallow the selection. If any listener returns false, then the selection will be disallowed.
    • onTabSelected

      @Deprecated public void onTabSelected(SourcesTabEvents sender, int tabIndex)
      Description copied from interface: TabListener
      Fired when a tab is selected.
      Specified by:
      onTabSelected in interface TabListener
      Parameters:
      sender - the TabBar or TabPanel whose tab was selected
      tabIndex - the index of the tab that was selected
    • remove

      public boolean remove(int index)
      Description copied from interface: IndexedPanel
      Removes the widget at the specified index.
      Specified by:
      remove in interface IndexedPanel
      Parameters:
      index - the index of the widget to be removed
      Returns:
      false if the widget is not present
    • remove

      public boolean remove(Widget widget)
      Removes the given widget, and its associated tab.
      Specified by:
      remove in interface HasWidgets
      Parameters:
      widget - the widget to be removed
      Returns:
      true if the widget was present
    • removeTabListener

      @Deprecated public void removeTabListener(TabListener listener)
      Deprecated.
      Use the HandlerRegistration.removeHandler() method on the object returned by and add*Handler method instead
      Description copied from interface: SourcesTabEvents
      Removes a previously added listener interface.
      Specified by:
      removeTabListener in interface SourcesTabEvents
      Parameters:
      listener - the listener interface to remove
    • selectTab

      public void selectTab(int index)
      Programmatically selects the specified tab and fires events.
      Parameters:
      index - the index of the tab to be selected
    • selectTab

      public void selectTab(int index, boolean fireEvents)
      Programmatically selects the specified tab.
      Parameters:
      index - the index of the tab to be selected
      fireEvents - true to fire events, false not to
    • setAnimationEnabled

      public void setAnimationEnabled(boolean enable)
      Description copied from interface: HasAnimation
      Enable or disable animations.
      Specified by:
      setAnimationEnabled in interface HasAnimation
      Parameters:
      enable - true to enable, false to disable
    • createTabTextWrapper

      protected SimplePanel createTabTextWrapper()
      Create a SimplePanel that will wrap the contents in a tab. Subclasses can use this method to wrap tabs in decorator panels.
      Returns:
      a SimplePanel to wrap the tab contents, or null to leave tabs unwrapped
    • onEnsureDebugId

      protected void onEnsureDebugId(String baseID)
      Affected Elements:
      • -bar = The tab bar.
      • -bar-tab# = The element containing the content of the tab itself.
      • -bar-tab-wrapper# = The cell containing the tab at the index.
      • -bottom = The panel beneath the tab bar.
      Overrides:
      onEnsureDebugId in class UIObject
      Parameters:
      baseID - the base ID used by the main element
      See Also: