com.smartgwt.client.widgets.tab

## Class TabSet

- java.lang.Object
- - com.google.gwt.user.client.ui.UIObject
  - - com.google.gwt.user.client.ui.Widget
    - - com.smartgwt.client.widgets.BaseWidget
      - - com.smartgwt.client.widgets.Canvas
        - - com.smartgwt.client.widgets.tab.TabSet

- All Implemented Interfaces:
    com.google.gwt.event.logical.shared.HasAttachHandlers, com.google.gwt.event.shared.HasHandlers, com.google.gwt.user.client.EventListener, com.google.gwt.user.client.ui.HasVisibility, com.google.gwt.user.client.ui.IsWidget, LogicalStructure, HasClickHandlers, HasDoubleClickHandlers, HasDragMoveHandlers, HasDragRepositionMoveHandlers, HasDragRepositionStartHandlers, HasDragRepositionStopHandlers, HasDragResizeMoveHandlers, HasDragResizeStartHandlers, HasDragResizeStopHandlers, HasDragStartHandlers, HasDragStopHandlers, HasDropHandlers, HasDropMoveHandlers, HasDropOutHandlers, HasDropOverHandlers, HasFocusChangedHandlers, HasHoverHandlers, HasHoverHiddenHandlers, HasKeyDownHandlers, HasKeyPressHandlers, HasMouseDownHandlers, HasMouseMoveHandlers, HasMouseOutHandlers, HasMouseOverHandlers, HasMouseStillDownHandlers, HasMouseUpHandlers, HasMouseWheelHandlers, HasMovedHandlers, HasParentMovedHandlers, HasResizedHandlers, HasRightMouseDownHandlers, HasScrolledHandlers, HasShowContextMenuHandlers, HasVisibilityChangedHandlers, HasCloseClickHandlers, HasTabContextMenuHandlers, HasTabDeselectedHandlers, HasTabIconClickHandlers, HasTabSelectedHandlers, HasTabsReorderedHandlers, HasTabTitleChangedHandlers

      public class TabSet
      extends Canvas
      implements HasCloseClickHandlers, HasTabContextMenuHandlers, HasTabDeselectedHandlers, HasTabIconClickHandlers, HasTabSelectedHandlers, HasTabsReorderedHandlers, HasTabTitleChangedHandlers

  The TabSet class allows components on several panes to share the same space. The tabs at the top can be selected by the user to show each pane.

  Tabs are configured via the `tabs` property, each of which has a `pane` property which will be displayed in the main pane when that tab is selected.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class com.google.gwt.user.client.ui.UIObject

      `com.google.gwt.user.client.ui.UIObject.DebugIdImpl, com.google.gwt.user.client.ui.UIObject.DebugIdImplEnabled`

  - ### Field Summary

    - ### Fields inherited from class com.smartgwt.client.widgets.BaseWidget

      `config, configOnly, id, isElementSet, nativeObject, scClassName`

    - ### Fields inherited from class com.google.gwt.user.client.ui.UIObject

      `DEBUG_ID_PREFIX`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `TabSet()`
    `TabSet(com.google.gwt.core.client.JavaScriptObject jsObj)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `com.google.gwt.event.shared.HandlerRegistration` | `addCloseClickHandler(CloseClickHandler handler)` Add a closeClick handler.
    `void` | `addTab(Tab tab)` Add a tab
    `void` | `addTab(Tab tab, int position)` Add a tab
    `com.google.gwt.event.shared.HandlerRegistration` | `addTabContextMenuHandler(TabContextMenuHandler handler)` Add a tabContextMenu handler.
    `com.google.gwt.event.shared.HandlerRegistration` | `addTabDeselectedHandler(TabDeselectedHandler handler)` Add a tabDeselected handler.
    `com.google.gwt.event.shared.HandlerRegistration` | `addTabIconClickHandler(TabIconClickHandler handler)` Add a tabIconClick handler.
    `com.google.gwt.event.shared.HandlerRegistration` | `addTabSelectedHandler(TabSelectedHandler handler)` Add a tabSelected handler.
    `com.google.gwt.event.shared.HandlerRegistration` | `addTabsReorderedHandler(TabsReorderedHandler handler)` Add a tabsReordered handler.
    `com.google.gwt.event.shared.HandlerRegistration` | `addTabTitleChangedHandler(TabTitleChangedHandler handler)` Add a tabTitleChanged handler.
    `void` | `cancelTabTitleEditing()` If the user is currently editing a tab title (see `canEditTabTitles`), dismiss the editor and discard the edit value entered by the user.
    `static void` | `changeAutoChildDefaults(java.lang.String autoChildName, Canvas defaults)` Changes the defaults for Canvas AutoChildren named `autoChildName`.
    `static void` | `changeAutoChildDefaults(java.lang.String autoChildName, FormItem defaults)` Changes the defaults for FormItem AutoChildren named `autoChildName`.
    `protected com.google.gwt.core.client.JavaScriptObject` | `create()`
    `void` | `disableTab(int tabIndex)` If the specified tab is enabled, disable it now.
    `void` | `disableTab(java.lang.String ID)` If the specified tab is enabled, disable it now.
    `void` | `disableTab(Tab tab)` If the specified tab is enabled, disable it now.
    `void` | `editTabTitle(int tab)` Places an editor in the title of the parameter tab and allows the user to edit the title.
    `void` | `editTabTitle(java.lang.String tab)` Places an editor in the title of the parameter tab and allows the user to edit the title.
    `void` | `enableTab(int tabIndex)` If the specified tab is disabled, enable it now.
    `void` | `enableTab(java.lang.String ID)` If the specified tab is disabled, enable it now.
    `void` | `enableTab(Tab tab)` If the specified tab is disabled, enable it now.
    `java.lang.Boolean` | `getAnimateTabScrolling()` If `showTabScroller` is true, should tabs be scrolled into view via an animation when the user interacts with the scroller buttons?
    `java.lang.Boolean` | `getCanCloseTabs()` Should tabs in this tabSet show an icon allowing the user to dismiss the tab by clicking on it directly.
    `java.lang.Boolean` | `getCanEditTabTitles()` If true, users can edit the titles of tabs in this TabSet when the `titleEditEvent` fires.
    `java.lang.Boolean` | `getCanReorderTabs()` If true, tabs can be reordered by dragging on them.
    `java.lang.String` | `getCloseTabIcon()` Default src for the close icon for tabs to display if `canCloseTabs` is true.
    `int` | `getCloseTabIconSize()` Size in pixels of the icon for closing tabs, displayed when `canCloseTabs` is true.
    `java.lang.Integer` | `getDefaultTabHeight()` If set, is passed as "height" to all tabs when `tabBarPosition` is set to `"left"` or `"right"`.
    `java.lang.Integer` | `getDefaultTabWidth()` If set, is passed as "width" to all tabs when `tabBarPosition` is set to `"top"` or `"bottom"`.
    `java.lang.Boolean` | `getDestroyPanes()` Whether `destroy()` should be called on `pane` when it a tab is removed via `TabSet.removeTab`}.
    `java.lang.String` | `getLocateTabsBy()` When AutoTest.getElement is used to parse locator strings generated by link{isc.AutoTest.getLocator()}, how should tabs within this tabset be identified? By default if tab has a specified `ID` this will always be used.
    `com.smartgwt.logicalstructure.core.LogicalStructureObject` | `getLogicalStructure()`
    `Tab` | `getMoreTab()` `Tab` to be shown when `showMoreTab` is enabled more than `moreTabCount` tabs are provided.
    `int` | `getMoreTabCount()` This property defines the number tab buttons that should be shown before automatically adding a "more" button to handle the remaining tabs.
    `java.lang.String` | `getMoreTabImage()` If `showMoreTab` is enabled this property determines the image to display on the "More" tab button.
    `VLayout` | `getMoreTabPane()` Pane contents for the "more" tab based on a VLayout.
    `Canvas` | `getMoreTabPaneDefaults()` Default properties for the "more" tab's pane.
    `Canvas` | `getMoreTabPaneProperties()` Properties to apply to the "more" tab's pane created by this TabSet.
    `Tab` | `getMoreTabProperties()` Properties to apply to the "more" tab created by this TabSet.
    `java.lang.String` | `getMoreTabTitle()` Title for the "More" tab.
    `int` | `getNumTabs()` The number of tabs
    `static TabSet` | `getOrCreateRef(com.google.gwt.core.client.JavaScriptObject jsObj)`
    `VLayout` | `getPaneContainer()` Container where the component specified by `pane` is shown.
    `java.lang.String` | `getPaneContainerClassName()` CSS style used for the paneContainer.
    `Overflow` | `getPaneContainerOverflow()` Specifies the overflow of the pane container (the component that holds the pane contents for all tabs).
    `int` | `getPaneMargin()` Space to leave around the panes in our paneContainer
    `java.lang.String` | `getPickerButtonHSrc()` If `showTabPicker` is true, and `symmetricPickerButton` is set to true, this property governs the base URL for the picker button image, when displayed in a horizontal tab-bar [IE `tabBarPosition` is set to `"top"` or `"bottom"`].
    `int` | `getPickerButtonSize()` If `showTabPicker` is true, this property governs the size of tab-picker button.
    `java.lang.String` | `getPickerButtonSrc()` If `showTabPicker` is true, this property governs the base URL for the picker button image, when `symmetricPickerButton` is set to false
    `java.lang.String` | `getPickerButtonVSrc()` If `showTabPicker` is true, and `symmetricPickerButton` is set to true, this property governs the base URL for the picker button image, when displayed in a verricaL tab-bar [IE `tabBarPosition` is set to `"LEFT"` or `"right"`].
    `StretchImgButton` | `getScroller()` A component containing back and forward buttons for scrolling through all of the tabs of the TabSet.
    `int` | `getScrollerButtonSize()` If `showTabScroller` is true, this property governs the size of scroller buttons.
    `java.lang.String` | `getScrollerHSrc()` If this TabSet is showing `tab scroller buttons`, and `symmetricScroller` is true, this property governs the base URL for the tab bar back and forward scroller button images for horizontal tab bars [IE for tab sets with `tabBarPosition` set to "top" or "bottom"].
    `java.lang.String` | `getScrollerSrc()` If this TabSet is showing `tab scroller buttons`, and `symmetricScroller` is false, this property governs the base URL for the tab bar back and forward scroller button images.
    `java.lang.String` | `getScrollerVSrc()` If this TabSet is showing `tab scroller buttons`, and `symmetricScroller` is true, this property governs the base URL for the tab bar back and forward scroller button images for vertical tab bars [IE for tab sets with `tabBarPosition` set to "left" or "right"].
    `Tab` | `getSelectedTab()` The currently selected tab.
    `int` | `getSelectedTabNumber()` Returns the index of the currently selected tab object.
    `java.lang.Boolean` | `getShowMoreTab()` Should tabs exceeding `moreTabCount` be shown on a "more" tab?
    `java.lang.Boolean` | `getShowPaneContainerEdges()` Should the paneContainer for this tabset show `edges`.
    `java.lang.Boolean` | `getShowPartialEdges()` If the paneContainer for this tab set is showing `edges`, setting this attribute to `true` will set the paneContainer to show `customEdges` for the three sides opposing the tabBarPosition.
    `java.lang.Boolean` | `getShowTabPicker()` If there is not enough space to display all the tab-buttons in this tabSet, should a drop-down "picker" be displayed to allow selection of tabs that are clipped?
    `java.lang.Boolean` | `getShowTabScroller()` If there is not enough space to display all the tab-buttons in this tabSet, should scroller buttons be displayed to allow access to tabs that are clipped?
    `java.lang.String` | `getSimpleTabBaseStyle()` If this.useSimpleTabs is true, simpleTabBaseClass will be the base style used to determine the css style to apply to the tabs. This property will be suffixed with the side on which the tab-bar will appear, followed by with the tab's state (selected, over, etc), resolving to a className like "tabButtonTopOver"
    `java.lang.String` | `getSkinImgDir()` Default directory for skin images (those defined by the class), relative to the Page-wide `skinDir`.
    `java.lang.Boolean` | `getSymmetricEdges()` If this tabSet will `show edges` for the paneContainer, this property determines whether the same edge media will be used regardless of the tab bar position, or whether different media should be used (necessary if the edge appearance is not symmetrical on all sides).
    `java.lang.Boolean` | `getSymmetricPickerButton()` If this TabSet is showing a `tab picker button`, this property determines whether the `pickerButtonHSrc` and `pickerButtonVSrc` media will be used for vertical and horizontal tab-bar picker buttons, or whether separate media should be used for each possible `tabBarPosition` based on the `pickerButtonSrc` property for this tabSet.
    `java.lang.Boolean` | `getSymmetricScroller()` If this TabSet is showing `tab scroller buttons`, this property determines whether the `scrollerHSrc` and `scrollerVSrc` media will be used for vertical and horizontal tab-bar scroller buttons, or whether separate media should be used for each possible `tabBarPosition` based on the `scrollerSrc` property for this tabSet.
    `Tab` | `getTab(int tabIndex)` Retrieves a Tab definition from within this tabSet by index.
    `Tab` | `getTab(java.lang.String ID)` Retrieves a Tab definition from within this tabSet by ID.
    `TabBar` | `getTabBar()` TabBar for this TabSet, an instance of `TabBar`.
    `Side` | `getTabBarAlign()` Alignment of the tabBar.
    `Layout` | `getTabBarControlLayout()` AutoChild of type `Layout` that holds the `tabBarControls` as well as the built-in controls such as the `tab picker menu`.
    `Side` | `getTabBarPosition()` Which side of the TabSet the TabBar should appear on.
    `int` | `getTabBarThickness()` Thickness of tabBar, applies to either orientation (specifies height for horizontal, width for vertical orientation).
    `StatefulCanvas` | `getTabCanvas(int tabIndex)` Get the live Canvas representing a tab by index.
    `StatefulCanvas` | `getTabCanvas(java.lang.String ID)` Get the live Canvas representing a tab by index.
    `int` | `getTabNumber(java.lang.String ID)` Get the index of a tab from the tabID.
    `ImgButton` | `getTabPicker()` A button control that allows tabs to be picked directly from a popup menu.
    `Tab[]` | `getTabs()` The tabs
    `TabTitleEditEvent` | `getTitleEditEvent()` The event that triggers title editing on this TabSet.
    `TextItem` | `getTitleEditor()` TextItem we use to edit tab titles in this TabSet.
    `java.lang.Integer` | `getTitleEditorLeftOffset()` If set, offsets the tab title editor further in from the left-hand edge of the tab, by the number of pixels set in this property.
    `TextItem` | `getTitleEditorProperties()` Properties for the auto-generated `titleEditor`.
    `java.lang.Integer` | `getTitleEditorRightOffset()` If set, offsets the tab title editor further in from the right-hand edge of the tab, by the number of pixels set in this property.
    `java.lang.Integer` | `getTitleEditorTopOffset()` If set, offsets the tab title editor further down from the top edge of the tab, by the number of pixels set in this property.
    `java.lang.Boolean` | `getUseIOSTabs()` Setting this to true turns on a different appearance for tabs, similar to iOS tabs from the "Music" app, where the tab.icon is enlarged and shown as a black and white mask.
    `java.lang.Boolean` | `getUseSimpleTabs()` Should we use simple button based tabs styled with CSS rather than image based `ImgTab` tabs?
    `static void` | `preloadImages()` Preload primary tab skin images.
    `void` | `removeTab(int tabIndex)` Remove a tab.
    `void` | `removeTab(java.lang.String ID)` Remove a tab.
    `void` | `removeTab(Tab tab)` Remove a tab.
    `void` | `removeTabs(int[] tabIndexes)` Remove one or more tabs.
    `void` | `removeTabs(java.lang.String[] ids)` Remove one or more tabs.
    `void` | `reorderTab(Tab tab)` Move a tab to another location in the tabset.
    `void` | `reorderTab(Tab tab, int moveToPosition)` Move a tab to another location in the tabset.
    `void` | `saveTabTitle()` If the user is currently editing a tab title (see `canEditTabTitles`), save the edited tab title and hide the editor.
    `void` | `scrollBack()` If there is not enough space to display all the tabs in this tabSet, this method will scroll the previous tab (that first tab that is clipped at the beginning of the tab-bar) into view.
    `void` | `scrollForward()` If there is not enough space to display all the tabs in this tabSet, this method will scroll the next tab (that first tab that is clipped at the end of the tab-bar) into view.
    `void` | `selectTab(int tabIndex)` Select a tab.
    `void` | `selectTab(java.lang.String ID)` Select a tab.
    `void` | `selectTab(Tab tab)` Select a tab.
    `void` | `setAnimateTabScrolling(java.lang.Boolean animateTabScrolling)` If `showTabScroller` is true, should tabs be scrolled into view via an animation when the user interacts with the scroller buttons?
    `void` | `setCanCloseTab(Tab tab, boolean canClose)` Sets the given tab's `canClose` property to the boolean parameter canClose.
    `void` | `setCanCloseTabs(java.lang.Boolean canCloseTabs)` Should tabs in this tabSet show an icon allowing the user to dismiss the tab by clicking on it directly.
    `void` | `setCanEditTabTitles(java.lang.Boolean canEditTabTitles)` If true, users can edit the titles of tabs in this TabSet when the `titleEditEvent` fires.
    `void` | `setCanReorderTabs(java.lang.Boolean canReorderTabs)` If true, tabs can be reordered by dragging on them.
    `void` | `setCloseTabIcon(java.lang.String closeTabIcon)` Default src for the close icon for tabs to display if `canCloseTabs` is true.
    `void` | `setCloseTabIconSize(int closeTabIconSize)` Size in pixels of the icon for closing tabs, displayed when `canCloseTabs` is true.
    `static void` | `setDefaultProperties(TabSet tabSetProperties)` Class level method to set the default properties of this class.
    `void` | `setDefaultTabHeight(java.lang.Integer defaultTabHeight)` If set, is passed as "height" to all tabs when `tabBarPosition` is set to `"left"` or `"right"`.
    `void` | `setDefaultTabWidth(java.lang.Integer defaultTabWidth)` If set, is passed as "width" to all tabs when `tabBarPosition` is set to `"top"` or `"bottom"`.
    `void` | `setDestroyPanes(java.lang.Boolean destroyPanes)` Whether `destroy()` should be called on `pane` when it a tab is removed via `TabSet.removeTab`}.
    `void` | `setJavaScriptObject(com.google.gwt.core.client.JavaScriptObject jsObj)`
    `void` | `setLocateTabsBy(java.lang.String locateTabsBy)` When AutoTest.getElement is used to parse locator strings generated by link{isc.AutoTest.getLocator()}, how should tabs within this tabset be identified? By default if tab has a specified `ID` this will always be used.
    `com.smartgwt.logicalstructure.core.LogicalStructureObject` | `setLogicalStructure(com.smartgwt.logicalstructure.widgets.tab.TabSetLogicalStructure s)`
    `void` | `setMoreTabCount(int moreTabCount)` This property defines the number tab buttons that should be shown before automatically adding a "more" button to handle the remaining tabs.
    `void` | `setMoreTabImage(java.lang.String moreTabImage)` If `showMoreTab` is enabled this property determines the image to display on the "More" tab button.
    `void` | `setMoreTabPaneDefaults(Canvas moreTabPaneDefaults)` Default properties for the "more" tab's pane.
    `void` | `setMoreTabPaneProperties(Canvas moreTabPaneProperties)` Properties to apply to the "more" tab's pane created by this TabSet.
    `void` | `setMoreTabProperties(Tab moreTabProperties)` Properties to apply to the "more" tab created by this TabSet.
    `void` | `setMoreTabTitle(java.lang.String moreTabTitle)` Title for the "More" tab.
    `void` | `setPaneContainerClassName(java.lang.String paneContainerClassName)` CSS style used for the paneContainer.
    `void` | `setPaneContainerOverflow(Overflow paneContainerOverflow)` Specifies the overflow of the pane container (the component that holds the pane contents for all tabs).
    `void` | `setPaneContainerProperties(Canvas paneContainerProperties)` Properties of the container where the component specified by Tab.pane is shown.
    `void` | `setPaneMargin(int paneMargin)` Space to leave around the panes in our paneContainer
    `void` | `setPickerButtonHSrc(java.lang.String pickerButtonHSrc)` If `showTabPicker` is true, and `symmetricPickerButton` is set to true, this property governs the base URL for the picker button image, when displayed in a horizontal tab-bar [IE `tabBarPosition` is set to `"top"` or `"bottom"`].
    `void` | `setPickerButtonSize(int pickerButtonSize)` If `showTabPicker` is true, this property governs the size of tab-picker button.
    `void` | `setPickerButtonSrc(java.lang.String pickerButtonSrc)` If `showTabPicker` is true, this property governs the base URL for the picker button image, when `symmetricPickerButton` is set to false
    `void` | `setPickerButtonVSrc(java.lang.String pickerButtonVSrc)` If `showTabPicker` is true, and `symmetricPickerButton` is set to true, this property governs the base URL for the picker button image, when displayed in a verricaL tab-bar [IE `tabBarPosition` is set to `"LEFT"` or `"right"`].
    `void` | `setScrollerButtonSize(int scrollerButtonSize)` If `showTabScroller` is true, this property governs the size of scroller buttons.
    `void` | `setScrollerHSrc(java.lang.String scrollerHSrc)` If this TabSet is showing `tab scroller buttons`, and `symmetricScroller` is true, this property governs the base URL for the tab bar back and forward scroller button images for horizontal tab bars [IE for tab sets with `tabBarPosition` set to "top" or "bottom"].
    `void` | `setScrollerSrc(java.lang.String scrollerSrc)` If this TabSet is showing `tab scroller buttons`, and `symmetricScroller` is false, this property governs the base URL for the tab bar back and forward scroller button images.
    `void` | `setScrollerVSrc(java.lang.String scrollerVSrc)` If this TabSet is showing `tab scroller buttons`, and `symmetricScroller` is true, this property governs the base URL for the tab bar back and forward scroller button images for vertical tab bars [IE for tab sets with `tabBarPosition` set to "left" or "right"].
    `void` | `setSelectedTab(int selectedTab)` Specifies the index of the initially selected tab.
    `void` | `setShowMoreTab(java.lang.Boolean showMoreTab)` Should tabs exceeding `moreTabCount` be shown on a "more" tab?
    `void` | `setShowPaneContainerEdges(java.lang.Boolean showPaneContainerEdges)` Should the paneContainer for this tabset show `edges`.
    `void` | `setShowPartialEdges(java.lang.Boolean showPartialEdges)` If the paneContainer for this tab set is showing `edges`, setting this attribute to `true` will set the paneContainer to show `customEdges` for the three sides opposing the tabBarPosition.
    `void` | `setShowTabPicker(java.lang.Boolean showTabPicker)` If there is not enough space to display all the tab-buttons in this tabSet, should a drop-down "picker" be displayed to allow selection of tabs that are clipped?
    `void` | `setShowTabScroller(java.lang.Boolean showTabScroller)` If there is not enough space to display all the tab-buttons in this tabSet, should scroller buttons be displayed to allow access to tabs that are clipped?
    `void` | `setSimpleTabBaseStyle(java.lang.String simpleTabBaseStyle)` If this.useSimpleTabs is true, simpleTabBaseClass will be the base style used to determine the css style to apply to the tabs. This property will be suffixed with the side on which the tab-bar will appear, followed by with the tab's state (selected, over, etc), resolving to a className like "tabButtonTopOver"
    `void` | `setSkinImgDir(java.lang.String skinImgDir)` Default directory for skin images (those defined by the class), relative to the Page-wide `skinDir`.
    `void` | `setSymmetricEdges(java.lang.Boolean symmetricEdges)` If this tabSet will `show edges` for the paneContainer, this property determines whether the same edge media will be used regardless of the tab bar position, or whether different media should be used (necessary if the edge appearance is not symmetrical on all sides).
    `void` | `setSymmetricPickerButton(java.lang.Boolean symmetricPickerButton)` If this TabSet is showing a `tab picker button`, this property determines whether the `pickerButtonHSrc` and `pickerButtonVSrc` media will be used for vertical and horizontal tab-bar picker buttons, or whether separate media should be used for each possible `tabBarPosition` based on the `pickerButtonSrc` property for this tabSet.
    `void` | `setSymmetricScroller(java.lang.Boolean symmetricScroller)` If this TabSet is showing `tab scroller buttons`, this property determines whether the `scrollerHSrc` and `scrollerVSrc` media will be used for vertical and horizontal tab-bar scroller buttons, or whether separate media should be used for each possible `tabBarPosition` based on the `scrollerSrc` property for this tabSet.
    `void` | `setTabBarAlign(Side tabBarAlign)` Alignment of the tabBar.
    `void` | `setTabBarControls(java.lang.Object... tabBarControls)` This property determines what controls should show up after the tabBar for this TabSet.
    `void` | `setTabBarPosition(Side tabBarPosition)` Which side of the TabSet the TabBar should appear on.
    `void` | `setTabBarProperties(TabBar tabBarProperties)` This attribute allows developers to specify custom properties for this tabset's `tabBar`
    `void` | `setTabBarThickness(int tabBarThickness)` Thickness of tabBar, applies to either orientation (specifies height for horizontal, width for vertical orientation).
    `void` | `setTabIcon(int tabIndex, java.lang.String iconURL)` Changes the icon of a tab
    `void` | `setTabIcon(java.lang.String ID, java.lang.String iconURL)` Changes the icon of a tab
    `void` | `setTabIcon(Tab tab, java.lang.String iconURL)` Changes the icon of a tab
    `void` | `setTabPane(int tabIndex, Canvas pane)` Apply a new `pane` to an existing tab in this tabSet
    `void` | `setTabPane(java.lang.String tabID, Canvas pane)` Apply a new `pane` to an existing tab in this tabSet
    `void` | `setTabs(Tab... tabs)`
    `void` | `setTabTitle(int tabIndex, java.lang.String title)` Changes the title of a tab
    `void` | `setTabTitle(java.lang.String ID, java.lang.String title)` Changes the title of a tab
    `void` | `setTabTitle(Tab tab, java.lang.String title)` Changes the title of a tab
    `void` | `setTitleEditEvent(TabTitleEditEvent titleEditEvent)` The event that triggers title editing on this TabSet.
    `void` | `setTitleEditorLeftOffset(java.lang.Integer titleEditorLeftOffset)` If set, offsets the tab title editor further in from the left-hand edge of the tab, by the number of pixels set in this property.
    `void` | `setTitleEditorProperties(TextItem titleEditorProperties)` Properties for the auto-generated `titleEditor`.
    `void` | `setTitleEditorRightOffset(java.lang.Integer titleEditorRightOffset)` If set, offsets the tab title editor further in from the right-hand edge of the tab, by the number of pixels set in this property.
    `void` | `setTitleEditorTopOffset(java.lang.Integer titleEditorTopOffset)` If set, offsets the tab title editor further down from the top edge of the tab, by the number of pixels set in this property.
    `void` | `setUseIOSTabs(java.lang.Boolean useIOSTabs)` Setting this to true turns on a different appearance for tabs, similar to iOS tabs from the "Music" app, where the tab.icon is enlarged and shown as a black and white mask.
    `void` | `setUseSimpleTabs(java.lang.Boolean useSimpleTabs)` Should we use simple button based tabs styled with CSS rather than image based `ImgTab` tabs?
    `Tab` | `tabForPane(Canvas pane)` Search for a tab that contains a pane.
    `void` | `updateTab(int tabIndex, Canvas pane)` Set the pane for a tab.
    `void` | `updateTab(Tab tab, Canvas pane)` Set the pane for a tab.

    - ### Methods inherited from class com.smartgwt.client.widgets.Canvas

      `addChild, addChild, addChild, addChild, addChild, addClickHandler, addDoubleClickHandler, addDragMoveHandler, addDragRepositionMoveHandler, addDragRepositionStartHandler, addDragRepositionStopHandler, addDragResizeMoveHandler, addDragResizeStartHandler, addDragResizeStopHandler, addDragStartHandler, addDragStopHandler, addDropHandler, addDropMoveHandler, addDropOutHandler, addDropOverHandler, addFocusChangedHandler, addHoverHandler, addHoverHiddenHandler, addKeyDownHandler, addKeyPressHandler, addMouseDownHandler, addMouseMoveHandler, addMouseOutHandler, addMouseOverHandler, addMouseStillDownHandler, addMouseUpHandler, addMouseWheelHandler, addMovedHandler, addParentMovedHandler, addPeer, addPeer, addPeer, addPeer, addResizedHandler, addRightMouseDownHandler, addScrolledHandler, addShowContextMenuHandler, addStyleName, addVisibilityChangedHandler, adjustForContent, animateFade, animateFade, animateFade, animateFade, animateFade, animateFade, animateFade, animateHide, animateHide, animateHide, animateMove, animateMove, animateMove, animateMove, animateRect, animateRect, animateRect, animateRect, animateResize, animateResize, animateResize, animateResize, animateScroll, animateScroll, animateScroll, animateScroll, animateScroll, animateScroll, animateShow, animateShow, animateShow, asSGWTComponent, blur, bringToFront, clear, clickMaskUp, clickMaskUp, contains, contains, containsEvent, containsFocus, containsPoint, containsPoint, deparent, depeer, disable, enable, focus, focusInNextTabElement, focusInPreviousTabElement, getAbsoluteLeft, getAbsoluteTop, getAccessKey, getAnimateAcceleration, getAnimateFadeTime, getAnimateHideAcceleration, getAnimateHideTime, getAnimateMoveAcceleration, getAnimateMoveTime, getAnimateRectAcceleration, getAnimateRectTime, getAnimateResizeAcceleration, getAnimateResizeTime, getAnimateScrollAcceleration, getAnimateScrollTime, getAnimateShowAcceleration, getAnimateShowEffect, getAnimateShowTime, getAnimateTime, getAppImgDir, getAriaRole, getAutoDraw, getAutoShowParent, getBackgroundColor, getBackgroundImage, getBackgroundPosition, getBackgroundRepeat, getBorder, getBottom, getById, getByJSObject, getByLocalId, getCanAcceptDrop, getCanDrag, getCanDragReposition, getCanDragResize, getCanDragScroll, getCanDrop, getCanDropBefore, getCanFocus, getCanHover, getCanSelectText, getCanvasAutoChild, getCanvasItem, getChildren, getChildrenSnapResizeToGrid, getChildrenSnapToGrid, getClassName, getContentElement, getContents, getContextMenu, getCursor, getDataPath, getDefaultHeight, getDefaultWidth, getDestroyed, getDestroying, getDisabled, getDisabledCursor, getDoubleClickDelay, getDragAppearance, getDragIntersectStyle, getDragOpacity, getDragRepositionAppearance, getDragRepositionCursor, getDragResizeAppearance, getDragScrollDelay, getDragStartDistance, getDragTarget, getDragType, getDropTypes, getDynamicContents, getEdgeBackgroundColor, getEdgeCenterBackgroundColor, getEdgeImage, getEdgeMarginSize, getEdgeOffset, getEdgeOpacity, getEdgeShowCenter, getEdgeSize, getEventEdge, getEventEdge, getExtraSpace, getFacetId, getFormItemAutoChild, getFullDataPath, getGroupBorderCSS, getGroupLabelBackgroundColor, getGroupLabelStyleName, getGroupTitle, getHeight, getHeightAsString, getHideUsingDisplayNone, getHoverAlign, getHoverAutoDestroy, getHoverComponent, getHoverDelay, getHoverHeight, getHoverHTML, getHoverMoveWithMouse, getHoverOpacity, getHoverStyle, getHoverVAlign, getHoverWidth, getHoverWrap, getHSnapOrigin, getHSnapOrigin, getHSnapPosition, getHSnapPosition, getHtmlPosition, getImage, getImgURL, getImgURL, getInnerContentHeight, getInnerContentWidth, getInnerHeight, getInnerWidth, getIsGroup, getKeepInParentRect, getLayoutAlign, getLeft, getLeftAsString, getLocateChildrenBy, getLocateChildrenType, getLocatePeersBy, getLocatePeersType, getMargin, getMasterElement, getMatchElement, getMaxHeight, getMaxWidth, getMenuConstructor, getMinHeight, getMinWidth, getMouseStillDownDelay, getMouseStillDownInitialDelay, getNextZIndex, getNoDoubleClicks, getOffsetHeight, getOffsetWidth, getOffsetX, getOffsetY, getOpacity, getOuterElement, getOverflow, getPadding, getPageBottom, getPageLeft, getPageRect, getPageRight, getPageTop, getParentElement, getPeers, getPercentBox, getPercentSource, getPosition, getPrefix, getPrintChildrenAbsolutelyPositioned, getPrintHTML, getPrintHTML, getPrompt, getRect, getRedrawOnResize, getResizeBarTarget, getResizeFrom, getRight, getScrollbarSize, getScrollBottom, getScrollHeight, getScrollLeft, getScrollRight, getScrollTop, getScrollWidth, getShadowDepth, getShadowImage, getShadowOffset, getShadowSoftness, getShouldPrint, getShowCustomScrollbars, getShowDragShadow, getShowEdges, getShowHover, getShowHoverComponents, getShowResizeBar, getShowShadow, getSnapAxis, getSnapEdge, getSnapHDirection, getSnapHGap, getSnapOffsetLeft, getSnapOffsetTop, getSnapOnDrop, getSnapResizeToGrid, getSnapTo, getSnapToGrid, getSnapVDirection, getSnapVGap, getStyleName, getTabIndex, getTestInstance, getTitle, getTooltip, getTop, getTopAsString, getTopElement, getUseBackMask, getUseOpacityFilter, getValuesManager, getViewportHeight, getViewportWidth, getVisibility, getVisibleHeight, getVisibleWidth, getVSnapOrigin, getVSnapOrigin, getVSnapPosition, getVSnapPosition, getWidth, getWidthAsString, getZIndex, handleHover, hide, hideClickMask, hideClickMask, hideContextMenu, imgHTML, imgHTML, imgHTML, intersects, isDirty, isDisabled, isDrawn, isVisible, keyUp, layoutChildren, linkHTML, linkHTML, linkHTML, linkHTML, linkHTML, linkHTML, markForDestroy, markForRedraw, markForRedraw, moveAbove, moveBelow, moveBy, moveTo, onAttach, onDetach, onInit, parentResized, printComponents, redraw, redraw, removeChild, removeChild, removePeer, removePeer, resizeBy, resizeTo, resizeTo, scrollBy, scrollByPercent, scrollTo, scrollTo, scrollTo, scrollToBottom, scrollToLeft, scrollToPercent, scrollToRight, scrollToTop, sendToBack, setAccessKey, setAlign, setAllowExternalFilters, setAnimateAcceleration, setAnimateFadeTime, setAnimateHideAcceleration, setAnimateHideTime, setAnimateMoveAcceleration, setAnimateMoveTime, setAnimateRectAcceleration, setAnimateRectTime, setAnimateResizeAcceleration, setAnimateResizeTime, setAnimateScrollAcceleration, setAnimateScrollTime, setAnimateShowAcceleration, setAnimateShowEffect, setAnimateShowTime, setAnimateTime, setAppImgDir, setAriaRole, setAriaState, setAutoChildConstructor, setAutoChildProperties, setAutoChildProperties, setAutoChildVisibility, setAutoDraw, setAutoHeight, setAutoShowParent, setAutoWidth, setBackgroundColor, setBackgroundImage, setBackgroundPosition, setBackgroundRepeat, setBorder, setBottom, setCanAcceptDrop, setCanDrag, setCanDragReposition, setCanDragResize, setCanDragScroll, setCanDrop, setCanDropBefore, setCanFocus, setCanHover, setCanSelectText, setCanvasItem, setChildren, setChildrenSnapResizeToGrid, setChildrenSnapToGrid, setContents, setContextMenu, setCursor, setDataPath, setDefaultHeight, setDefaultProperties, setDefaultWidth, setDisabled, setDisabledCursor, setDoubleClickDelay, setDragAppearance, setDragIntersectStyle, setDragOpacity, setDragRepositionAppearance, setDragRepositionCursor, setDragResizeAppearance, setDragScrollDelay, setDragStartDistance, setDragTarget, setDragType, setDropTypes, setDynamicContents, setEdgeBackgroundColor, setEdgeCenterBackgroundColor, setEdgeImage, setEdgeMarginSize, setEdgeOffset, setEdgeOpacity, setEdgeShowCenter, setEdgeSize, setExtraSpace, setFacetId, setGroupBorderCSS, setGroupLabelBackgroundColor, setGroupLabelStyleName, setGroupTitle, setHeight, setHeight, setHeight100, setHideUsingDisplayNone, setHoverAlign, setHoverAutoDestroy, setHoverDelay, setHoverHeight, setHoverMoveWithMouse, setHoverOpacity, setHoverStyle, setHoverVAlign, setHoverWidth, setHoverWrap, setHtmlPosition, setImage, setImage, setIsGroup, setKeepInParentRect, setKeepInParentRect, setKeepInParentRect, setLayoutAlign, setLayoutAlign, setLeft, setLeft, setLocateChildrenBy, setLocateChildrenType, setLocatePeersBy, setLocatePeersType, setLogicalStructure, setMargin, setMatchElement, setMaxHeight, setMaxWidth, setMenuConstructor, setMinHeight, setMinWidth, setMouseStillDownDelay, setMouseStillDownInitialDelay, setNeverUseFilters, setNoDoubleClicks, setOpacity, setOverflow, setPadding, setPageLeft, setPageTop, setParentElement, setPeers, setPercentBox, setPercentSource, setPosition, setPrefix, setPrintChildrenAbsolutelyPositioned, setPrompt, setRect, setRect, setRedrawOnResize, setResizeBarTarget, setResizeFrom, setResizeFrom, setRight, setScrollbarConstructor, setScrollbarSize, setShadowDepth, setShadowImage, setShadowOffset, setShadowSoftness, setShouldPrint, setShowCustomScrollbars, setShowDragShadow, setShowEdges, setShowHover, setShowHoverComponents, setShowResizeBar, setShowShadow, setSmoothFade, setSnapAxis, setSnapEdge, setSnapHDirection, setSnapHGap, setSnapOffsetLeft, setSnapOffsetTop, setSnapOnDrop, setSnapResizeToGrid, setSnapTo, setSnapToGrid, setSnapVDirection, setSnapVGap, setStyleName, setTabIndex, setTitle, setTooltip, setTop, setTop, setUseBackMask, setUseOpacityFilter, setValuesManager, setVisibility, setVisible, setWidth, setWidth, setWidth100, setZIndex, shouldDragScroll, show, showClickMask, showNextTo, showNextTo, showNextTo, showNextTo, showPrintPreview, showPrintPreview, showPrintPreview, showPrintPreview, showRecursively, updateHover, updateHover, updateShadow, visibleAtPoint, willAcceptDrop`

    - ### Methods inherited from class com.smartgwt.client.widgets.BaseWidget

      `addDrawHandler, destroy, doAddHandler, doInit, doOnRender, draw, equals, error, errorIfNotCreated, getAttribute, getAttributeAsBoolean, getAttributeAsDate, getAttributeAsDateArray, getAttributeAsDouble, getAttributeAsElement, getAttributeAsFloat, getAttributeAsFloatArray, getAttributeAsInt, getAttributeAsIntArray, getAttributeAsJavaScriptObject, getAttributeAsMap, getAttributeAsRecord, getAttributeAsString, getAttributeAsStringArray, getConfig, getDOM, getElement, getElement, getHandlerCount, getID, getInnerHTML, getJsObj, getOrCreateJsObj, getRef, getScClassName, hashCode, initNativeObject, internalSetID, internalSetID, isConfigOnly, isCreated, onBind, onDestroy, onDraw, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setConfig, setConfigOnly, setDragTracker, setElement, setHtmlElement, setID, setLogicalStructure, setNullProperty, setPosition, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setScClassName, toString`

    - ### Methods inherited from class com.google.gwt.user.client.ui.Widget

      `addAttachHandler, addBitlessDomHandler, addDomHandler, addHandler, asWidget, asWidgetOrNull, createHandlerManager, delegateEvent, doAttachChildren, doDetachChildren, fireEvent, getLayoutData, getParent, isAttached, isOrWasAttached, onBrowserEvent, onLoad, onUnload, removeFromParent, setLayoutData, sinkEvents`

    - ### Methods inherited from class com.google.gwt.user.client.ui.UIObject

      `addStyleDependentName, ensureDebugId, ensureDebugId, ensureDebugId, getStyleElement, getStyleName, getStylePrimaryName, getStylePrimaryName, isVisible, onEnsureDebugId, removeStyleDependentName, removeStyleName, resolvePotentialElement, setElement, setPixelSize, setSize, setStyleDependentName, setStyleName, setStyleName, setStyleName, setStylePrimaryName, setStylePrimaryName, setVisible, sinkBitlessEvent, unsinkEvents`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface com.google.gwt.event.shared.HasHandlers

      `fireEvent`

- - ### Constructor Detail

    - #### TabSet

          public TabSet()

    - #### TabSet

          public TabSet(com.google.gwt.core.client.JavaScriptObject jsObj)

  - ### Method Detail

    - #### getOrCreateRef

          public static TabSet getOrCreateRef(com.google.gwt.core.client.JavaScriptObject jsObj)

    - #### setJavaScriptObject

          public void setJavaScriptObject(com.google.gwt.core.client.JavaScriptObject jsObj)

      Overrides:
        `setJavaScriptObject` in class `Canvas`

    - #### changeAutoChildDefaults

          public static void changeAutoChildDefaults(java.lang.String autoChildName,
                                     Canvas defaults)

      Changes the defaults for Canvas AutoChildren named `autoChildName`.
      Parameters:
        `autoChildName` - name of an AutoChild to customize the defaults for.
        `defaults` - Canvas defaults to apply. These defaults override any existing properties without destroying or wiping out non-overridden properties.
      See Also:
        `AutoChildUsage`

    - #### changeAutoChildDefaults

          public static void changeAutoChildDefaults(java.lang.String autoChildName,
                                     FormItem defaults)

      Changes the defaults for FormItem AutoChildren named `autoChildName`.
      Parameters:
        `autoChildName` - name of an AutoChild to customize the defaults for.
        `defaults` - FormItem defaults to apply. These defaults override any existing properties without destroying or wiping out non-overridden properties.
      See Also:
        `AutoChildUsage`

    - #### create

          protected com.google.gwt.core.client.JavaScriptObject create()

      Overrides:
        `create` in class `Canvas`

    - #### setAnimateTabScrolling

          public void setAnimateTabScrolling(java.lang.Boolean animateTabScrolling)
                                      throws java.lang.IllegalStateException

      If `showTabScroller` is true, should tabs be scrolled into view via an animation when the user interacts with the scroller buttons?
      Parameters:
        `animateTabScrolling` - animateTabScrolling Default value is true
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getAnimateTabScrolling

          public java.lang.Boolean getAnimateTabScrolling()

      If `showTabScroller` is true, should tabs be scrolled into view via an animation when the user interacts with the scroller buttons?
      Returns:
        Boolean

    - #### setCanCloseTabs

          public void setCanCloseTabs(java.lang.Boolean canCloseTabs)

      Should tabs in this tabSet show an icon allowing the user to dismiss the tab by clicking on it directly. May be overridden for individual tabs by setting `canClose`.

      The URL for this icon's image will be derived from `closeTabIcon` by default, but may be overridden by explicitly specifying `closeIcon`.

      Note: Currently, tabs can only show a single icon, so a closable tab will show the close icon only even if `icon` is set. To work around this, add the icon as an HTML <img> tag to the `title` property, for example:

               title : "" + isc.Canvas.imgHTML("myIcon.png") + " Tab Title"

      If this method is called after the component has been drawn/initialized: Changes this TabSet's `canCloseTabs` property.
      Parameters:
        `canCloseTabs` - the new value for canCloseTabs.. Default value is null
      See Also:
        `com.smartgwt.client.widgets.tab.TabSet#closeClick`

    - #### getCanCloseTabs

          public java.lang.Boolean getCanCloseTabs()

      Should tabs in this tabSet show an icon allowing the user to dismiss the tab by clicking on it directly. May be overridden for individual tabs by setting `canClose`.

      The URL for this icon's image will be derived from `closeTabIcon` by default, but may be overridden by explicitly specifying `closeIcon`.

      Note: Currently, tabs can only show a single icon, so a closable tab will show the close icon only even if `icon` is set. To work around this, add the icon as an HTML <img> tag to the `title` property, for example:

               title : "" + isc.Canvas.imgHTML("myIcon.png") + " Tab Title"

      Returns:
        Boolean
      See Also:
        `com.smartgwt.client.widgets.tab.TabSet#closeClick`

    - #### setCanEditTabTitles

          public void setCanEditTabTitles(java.lang.Boolean canEditTabTitles)

      If true, users can edit the titles of tabs in this TabSet when the `titleEditEvent` fires. You can override this behavior per tab with the `canEditTitle` property.

      Note that this TabSet's `titleEditEvent` must be set to a supported `TabTitleEditEvent` in order for users to be able to edit the titles of tabs.

      Parameters:
        `canEditTabTitles` - canEditTabTitles Default value is false
      See Also:
        User-Editable Titles Example

    - #### getCanEditTabTitles

          public java.lang.Boolean getCanEditTabTitles()

      If true, users can edit the titles of tabs in this TabSet when the `titleEditEvent` fires. You can override this behavior per tab with the `canEditTitle` property.

      Note that this TabSet's `titleEditEvent` must be set to a supported `TabTitleEditEvent` in order for users to be able to edit the titles of tabs.

      Returns:
        Boolean
      See Also:
        User-Editable Titles Example

    - #### setCanReorderTabs

          public void setCanReorderTabs(java.lang.Boolean canReorderTabs)
                                 throws java.lang.IllegalStateException

      If true, tabs can be reordered by dragging on them.

      To disallow drag-reorder of a specific tab, see `canReorder`.

      Parameters:
        `canReorderTabs` - canReorderTabs Default value is null
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created
      See Also:
        `Dragdrop overview and related methods`

    - #### getCanReorderTabs

          public java.lang.Boolean getCanReorderTabs()

      If true, tabs can be reordered by dragging on them.

      To disallow drag-reorder of a specific tab, see `canReorder`.

      Returns:
        Boolean
      See Also:
        `Dragdrop overview and related methods`

    - #### setCloseTabIcon

          public void setCloseTabIcon(java.lang.String closeTabIcon)
                               throws java.lang.IllegalStateException

      Default src for the close icon for tabs to display if `canCloseTabs` is true.
      Parameters:
        `closeTabIcon` - . See `SCImgURL`. Default value is [SKIN]/TabSet/close.png
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getCloseTabIcon

          public java.lang.String getCloseTabIcon()

      Default src for the close icon for tabs to display if `canCloseTabs` is true.
      Returns:
        . See `SCImgURL`

    - #### setCloseTabIconSize

          public void setCloseTabIconSize(int closeTabIconSize)
                                   throws java.lang.IllegalStateException

      Size in pixels of the icon for closing tabs, displayed when `canCloseTabs` is true.
      Parameters:
        `closeTabIconSize` - closeTabIconSize Default value is 16
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getCloseTabIconSize

          public int getCloseTabIconSize()

      Size in pixels of the icon for closing tabs, displayed when `canCloseTabs` is true.
      Returns:
        int

    - #### setDefaultTabHeight

          public void setDefaultTabHeight(java.lang.Integer defaultTabHeight)
                                   throws java.lang.IllegalStateException

      If set, is passed as "height" to all tabs when `tabBarPosition` is set to `"left"` or `"right"`.

      If unset, height will be picked up from the Tab constructor class defaults. Note that tabs expand to fit their content so this height acts as a minimum. May be customized by individual `skins`.

      Parameters:
        `defaultTabHeight` - defaultTabHeight Default value is null
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getDefaultTabHeight

          public java.lang.Integer getDefaultTabHeight()

      If set, is passed as "height" to all tabs when `tabBarPosition` is set to `"left"` or `"right"`.

      If unset, height will be picked up from the Tab constructor class defaults. Note that tabs expand to fit their content so this height acts as a minimum. May be customized by individual `skins`.

      Returns:
        Integer

    - #### setDefaultTabWidth

          public void setDefaultTabWidth(java.lang.Integer defaultTabWidth)
                                  throws java.lang.IllegalStateException

      If set, is passed as "width" to all tabs when `tabBarPosition` is set to `"top"` or `"bottom"`.

      If unset, width will be picked up from the Tab constructor class defaults. Tabs expand to fit their content, so this width acts as a minimum. Setting width:1 will result in tabs that are only as wide as their titles. May be customized by individual `skins`.

      Parameters:
        `defaultTabWidth` - defaultTabWidth Default value is null
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getDefaultTabWidth

          public java.lang.Integer getDefaultTabWidth()

      If set, is passed as "width" to all tabs when `tabBarPosition` is set to `"top"` or `"bottom"`.

      If unset, width will be picked up from the Tab constructor class defaults. Tabs expand to fit their content, so this width acts as a minimum. Setting width:1 will result in tabs that are only as wide as their titles. May be customized by individual `skins`.

      Returns:
        Integer

    - #### setDestroyPanes

          public void setDestroyPanes(java.lang.Boolean destroyPanes)
                               throws java.lang.IllegalStateException

      Whether `destroy()` should be called on `pane` when it a tab is removed via `TabSet.removeTab`}.

      An application might set this to false in order to re-use panes in different tabs or in different parts of the application.

      Parameters:
        `destroyPanes` - destroyPanes Default value is null
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getDestroyPanes

          public java.lang.Boolean getDestroyPanes()

      Whether `destroy()` should be called on `pane` when it a tab is removed via `TabSet.removeTab`}.

      An application might set this to false in order to re-use panes in different tabs or in different parts of the application.

      Returns:
        Boolean

    - #### setLocateTabsBy

          public void setLocateTabsBy(java.lang.String locateTabsBy)

      When AutoTest.getElement is used to parse locator strings generated by link{isc.AutoTest.getLocator()}, how should tabs within this tabset be identified? By default if tab has a specified `ID` this will always be used. For tabs with no ID, the following options are available:
      - `"title"` use the title as an identifier
      - `"index"` use the index of the tab in the tabset as an identifier
      If unset, and the tab has no specified ID, default behavior is to identify by title (if available), otherwise by index.

      Note : This is an advanced setting

      Parameters:
        `locateTabsBy` - . See `String`. Default value is null

    - #### getLocateTabsBy

          public java.lang.String getLocateTabsBy()

      When AutoTest.getElement is used to parse locator strings generated by link{isc.AutoTest.getLocator()}, how should tabs within this tabset be identified? By default if tab has a specified `ID` this will always be used. For tabs with no ID, the following options are available:
      - `"title"` use the title as an identifier
      - `"index"` use the index of the tab in the tabset as an identifier
      If unset, and the tab has no specified ID, default behavior is to identify by title (if available), otherwise by index.
      Returns:
        . See `String`

    - #### getMoreTab

          public Tab getMoreTab()
                         throws java.lang.IllegalStateException

      `Tab` to be shown when `showMoreTab` is enabled more than `moreTabCount` tabs are provided.

      For an overview of how to use and configure AutoChildren, see `Using AutoChildren`.

      Returns:
        Tab
      Throws:
        `java.lang.IllegalStateException` - if this widget has not yet been rendered.

    - #### setMoreTabCount

          public void setMoreTabCount(int moreTabCount)
                               throws java.lang.IllegalStateException

      This property defines the number tab buttons that should be shown before automatically adding a "more" button to handle the remaining tabs. This property is only used when `showMoreTab` is enabled.
      Parameters:
        `moreTabCount` - moreTabCount Default value is 5
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getMoreTabCount

          public int getMoreTabCount()

      This property defines the number tab buttons that should be shown before automatically adding a "more" button to handle the remaining tabs. This property is only used when `showMoreTab` is enabled.
      Returns:
        int

    - #### setMoreTabImage

          public void setMoreTabImage(java.lang.String moreTabImage)
                               throws java.lang.IllegalStateException

      If `showMoreTab` is enabled this property determines the image to display on the "More" tab button.
      Parameters:
        `moreTabImage` - . See `SCImgURL`. Default value is "[SKINIMG]/iOS/more.png"
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getMoreTabImage

          public java.lang.String getMoreTabImage()

      If `showMoreTab` is enabled this property determines the image to display on the "More" tab button.
      Returns:
        . See `SCImgURL`

    - #### getMoreTabPane

          public VLayout getMoreTabPane()
                                 throws java.lang.IllegalStateException

      Pane contents for the "more" tab based on a VLayout. Typically contains a `NavigationBar` and `TableView`.

      For an overview of how to use and configure AutoChildren, see `Using AutoChildren`.

      Returns:
        VLayout
      Throws:
        `java.lang.IllegalStateException` - if this widget has not yet been rendered.

    - #### setMoreTabPaneDefaults

          public void setMoreTabPaneDefaults(Canvas moreTabPaneDefaults)
                                      throws java.lang.IllegalStateException

      Default properties for the "more" tab's pane.

      Currently constructs a VLayout with a `NavigationBar` and `TableView`.

      Parameters:
        `moreTabPaneDefaults` - moreTabPaneDefaults Default value is null
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getMoreTabPaneDefaults

          public Canvas getMoreTabPaneDefaults()

      Default properties for the "more" tab's pane.

      Currently constructs a VLayout with a `NavigationBar` and `TableView`.

      Returns:
        Canvas

    - #### setMoreTabPaneProperties

          public void setMoreTabPaneProperties(Canvas moreTabPaneProperties)
                                        throws java.lang.IllegalStateException

      Properties to apply to the "more" tab's pane created by this TabSet.
      Parameters:
        `moreTabPaneProperties` - moreTabPaneProperties Default value is null
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getMoreTabPaneProperties

          public Canvas getMoreTabPaneProperties()

      Properties to apply to the "more" tab's pane created by this TabSet.
      Returns:
        Canvas

    - #### setMoreTabProperties

          public void setMoreTabProperties(Tab moreTabProperties)
                                    throws java.lang.IllegalStateException

      Properties to apply to the "more" tab created by this TabSet.
      Parameters:
        `moreTabProperties` - moreTabProperties Default value is null
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getMoreTabProperties

          public Tab getMoreTabProperties()

      Properties to apply to the "more" tab created by this TabSet.
      Returns:
        Tab

    - #### setMoreTabTitle

          public void setMoreTabTitle(java.lang.String moreTabTitle)
                               throws java.lang.IllegalStateException

      Title for the "More" tab.
      Parameters:
        `moreTabTitle` - . See `String`. Default value is "More"
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getMoreTabTitle

          public java.lang.String getMoreTabTitle()

      Title for the "More" tab.
      Returns:
        . See `String`

    - #### getPaneContainer

          public VLayout getPaneContainer()
                                   throws java.lang.IllegalStateException

      Container where the component specified by `pane` is shown.

      Note: paneContainer and showEdges:true for rounded tabsets: you can enable decorative image-based edges on the paneContainer by setting `showEdges:true` via paneContainerDefaults (to skin all tabsets) or paneContainerProperties (to use edges on one instance). In this structure, the `BaseLine` should use media that matches the appearance of the decorative edges and fully overlaps the edge of the paneContainer that it is adjacent to. In the most typical appearance (symmetric edges on all 4 sides), both `baseLineCapSize` and `baseLineThickness` match the `edgeSize` set on the paneContainer. See the load_skin.js file for the "Smart GWT" skin for an example of setting all relevant properties.

      To disable edges for a particular TabSet, which you may want to do for a TabSet that is already within a clearly defined container, configure the paneContainer to show only it's top edge:

                 paneContainerProperties : { customEdges:["T"] },

      To completely flatten even the top edge of the TabSet:

                 paneContainerProperties : { customEdges:["T"] },
                 tabBarProperties :{ baseLineCapSize:0 },

      This "flattens" the baseLine so that only the center image is used.

      For an overview of how to use and configure AutoChildren, see `Using AutoChildren`.

      Returns:
        VLayout
      Throws:
        `java.lang.IllegalStateException` - if this widget has not yet been rendered.

    - #### setPaneContainerClassName

          public void setPaneContainerClassName(java.lang.String paneContainerClassName)

      CSS style used for the paneContainer.
      Parameters:
        `paneContainerClassName` - . See `CSSStyleName`. Default value is null

    - #### getPaneContainerClassName

          public java.lang.String getPaneContainerClassName()

      CSS style used for the paneContainer.
      Returns:
        . See `CSSStyleName`

    - #### setPaneContainerOverflow

          public void setPaneContainerOverflow(Overflow paneContainerOverflow)

      Specifies the overflow of the pane container (the component that holds the pane contents for all tabs). By default this is set to "auto", meaning the pane container will automatically introduce scrolling when the pane contents exceed the TabSet's specified size.

      For other values and their meaning, see `Overflow`
      If this method is called after the component has been drawn/initialized: Update `paneContainerOverflow` after creation.

      Note : This is an advanced setting

      Parameters:
        `paneContainerOverflow` - new overflow setting. Default value is Canvas.AUTO

    - #### getPaneContainerOverflow

          public Overflow getPaneContainerOverflow()

      Specifies the overflow of the pane container (the component that holds the pane contents for all tabs). By default this is set to "auto", meaning the pane container will automatically introduce scrolling when the pane contents exceed the TabSet's specified size.

      For other values and their meaning, see `Overflow`

      Returns:
        Overflow

    - #### setPaneMargin

          public void setPaneMargin(int paneMargin)
                             throws java.lang.IllegalStateException

      Space to leave around the panes in our paneContainer

      Note that this property may be specified on a per-tab basis via `paneMargin`.

      Parameters:
        `paneMargin` - paneMargin Default value is 0
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getPaneMargin

          public int getPaneMargin()

      Space to leave around the panes in our paneContainer

      Note that this property may be specified on a per-tab basis via `paneMargin`.

      Returns:
        int

    - #### setPickerButtonHSrc

          public void setPickerButtonHSrc(java.lang.String pickerButtonHSrc)
                                   throws java.lang.IllegalStateException

      If `showTabPicker` is true, and `symmetricPickerButton` is set to true, this property governs the base URL for the picker button image, when displayed in a horizontal tab-bar [IE `tabBarPosition` is set to `"top"` or `"bottom"`].

      Note that if `symmetricPickerButton` is false, the `pickerButtonSrc` property will be used instead.

      This base URL will have a suffix of `"Down"` appended when the user holds the mouse down over the button, and `"Disabled"` if the tabset as a whole is disabled.

      Parameters:
        `pickerButtonHSrc` - . See `SCImgURL`. Default value is "[SKIN]hpicker.gif"
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created
      See Also:
        `setSymmetricPickerButton(java.lang.Boolean)`

    - #### getPickerButtonHSrc

          public java.lang.String getPickerButtonHSrc()

      If `showTabPicker` is true, and `symmetricPickerButton` is set to true, this property governs the base URL for the picker button image, when displayed in a horizontal tab-bar [IE `tabBarPosition` is set to `"top"` or `"bottom"`].

      Note that if `symmetricPickerButton` is false, the `pickerButtonSrc` property will be used instead.

      This base URL will have a suffix of `"Down"` appended when the user holds the mouse down over the button, and `"Disabled"` if the tabset as a whole is disabled.

      Returns:
        . See `SCImgURL`
      See Also:
        `getSymmetricPickerButton()`

    - #### setPickerButtonSize

          public void setPickerButtonSize(int pickerButtonSize)
                                   throws java.lang.IllegalStateException

      If `showTabPicker` is true, this property governs the size of tab-picker button. Applied as the width of buttons if the tabBar is horizontal, or the height if tabBar is vertical. Note that the other dimension is determined by `this.tabBarThickness`
      Parameters:
        `pickerButtonSize` - pickerButtonSize Default value is 16
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getPickerButtonSize

          public int getPickerButtonSize()

      If `showTabPicker` is true, this property governs the size of tab-picker button. Applied as the width of buttons if the tabBar is horizontal, or the height if tabBar is vertical. Note that the other dimension is determined by `this.tabBarThickness`
      Returns:
        int

    - #### setPickerButtonSrc

          public void setPickerButtonSrc(java.lang.String pickerButtonSrc)
                                  throws java.lang.IllegalStateException

      If `showTabPicker` is true, this property governs the base URL for the picker button image, when `symmetricPickerButton` is set to false

      Note that if `symmetricPickerButton` is true, the `pickerButtonHSrc` and `pickerButtonVSrc` properties will be used instead.

      To get the path to the image to display, this base URL will be modified as follows:

      - If appropriate a state suffix of `"Down"` or `"Disabled"` will be appended.
      - The `tabBarPosition` for this tabSet will be appended.
      Parameters:
        `pickerButtonSrc` - . See `SCImgURL`. Default value is "[SKIN]/picker.gif"
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created
      See Also:
        `setSymmetricPickerButton(java.lang.Boolean)`

    - #### getPickerButtonSrc

          public java.lang.String getPickerButtonSrc()

      If `showTabPicker` is true, this property governs the base URL for the picker button image, when `symmetricPickerButton` is set to false

      Note that if `symmetricPickerButton` is true, the `pickerButtonHSrc` and `pickerButtonVSrc` properties will be used instead.

      To get the path to the image to display, this base URL will be modified as follows:

      - If appropriate a state suffix of `"Down"` or `"Disabled"` will be appended.
      - The `tabBarPosition` for this tabSet will be appended.
      Returns:
        . See `SCImgURL`
      See Also:
        `getSymmetricPickerButton()`

    - #### setPickerButtonVSrc

          public void setPickerButtonVSrc(java.lang.String pickerButtonVSrc)
                                   throws java.lang.IllegalStateException

      If `showTabPicker` is true, and `symmetricPickerButton` is set to true, this property governs the base URL for the picker button image, when displayed in a verricaL tab-bar [IE `tabBarPosition` is set to `"LEFT"` or `"right"`].

      Note that if `symmetricPickerButton` is false, the `pickerButtonSrc` property will be used instead.

      This base URL will have a suffix of `"Down"` appended when the user holds the mouse down over the button, and `"Disabled"` if the tabset as a whole is disabled.

      Parameters:
        `pickerButtonVSrc` - . See `SCImgURL`. Default value is "[SKIN]vpicker.gif"
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created
      See Also:
        `setSymmetricPickerButton(java.lang.Boolean)`

    - #### getPickerButtonVSrc

          public java.lang.String getPickerButtonVSrc()

      If `showTabPicker` is true, and `symmetricPickerButton` is set to true, this property governs the base URL for the picker button image, when displayed in a verricaL tab-bar [IE `tabBarPosition` is set to `"LEFT"` or `"right"`].

      Note that if `symmetricPickerButton` is false, the `pickerButtonSrc` property will be used instead.

      This base URL will have a suffix of `"Down"` appended when the user holds the mouse down over the button, and `"Disabled"` if the tabset as a whole is disabled.

      Returns:
        . See `SCImgURL`
      See Also:
        `getSymmetricPickerButton()`

    - #### getScroller

          public StretchImgButton getScroller()
                                       throws java.lang.IllegalStateException

      A component containing back and forward buttons for scrolling through all of the tabs of the TabSet. The scroller is created automatically when needed and when `"tabScroller"` is specified in the `tabBarControls`.

      By default, the scroller constructor is `StretchImgButton`. Note that the scroller `items` are determined automatically, so any items set in scrollerProperties will be ignored.

      For an overview of how to use and configure AutoChildren, see `Using AutoChildren`.

      Returns:
        StretchImgButton
      Throws:
        `java.lang.IllegalStateException` - if this widget has not yet been rendered.

    - #### setScrollerButtonSize

          public void setScrollerButtonSize(int scrollerButtonSize)
                                     throws java.lang.IllegalStateException

      If `showTabScroller` is true, this property governs the size of scroller buttons. Applied as the width of buttons if the tabBar is horizontal, or the height if tabBar is vertical. Note that the other dimension is determined by `this.tabBarThickness`
      Parameters:
        `scrollerButtonSize` - scrollerButtonSize Default value is 16
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getScrollerButtonSize

          public int getScrollerButtonSize()

      If `showTabScroller` is true, this property governs the size of scroller buttons. Applied as the width of buttons if the tabBar is horizontal, or the height if tabBar is vertical. Note that the other dimension is determined by `this.tabBarThickness`
      Returns:
        int

    - #### setScrollerHSrc

          public void setScrollerHSrc(java.lang.String scrollerHSrc)
                               throws java.lang.IllegalStateException

      If this TabSet is showing `tab scroller buttons`, and `symmetricScroller` is true, this property governs the base URL for the tab bar back and forward scroller button images for horizontal tab bars [IE for tab sets with `tabBarPosition` set to "top" or "bottom"].

      Note that if `symmetricScroller` is false, `scrollerSrc` will be used instead.

      To get the path to the image to display, this base URL will be modified as follows:

      - If appropriate a state suffix of `"Down"` or `"Disabled"` will be appended.
      - A suffix of `"forward"` or `"back"` will be appended for the forward or backward scrolling button.
      For example - if the scrollerHSrc is set to `"[SKIN]hscroll.gif"`, the image displayed for the back-scroller button on a tabSet with `tabBarPosition` set to "top" and `symmetricScroller` set to true would be one of `"[SKIN]hscroll_back.gif"`, `"[SKIN]hscroll_Down_back.gif"`, and `"[SKIN]hscroll_Disabled_back.gif"`.

      Note that for best results the media should be sized to match the scroller button sizes, determined by `tabBarThickness` and `scrollerButtonSize`.

      Parameters:
        `scrollerHSrc` - . See `SCImgURL`. Default value is "[SKIN]hscroll.gif"
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created
      See Also:
        `setSymmetricScroller(java.lang.Boolean)`

    - #### getScrollerHSrc

          public java.lang.String getScrollerHSrc()

      If this TabSet is showing `tab scroller buttons`, and `symmetricScroller` is true, this property governs the base URL for the tab bar back and forward scroller button images for horizontal tab bars [IE for tab sets with `tabBarPosition` set to "top" or "bottom"].

      Note that if `symmetricScroller` is false, `scrollerSrc` will be used instead.

      To get the path to the image to display, this base URL will be modified as follows:

      - If appropriate a state suffix of `"Down"` or `"Disabled"` will be appended.
      - A suffix of `"forward"` or `"back"` will be appended for the forward or backward scrolling button.
      For example - if the scrollerHSrc is set to `"[SKIN]hscroll.gif"`, the image displayed for the back-scroller button on a tabSet with `tabBarPosition` set to "top" and `symmetricScroller` set to true would be one of `"[SKIN]hscroll_back.gif"`, `"[SKIN]hscroll_Down_back.gif"`, and `"[SKIN]hscroll_Disabled_back.gif"`.

      Note that for best results the media should be sized to match the scroller button sizes, determined by `tabBarThickness` and `scrollerButtonSize`.

      Returns:
        . See `SCImgURL`
      See Also:
        `getSymmetricScroller()`

    - #### setScrollerSrc

          public void setScrollerSrc(java.lang.String scrollerSrc)
                              throws java.lang.IllegalStateException

      If this TabSet is showing `tab scroller buttons`, and `symmetricScroller` is false, this property governs the base URL for the tab bar back and forward scroller button images.

      Note that if `symmetricScroller` is true, `scrollerHSrc` and `scrollerVSrc` will be used instead.

      To get the path to the image to display, this base URL will be modified as follows:

      - If appropriate a state suffix of `"Down"` or `"Disabled"` will be appended.
      - The `tabBarPosition` for this tabSet will be appended.
      - A suffix of `"forward"` or `"back"` will be appended for the forward or backward scrolling button.
      For example - if the scrollerSrc is set to `"[SKIN]scroll.gif"`, the image displayed for the back-scroller button on a tabSet with `tabBarPosition` set to "top" and `symmetricScroller` set to false would be one of `"[SKIN]scroll_top_back.gif"`, `"[SKIN]scroll_Down_top_back.gif"`, and `"[SKIN]scroll_Disabled_top_back.gif"`.

      Note that for best results the media should be sized to match the scroller button sizes, determined by `tabBarThickness` and `scrollerButtonSize`.

      Parameters:
        `scrollerSrc` - . See `SCImgURL`. Default value is "[SKIN]/scroll.gif"
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created
      See Also:
        `setSymmetricScroller(java.lang.Boolean)`

    - #### getScrollerSrc

          public java.lang.String getScrollerSrc()

      If this TabSet is showing `tab scroller buttons`, and `symmetricScroller` is false, this property governs the base URL for the tab bar back and forward scroller button images.

      Note that if `symmetricScroller` is true, `scrollerHSrc` and `scrollerVSrc` will be used instead.

      To get the path to the image to display, this base URL will be modified as follows:

      - If appropriate a state suffix of `"Down"` or `"Disabled"` will be appended.
      - The `tabBarPosition` for this tabSet will be appended.
      - A suffix of `"forward"` or `"back"` will be appended for the forward or backward scrolling button.
      For example - if the scrollerSrc is set to `"[SKIN]scroll.gif"`, the image displayed for the back-scroller button on a tabSet with `tabBarPosition` set to "top" and `symmetricScroller` set to false would be one of `"[SKIN]scroll_top_back.gif"`, `"[SKIN]scroll_Down_top_back.gif"`, and `"[SKIN]scroll_Disabled_top_back.gif"`.

      Note that for best results the media should be sized to match the scroller button sizes, determined by `tabBarThickness` and `scrollerButtonSize`.

      Returns:
        . See `SCImgURL`
      See Also:
        `getSymmetricScroller()`

    - #### setScrollerVSrc

          public void setScrollerVSrc(java.lang.String scrollerVSrc)
                               throws java.lang.IllegalStateException

      If this TabSet is showing `tab scroller buttons`, and `symmetricScroller` is true, this property governs the base URL for the tab bar back and forward scroller button images for vertical tab bars [IE for tab sets with `tabBarPosition` set to "left" or "right"].

      Note that if `symmetricScroller` is false, `scrollerSrc` will be used instead.

      To get the path to the image to display, this base URL will be modified as follows:

      - If appropriate a state suffix of `"Down"` or `"Disabled"` will be appended.
      - A suffix of `"forward"` or `"back"` will be appended for the forward or backward scrolling button.
      For example - if the scrollerVSrc is set to `"[SKIN]vscroll.gif"`, the image displayed for the back-scroller button on a tabSet with `tabBarPosition` set to "left" and `symmetricScroller` set to true would be one of `"[SKIN]vscroll_back.gif"`, `"[SKIN]vscroll_Down_back.gif"`, and `"[SKIN]vscroll_Disabled_back.gif"`.

      Note that for best results the media should be sized to match the scroller button sizes, determined by `tabBarThickness` and `scrollerButtonSize`.

      Parameters:
        `scrollerVSrc` - . See `SCImgURL`. Default value is "[SKIN]vscroll.gif"
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created
      See Also:
        `setSymmetricScroller(java.lang.Boolean)`

    - #### getScrollerVSrc

          public java.lang.String getScrollerVSrc()

      If this TabSet is showing `tab scroller buttons`, and `symmetricScroller` is true, this property governs the base URL for the tab bar back and forward scroller button images for vertical tab bars [IE for tab sets with `tabBarPosition` set to "left" or "right"].

      Note that if `symmetricScroller` is false, `scrollerSrc` will be used instead.

      To get the path to the image to display, this base URL will be modified as follows:

      - If appropriate a state suffix of `"Down"` or `"Disabled"` will be appended.
      - A suffix of `"forward"` or `"back"` will be appended for the forward or backward scrolling button.
      For example - if the scrollerVSrc is set to `"[SKIN]vscroll.gif"`, the image displayed for the back-scroller button on a tabSet with `tabBarPosition` set to "left" and `symmetricScroller` set to true would be one of `"[SKIN]vscroll_back.gif"`, `"[SKIN]vscroll_Down_back.gif"`, and `"[SKIN]vscroll_Disabled_back.gif"`.

      Note that for best results the media should be sized to match the scroller button sizes, determined by `tabBarThickness` and `scrollerButtonSize`.

      Returns:
        . See `SCImgURL`
      See Also:
        `getSymmetricScroller()`

    - #### setShowMoreTab

          public void setShowMoreTab(java.lang.Boolean showMoreTab)
                              throws java.lang.IllegalStateException

      Should tabs exceeding `moreTabCount` be shown on a "more" tab?

      This setting is used to emulate an iPhone-style tab bar "more" button.

      Parameters:
        `showMoreTab` - showMoreTab Default value is null
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getShowMoreTab

          public java.lang.Boolean getShowMoreTab()

      Should tabs exceeding `moreTabCount` be shown on a "more" tab?

      This setting is used to emulate an iPhone-style tab bar "more" button.

      Returns:
        Boolean

    - #### setShowPaneContainerEdges

          public void setShowPaneContainerEdges(java.lang.Boolean showPaneContainerEdges)

      Should the paneContainer for this tabset show `edges`.

      Note : This is an advanced setting

      Parameters:
        `showPaneContainerEdges` - showPaneContainerEdges Default value is null

    - #### getShowPaneContainerEdges

          public java.lang.Boolean getShowPaneContainerEdges()

      Should the paneContainer for this tabset show `edges`.
      Returns:
        Boolean

    - #### setShowPartialEdges

          public void setShowPartialEdges(java.lang.Boolean showPartialEdges)
                                   throws java.lang.IllegalStateException

      If the paneContainer for this tab set is showing `edges`, setting this attribute to `true` will set the paneContainer to show `customEdges` for the three sides opposing the tabBarPosition.

      Note : This is an advanced setting

      Parameters:
        `showPartialEdges` - showPartialEdges Default value is false
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getShowPartialEdges

          public java.lang.Boolean getShowPartialEdges()

      If the paneContainer for this tab set is showing `edges`, setting this attribute to `true` will set the paneContainer to show `customEdges` for the three sides opposing the tabBarPosition.
      Returns:
        Boolean

    - #### setShowTabPicker

          public void setShowTabPicker(java.lang.Boolean showTabPicker)
                                throws java.lang.IllegalStateException

      If there is not enough space to display all the tab-buttons in this tabSet, should a drop-down "picker" be displayed to allow selection of tabs that are clipped?
      Parameters:
        `showTabPicker` - showTabPicker Default value is true
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getShowTabPicker

          public java.lang.Boolean getShowTabPicker()

      If there is not enough space to display all the tab-buttons in this tabSet, should a drop-down "picker" be displayed to allow selection of tabs that are clipped?
      Returns:
        Boolean

    - #### setShowTabScroller

          public void setShowTabScroller(java.lang.Boolean showTabScroller)
                                  throws java.lang.IllegalStateException

      If there is not enough space to display all the tab-buttons in this tabSet, should scroller buttons be displayed to allow access to tabs that are clipped?
      Parameters:
        `showTabScroller` - showTabScroller Default value is true
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getShowTabScroller

          public java.lang.Boolean getShowTabScroller()

      If there is not enough space to display all the tab-buttons in this tabSet, should scroller buttons be displayed to allow access to tabs that are clipped?
      Returns:
        Boolean

    - #### setSimpleTabBaseStyle

          public void setSimpleTabBaseStyle(java.lang.String simpleTabBaseStyle)

      If this.useSimpleTabs is true, simpleTabBaseClass will be the base style used to determine the css style to apply to the tabs.
      This property will be suffixed with the side on which the tab-bar will appear, followed by with the tab's state (selected, over, etc), resolving to a className like "tabButtonTopOver"
      Parameters:
        `simpleTabBaseStyle` - . See `CSSStyleName`. Default value is "tabButton"

    - #### getSimpleTabBaseStyle

          public java.lang.String getSimpleTabBaseStyle()

      If this.useSimpleTabs is true, simpleTabBaseClass will be the base style used to determine the css style to apply to the tabs.
      This property will be suffixed with the side on which the tab-bar will appear, followed by with the tab's state (selected, over, etc), resolving to a className like "tabButtonTopOver"
      Returns:
        . See `CSSStyleName`

    - #### setSkinImgDir

          public void setSkinImgDir(java.lang.String skinImgDir)
                             throws java.lang.IllegalStateException

      Default directory for skin images (those defined by the class), relative to the Page-wide `skinDir`.
      Overrides:
        `setSkinImgDir` in class `Canvas`
      Parameters:
        `skinImgDir` - . See `String`. Default value is "images/TabSet/"
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created
      See Also:
        `Images overview and related methods`

    - #### getSkinImgDir

          public java.lang.String getSkinImgDir()

      Default directory for skin images (those defined by the class), relative to the Page-wide `skinDir`.
      Overrides:
        `getSkinImgDir` in class `Canvas`
      Returns:
        . See `String`
      See Also:
        `Images overview and related methods`

    - #### setSymmetricEdges

          public void setSymmetricEdges(java.lang.Boolean symmetricEdges)
                                 throws java.lang.IllegalStateException

      If this tabSet will `show edges` for the paneContainer, this property determines whether the same edge media will be used regardless of the tab bar position, or whether different media should be used (necessary if the edge appearance is not symmetrical on all sides).

      If this property is set to false the paneContainer edge image URLs will be prefixed with the tabBarPosition of the tabSet - for example `"[SKIN]edge_top_T.gif"` rather than just `"[SKIN]edge_T.gif"`.

      When `symmetricEdges` is false, custom edge sizes for the pane container may be specified via `topEdgeSizes` et al, and custom edge offsets via `topEdgeOffsets` et al.

      Parameters:
        `symmetricEdges` - symmetricEdges Default value is true
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getSymmetricEdges

          public java.lang.Boolean getSymmetricEdges()

      If this tabSet will `show edges` for the paneContainer, this property determines whether the same edge media will be used regardless of the tab bar position, or whether different media should be used (necessary if the edge appearance is not symmetrical on all sides).

      If this property is set to false the paneContainer edge image URLs will be prefixed with the tabBarPosition of the tabSet - for example `"[SKIN]edge_top_T.gif"` rather than just `"[SKIN]edge_T.gif"`.

      When `symmetricEdges` is false, custom edge sizes for the pane container may be specified via `topEdgeSizes` et al, and custom edge offsets via `topEdgeOffsets` et al.

      Returns:
        Boolean

    - #### setSymmetricPickerButton

          public void setSymmetricPickerButton(java.lang.Boolean symmetricPickerButton)
                                        throws java.lang.IllegalStateException

      If this TabSet is showing a `tab picker button`, this property determines whether the `pickerButtonHSrc` and `pickerButtonVSrc` media will be used for vertical and horizontal tab-bar picker buttons, or whether separate media should be used for each possible `tabBarPosition` based on the `pickerButtonSrc` property for this tabSet.
      Parameters:
        `symmetricPickerButton` - symmetricPickerButton Default value is true
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getSymmetricPickerButton

          public java.lang.Boolean getSymmetricPickerButton()

      If this TabSet is showing a `tab picker button`, this property determines whether the `pickerButtonHSrc` and `pickerButtonVSrc` media will be used for vertical and horizontal tab-bar picker buttons, or whether separate media should be used for each possible `tabBarPosition` based on the `pickerButtonSrc` property for this tabSet.
      Returns:
        Boolean

    - #### setSymmetricScroller

          public void setSymmetricScroller(java.lang.Boolean symmetricScroller)
                                    throws java.lang.IllegalStateException

      If this TabSet is showing `tab scroller buttons`, this property determines whether the `scrollerHSrc` and `scrollerVSrc` media will be used for vertical and horizontal tab-bar scroller buttons, or whether separate media should be used for each possible `tabBarPosition` based on the `scrollerSrc` property for this tabSet.
      Parameters:
        `symmetricScroller` - symmetricScroller Default value is true
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getSymmetricScroller

          public java.lang.Boolean getSymmetricScroller()

      If this TabSet is showing `tab scroller buttons`, this property determines whether the `scrollerHSrc` and `scrollerVSrc` media will be used for vertical and horizontal tab-bar scroller buttons, or whether separate media should be used for each possible `tabBarPosition` based on the `scrollerSrc` property for this tabSet.
      Returns:
        Boolean

    - #### getTabBar

          public TabBar getTabBar()
                           throws java.lang.IllegalStateException

      TabBar for this TabSet, an instance of `TabBar`.

      For an overview of how to use and configure AutoChildren, see `Using AutoChildren`.

      Returns:
        TabBar
      Throws:
        `java.lang.IllegalStateException` - if this widget has not yet been rendered.

    - #### setTabBarAlign

          public void setTabBarAlign(Side tabBarAlign)
                              throws java.lang.IllegalStateException

      Alignment of the tabBar.

      If the position of the tabBar is "top" or "bottom", then alignment must be "left" or "right" and defaults to "left", or "right" if the browser is in `RTL mode`.

      If the position of the tabBar is "left" or "right", then the alignment must be "top" or "bottom" and defaults to "top".

      Parameters:
        `tabBarAlign` - tabBarAlign Default value is see below
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created
      See Also:
        Align Example

    - #### getTabBarAlign

          public Side getTabBarAlign()

      Alignment of the tabBar.

      If the position of the tabBar is "top" or "bottom", then alignment must be "left" or "right" and defaults to "left", or "right" if the browser is in `RTL mode`.

      If the position of the tabBar is "left" or "right", then the alignment must be "top" or "bottom" and defaults to "top".

      Returns:
        Side
      See Also:
        Align Example

    - #### getTabBarControlLayout

          public Layout getTabBarControlLayout()
                                        throws java.lang.IllegalStateException

      AutoChild of type `Layout` that holds the `tabBarControls` as well as the built-in controls such as the `tab picker menu`.

      For an overview of how to use and configure AutoChildren, see `Using AutoChildren`.

      Returns:
        Layout
      Throws:
        `java.lang.IllegalStateException` - if this widget has not yet been rendered.

    - #### setTabBarPosition

          public void setTabBarPosition(Side tabBarPosition)
                                 throws java.lang.IllegalStateException

      Which side of the TabSet the TabBar should appear on.
      Parameters:
        `tabBarPosition` - tabBarPosition Default value is Canvas.TOP
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created
      See Also:
        Orientation Example

    - #### getTabBarPosition

          public Side getTabBarPosition()

      Which side of the TabSet the TabBar should appear on.
      Returns:
        Side
      See Also:
        Orientation Example

    - #### setTabBarThickness

          public void setTabBarThickness(int tabBarThickness)

      Thickness of tabBar, applies to either orientation (specifies height for horizontal, width for vertical orientation). Note that overriding this value for TabSets that are skinned with images generally means providing new media for the borders.
      Parameters:
        `tabBarThickness` - tabBarThickness Default value is 21

    - #### getTabBarThickness

          public int getTabBarThickness()

      Thickness of tabBar, applies to either orientation (specifies height for horizontal, width for vertical orientation). Note that overriding this value for TabSets that are skinned with images generally means providing new media for the borders.
      Returns:
        int

    - #### getTabPicker

          public ImgButton getTabPicker()
                                 throws java.lang.IllegalStateException

      A button control that allows tabs to be picked directly from a popup menu. The tabPicker is created automatically when needed and when `"tabPicker"` is specified in the `tabBarControls`.

      For an overview of how to use and configure AutoChildren, see `Using AutoChildren`.

      Returns:
        ImgButton
      Throws:
        `java.lang.IllegalStateException` - if this widget has not yet been rendered.

    - #### getTitleEditor

          public TextItem getTitleEditor()
                                  throws java.lang.IllegalStateException

      TextItem we use to edit tab titles in this TabSet. You can override this property using the normal AutoChild facilities.

      For an overview of how to use and configure AutoChildren, see `Using AutoChildren`.

      Returns:
        TextItem
      Throws:
        `java.lang.IllegalStateException` - if this widget has not yet been rendered.
      See Also:
        `getCanEditTabTitles()`, `Tab.getCanEditTitle()`, `editTabTitle(java.lang.String)`

    - #### setTitleEditorLeftOffset

          public void setTitleEditorLeftOffset(java.lang.Integer titleEditorLeftOffset)

      If set, offsets the tab title editor further in from the left-hand edge of the tab, by the number of pixels set in this property. Note that the editor is always offset to avoid overlapping the endcaps of the tab; this property is applied on top of that default offset.
      Parameters:
        `titleEditorLeftOffset` - titleEditorLeftOffset Default value is null
      See Also:
        `setTitleEditorRightOffset(java.lang.Integer)`, `setTitleEditorTopOffset(java.lang.Integer)`

    - #### getTitleEditorLeftOffset

          public java.lang.Integer getTitleEditorLeftOffset()

      If set, offsets the tab title editor further in from the left-hand edge of the tab, by the number of pixels set in this property. Note that the editor is always offset to avoid overlapping the endcaps of the tab; this property is applied on top of that default offset.
      Returns:
        Integer
      See Also:
        `getTitleEditorRightOffset()`, `getTitleEditorTopOffset()`

    - #### setTitleEditorProperties

          public void setTitleEditorProperties(TextItem titleEditorProperties)
                                        throws java.lang.IllegalStateException

      Properties for the auto-generated `titleEditor`. This is the text item we use to edit tab titles in this tabSet.
      Parameters:
        `titleEditorProperties` - titleEditorProperties Default value is null
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created
      See Also:
        `com.smartgwt.client.widgets.tab.TabSet#setTitleEditor`, `setCanEditTabTitles(java.lang.Boolean)`

    - #### getTitleEditorProperties

          public TextItem getTitleEditorProperties()

      Properties for the auto-generated `titleEditor`. This is the text item we use to edit tab titles in this tabSet.
      Returns:
        TextItem
      See Also:
        `getTitleEditor()`, `getCanEditTabTitles()`

    - #### setTitleEditorRightOffset

          public void setTitleEditorRightOffset(java.lang.Integer titleEditorRightOffset)

      If set, offsets the tab title editor further in from the right-hand edge of the tab, by the number of pixels set in this property. Note that the editor is always offset to avoid overlapping the endcaps of the tab; this property is applied on top of that default offset.
      Parameters:
        `titleEditorRightOffset` - titleEditorRightOffset Default value is null
      See Also:
        `setTitleEditorLeftOffset(java.lang.Integer)`, `setTitleEditorTopOffset(java.lang.Integer)`

    - #### getTitleEditorRightOffset

          public java.lang.Integer getTitleEditorRightOffset()

      If set, offsets the tab title editor further in from the right-hand edge of the tab, by the number of pixels set in this property. Note that the editor is always offset to avoid overlapping the endcaps of the tab; this property is applied on top of that default offset.
      Returns:
        Integer
      See Also:
        `getTitleEditorLeftOffset()`, `getTitleEditorTopOffset()`

    - #### setTitleEditorTopOffset

          public void setTitleEditorTopOffset(java.lang.Integer titleEditorTopOffset)

      If set, offsets the tab title editor further down from the top edge of the tab, by the number of pixels set in this property. You can use this property, together with the left and right offset properties, to fine tune positioning of the editor within or around the tab button.

      Note: The height of the editor is an attribute of the editor itself, and can be set by specifying a "height" property in `titleEditorDefaults`.

      Parameters:
        `titleEditorTopOffset` - titleEditorTopOffset Default value is null
      See Also:
        `setTitleEditorLeftOffset(java.lang.Integer)`, `setTitleEditorRightOffset(java.lang.Integer)`

    - #### getTitleEditorTopOffset

          public java.lang.Integer getTitleEditorTopOffset()

      If set, offsets the tab title editor further down from the top edge of the tab, by the number of pixels set in this property. You can use this property, together with the left and right offset properties, to fine tune positioning of the editor within or around the tab button.

      Note: The height of the editor is an attribute of the editor itself, and can be set by specifying a "height" property in `titleEditorDefaults`.

      Returns:
        Integer
      See Also:
        `getTitleEditorLeftOffset()`, `getTitleEditorRightOffset()`

    - #### setUseIOSTabs

          public void setUseIOSTabs(java.lang.Boolean useIOSTabs)
                             throws java.lang.IllegalStateException

      Setting this to true turns on a different appearance for tabs, similar to iOS tabs from the "Music" app, where the tab.icon is enlarged and shown as a black and white mask. This mode does not support a clickable icon - clicking the enlarged icon just switches tabs.

      This attribute only has an effect for tabs that are not `closable`, and only for Mobile WebKit.

      Parameters:
        `useIOSTabs` - useIOSTabs Default value is false
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getUseIOSTabs

          public java.lang.Boolean getUseIOSTabs()

      Setting this to true turns on a different appearance for tabs, similar to iOS tabs from the "Music" app, where the tab.icon is enlarged and shown as a black and white mask. This mode does not support a clickable icon - clicking the enlarged icon just switches tabs.

      This attribute only has an effect for tabs that are not `closable`, and only for Mobile WebKit.

      Returns:
        Boolean

    - #### setUseSimpleTabs

          public void setUseSimpleTabs(java.lang.Boolean useSimpleTabs)
                                throws java.lang.IllegalStateException

      Should we use simple button based tabs styled with CSS rather than image based `ImgTab` tabs?

      If set to true tabs will instances of `Button`, styled according to the `simpleTabBaseStyle`.

      Note : This is an advanced setting

      Parameters:
        `useSimpleTabs` - useSimpleTabs Default value is false
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getUseSimpleTabs

          public java.lang.Boolean getUseSimpleTabs()

      Should we use simple button based tabs styled with CSS rather than image based `ImgTab` tabs?

      If set to true tabs will instances of `Button`, styled according to the `simpleTabBaseStyle`.

      Returns:
        Boolean

    - #### cancelTabTitleEditing

          public void cancelTabTitleEditing()

      If the user is currently editing a tab title (see `canEditTabTitles`), dismiss the editor and discard the edit value entered by the user.

    - #### getSelectedTabNumber

          public int getSelectedTabNumber()

      Returns the index of the currently selected tab object.
      Returns:
        the index of the currently selected tab object

    - #### addCloseClickHandler

          public com.google.gwt.event.shared.HandlerRegistration addCloseClickHandler(CloseClickHandler handler)

      Add a closeClick handler.

      When `canCloseTabs` is set, this notification method fired when the user clicks the "close" icon for a tab. Call `TabCloseClickEvent.cancel()` from within `CloseClickHandler.onCloseClick(com.smartgwt.client.widgets.events.CloseClickEvent)` to cancel default behavior of removing the tab from the TabSet

      Specified by:
        `addCloseClickHandler` in interface `HasCloseClickHandlers`
      Parameters:
        `handler` - the closeClick handler
      Returns:
        `HandlerRegistration` used to remove this handler

    - #### reorderTab

          public void reorderTab(Tab tab)

      Move a tab to another location in the tabset.
      Parameters:
        `tab` - tab to move

    - #### reorderTab

          public void reorderTab(Tab tab,
                        int moveToPosition)

      Move a tab to another location in the tabset.
      Parameters:
        `tab` - tab to move
        `moveToPosition` - the index to move the tab to - defaults to the end of the tabset if not passed

    - #### saveTabTitle

          public void saveTabTitle()

      If the user is currently editing a tab title (see `canEditTabTitles`), save the edited tab title and hide the editor.

    - #### scrollBack

          public void scrollBack()

      If there is not enough space to display all the tabs in this tabSet, this method will scroll the previous tab (that first tab that is clipped at the beginning of the tab-bar) into view.

    - #### scrollForward

          public void scrollForward()

      If there is not enough space to display all the tabs in this tabSet, this method will scroll the next tab (that first tab that is clipped at the end of the tab-bar) into view.

    - #### setCanCloseTab

          public void setCanCloseTab(Tab tab,
                            boolean canClose)

      Sets the given tab's `canClose` property to the boolean parameter canClose. If canClose is null, this will have the effect of causing the tab to fall back on `canCloseTabs`.
      Parameters:
        `tab` - tab to change
        `canClose` - new value for the tab's canClose property, or null to clear it

    - #### addTabContextMenuHandler

          public com.google.gwt.event.shared.HandlerRegistration addTabContextMenuHandler(TabContextMenuHandler handler)

      Add a tabContextMenu handler.

      Notification fired when the user right-clicks on a tab. Event may be cancelled by returning false

      Specified by:
        `addTabContextMenuHandler` in interface `HasTabContextMenuHandlers`
      Parameters:
        `handler` - the tabContextMenu handler
      Returns:
        `HandlerRegistration` used to remove this handler

    - #### addTabDeselectedHandler

          public com.google.gwt.event.shared.HandlerRegistration addTabDeselectedHandler(TabDeselectedHandler handler)

      Add a tabDeselected handler.

      Notification fired when a tab is deselected.

      Specified by:
        `addTabDeselectedHandler` in interface `HasTabDeselectedHandlers`
      Parameters:
        `handler` - the tabDeselected handler
      Returns:
        `HandlerRegistration` used to remove this handler

    - #### tabForPane

          public Tab tabForPane(Canvas pane)

      Search for a tab that contains a pane.
      Parameters:
        `pane` - pane to show
      Returns:
        tab that contains passed pane

    - #### addTabIconClickHandler

          public com.google.gwt.event.shared.HandlerRegistration addTabIconClickHandler(TabIconClickHandler handler)

      Add a tabIconClick handler.

      Method fired when the user clicks the icon for a tab, as specified via `icon`.

      Default behavior will fire `icon.click()` if specified, with two parameters `tab` (a pointer to the tab object and `tabSet` a pointer to the tabSet instance.

      Specified by:
        `addTabIconClickHandler` in interface `HasTabIconClickHandlers`
      Parameters:
        `handler` - the tabIconClick handler
      Returns:
        `HandlerRegistration` used to remove this handler

    - #### addTabSelectedHandler

          public com.google.gwt.event.shared.HandlerRegistration addTabSelectedHandler(TabSelectedHandler handler)

      Add a tabSelected handler.

      Notification fired when a tab is selected. Note that this will only fire if this tabSet is drawn. If a tab is selected before `TabSet.draw()` is called, the `tabSelected()` notification will fire on `draw()`

      Specified by:
        `addTabSelectedHandler` in interface `HasTabSelectedHandlers`
      Parameters:
        `handler` - the tabSelected handler
      Returns:
        `HandlerRegistration` used to remove this handler

    - #### addTabsReorderedHandler

          public com.google.gwt.event.shared.HandlerRegistration addTabsReorderedHandler(TabsReorderedHandler handler)

      Add a tabsReordered handler.

      Noficiation method executed when one or more tabs in the TabSet are reordered.

      Specified by:
        `addTabsReorderedHandler` in interface `HasTabsReorderedHandlers`
      Parameters:
        `handler` - the tabsReordered handler
      Returns:
        `HandlerRegistration` used to remove this handler

    - #### addTabTitleChangedHandler

          public com.google.gwt.event.shared.HandlerRegistration addTabTitleChangedHandler(TabTitleChangedHandler handler)

      Add a tabTitleChanged handler.

      This notification method fired when the user changes the title of a tab in this TabSet. This can happen either through user interaction with the UI if `canEditTabTitles` is set, or programmatically if application code calls `editTabTitle`.

      Call `TabTitleChangedEvent.cancel()` from within `TabTitleChangedHandler#onTabTitleChanged` from this method to cancel the change.

      Specified by:
        `addTabTitleChangedHandler` in interface `HasTabTitleChangedHandlers`
      Parameters:
        `handler` - the tabTitleChanged handler
      Returns:
        `HandlerRegistration` used to remove this handler

    - #### setDefaultProperties

          public static void setDefaultProperties(TabSet tabSetProperties)

      Class level method to set the default properties of this class. If set, then all subsequent instances of this class will automatically have the default properties that were set when this method was called. This is a powerful feature that eliminates the need for users to create a separate hierarchy of subclasses that only alter the default properties of this class. Can also be used for skinning / styling purposes.

      Note: This method is intended for setting default attributes only and will effect all instances of the underlying class (including those automatically generated in JavaScript). This method should not be used to apply standard EventHandlers or override methods for a class - use a custom subclass instead.

      Parameters:
        `tabSetProperties` - properties that should be used as new defaults when instances of this class are created

    - #### setSelectedTab

          public void setSelectedTab(int selectedTab)

      Specifies the index of the initially selected tab.
      Parameters:
        `selectedTab` - selectedTab Default value is 0

    - #### setTabs

          public void setTabs(Tab... tabs)

    - #### setPaneContainerProperties

          public void setPaneContainerProperties(Canvas paneContainerProperties)

      Properties of the container where the component specified by Tab.pane is shown.
      Parameters:
        `paneContainerProperties` - the pane container properties
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### selectTab

          public void selectTab(int tabIndex)

      Select a tab.
      Parameters:
        `tabIndex` - the tab index

    - #### selectTab

          public void selectTab(java.lang.String ID)

      Select a tab.
      Parameters:
        `ID` - the tab ID

    - #### selectTab

          public void selectTab(Tab tab)

      Select a tab.
      Parameters:
        `tab` - the tab

    - #### setTabTitle

          public void setTabTitle(int tabIndex,
                         java.lang.String title)

      Changes the title of a tab
      Parameters:
        `tabIndex` - the tab index
        `title` - new title

    - #### setTabTitle

          public void setTabTitle(java.lang.String ID,
                         java.lang.String title)

      Changes the title of a tab
      Parameters:
        `ID` - the tab ID
        `title` - new title

    - #### setTabTitle

          public void setTabTitle(Tab tab,
                         java.lang.String title)

      Changes the title of a tab
      Parameters:
        `tab` - the tab
        `title` - new title

    - #### setTabIcon

          public void setTabIcon(int tabIndex,
                        java.lang.String iconURL)

      Changes the icon of a tab
      Parameters:
        `tabIndex` - the tab index
        `iconURL` - new icon

    - #### setTabIcon

          public void setTabIcon(java.lang.String ID,
                        java.lang.String iconURL)

      Changes the icon of a tab
      Parameters:
        `ID` - the tab ID
        `iconURL` - new icon

    - #### setTabIcon

          public void setTabIcon(Tab tab,
                        java.lang.String iconURL)

      Changes the icon of a tab
      Parameters:
        `tab` - the tab
        `iconURL` - new icon

    - #### enableTab

          public void enableTab(int tabIndex)

      If the specified tab is disabled, enable it now.
      Parameters:
        `tabIndex` - the tab index

    - #### enableTab

          public void enableTab(java.lang.String ID)

      If the specified tab is disabled, enable it now.
      Parameters:
        `ID` - the tab id

    - #### enableTab

          public void enableTab(Tab tab)

      If the specified tab is disabled, enable it now.
      Parameters:
        `tab` - the tab

    - #### updateTab

          public void updateTab(int tabIndex,
                       Canvas pane)

      Set the pane for a tab. NOTE: the old pane for the tab is not destroy()d
      Parameters:
        `tabIndex` - the tab index
        `pane` - the new pane for the tab

    - #### updateTab

          public void updateTab(Tab tab,
                       Canvas pane)

      Set the pane for a tab. NOTE: the old pane for the tab is not destroy()d
      Parameters:
        `tab` - the tab
        `pane` - the new pane for the tab

    - #### disableTab

          public void disableTab(int tabIndex)

      If the specified tab is enabled, disable it now.
      Parameters:
        `tabIndex` - the tab index

    - #### disableTab

          public void disableTab(java.lang.String ID)

      If the specified tab is enabled, disable it now.
      Parameters:
        `ID` - the tab id

    - #### disableTab

          public void disableTab(Tab tab)

      If the specified tab is enabled, disable it now.
      Parameters:
        `tab` - the tab

    - #### removeTab

          public void removeTab(int tabIndex)

      Remove a tab.

      The pane associated with the removed tab is automatically destroyed when you call this method. To avoid this, call `updateTab(int, com.smartgwt.client.widgets.Canvas)` with `null` as the new pane immediately before removing the tab.

      Parameters:
        `tabIndex` - the tab index

    - #### removeTab

          public void removeTab(java.lang.String ID)

      Remove a tab.

      The pane associated with the removed tab is automatically destroyed when you call this method. To avoid this, call `updateTab(int, com.smartgwt.client.widgets.Canvas)` with `null` as the new pane immediately before removing the tab.

      Parameters:
        `ID` - the tabID

    - #### removeTab

          public void removeTab(Tab tab)

      Remove a tab.

      The pane associated with the removed tab is automatically destroyed when you call this method. To avoid this, call `updateTab(int, com.smartgwt.client.widgets.Canvas)` with `null` as the new pane immediately before removing the tab.

      Parameters:
        `tab` - the tab

    - #### removeTabs

          public void removeTabs(int[] tabIndexes)

      Remove one or more tabs. The pane(s) associated with the removed tab(s) is automatically destroyed when you call this method.
      Parameters:
        `tabIndexes` - the tab indexes

    - #### removeTabs

          public void removeTabs(java.lang.String[] ids)

      Remove one or more tabs. The pane(s) associated with the removed tab(s) is automatically destroyed when you call this method.
      Parameters:
        `ids` - the tabIDs

    - #### getSelectedTab

          public Tab getSelectedTab()

      The currently selected tab.
      Returns:
        the currently selected Tab

    - #### getTabCanvas

          public StatefulCanvas getTabCanvas(int tabIndex)

      Get the live Canvas representing a tab by index. * The underlying SmartClient class of the returned canvas depends on `getUseSimpleTabs()`. If this property is false, the returned canvas will be a `ImgTab` instance. If true the canvas will be a `com.smartgwt.client.widgets.tab.Button` instance. Note that you can make use of ImgTab APIs by using the `getJsObj()` and `create()` APIs to "cast" to the appropriate type - for example:
      `ImgTab liveTab = ImgTab.create(myTabSet.getTabCanvas(2).getJsObj());`

      Note that live Tab instances are not available until `BaseWidget.draw()`.

      Note that this is an advanced method. The returned Tab is considered an internal component of the TabSet. In order to maximize forward compatibility, wherever possible manipulate tabs through TabSet APIs such as a `setTabTitle(int, java.lang.String)` instead of modifying them directly.

      Parameters:
        `tab` -
      Returns:
        the tab Canvas, or null if not found or TabSet not drawn yet

    - #### getTabCanvas

          public StatefulCanvas getTabCanvas(java.lang.String ID)

      Get the live Canvas representing a tab by index. The underlying SmartClient class of the returned canvas depends on `getUseSimpleTabs()`. If this property is false, the returned canvas will be a `ImgTab` instance. If true the canvas will be a `com.smartgwt.client.widgets.tab.Button` instance. Note that you can make use of ImgTab APIs by using the `getJsObj()` and `create()` APIs to "cast" to the appropriate type - for example:
      `ImgTab liveTab = ImgTab.create(myTabSet.getTabCanvas(2).getJsObj());`

      Note that live Tab instances are not available until `BaseWidget.draw()`.

      Note that this is an advanced method. The returned Tab is considered an internal component of the TabSet. In order to maximize forward compatibility, wherever possible manipulate tabs through TabSet APIs such as a `setTabTitle(int, java.lang.String)` instead of modifying them directly.

      Parameters:
        `tab` -
      Returns:
        the tab Canvas, or null if not found or TabSet not drawn yet

    - #### getTab

          public Tab getTab(int tabIndex)

      Retrieves a Tab definition from within this tabSet by index.
      Parameters:
        `index` - of tab to retrieve
      Returns:
        the tab definition

    - #### getTab

          public Tab getTab(java.lang.String ID)

      Retrieves a Tab definition from within this tabSet by ID.
      Parameters:
        `ID` - of tab to retrieve
      Returns:
        the tab definition

    - #### getTabNumber

          public int getTabNumber(java.lang.String ID)

      Get the index of a tab from the tabID.
      Parameters:
        `ID` - the tab ID
      Returns:
        the index of the tab, or -1 if not found

    - #### addTab

          public void addTab(Tab tab)

      Add a tab
      Parameters:
        `tab` - new tab

    - #### addTab

          public void addTab(Tab tab,
                    int position)

      Add a tab
      Parameters:
        `tab` - new tab
        `position` - the position where tab should be added

    - #### getNumTabs

          public int getNumTabs()

      The number of tabs
      Returns:
        the number of tabs

    - #### setTitleEditEvent

          public void setTitleEditEvent(TabTitleEditEvent titleEditEvent)

      The event that triggers title editing on this TabSet.
      Parameters:
        `titleEditEvent` - titleEditEvent Default value is "doubleClick"
      See Also:
        `setCanEditTabTitles(java.lang.Boolean)`, `Tab.setCanEditTitle(java.lang.Boolean)`

    - #### getTitleEditEvent

          public TabTitleEditEvent getTitleEditEvent()

      The event that triggers title editing on this TabSet.
      Returns:
        TabTitleEditEvent
      See Also:
        `getCanEditTabTitles()`, `Tab.getCanEditTitle()`

    - #### editTabTitle

          public void editTabTitle(java.lang.String tab)

      Places an editor in the title of the parameter tab and allows the user to edit the title. Note that this programmatic method will allow editing of the specified tab's title, regardless of the settings of `canEditTabTitles` or `canEditTitle`.
      Parameters:
        `tab` - The tab whose title should be edited (may be specified by ID or index)

    - #### editTabTitle

          public void editTabTitle(int tab)

      Places an editor in the title of the parameter tab and allows the user to edit the title. Note that this programmatic method will allow editing of the specified tab's title, regardless of the settings of `canEditTabTitles` or `canEditTitle`.
      Parameters:
        `tab` - The tab whose title should be edited (may be specified by ID or index)

    - #### getTabs

          public Tab[] getTabs()

      The tabs
      Returns:
        the tabs

    - #### setTabBarControls

          public void setTabBarControls(java.lang.Object... tabBarControls)
                                 throws java.lang.IllegalStateException

      This property determines what controls should show up after the tabBar for this TabSet. Standard controls can be included using the strings `"tabScroller"` and `"tabPicker"`. These correspond to the `scroller` and `tabPicker` AutoChildren, respectively. The `"tabScroller"` standard control shows two buttons for scrolling through the tabs in order and the `"tabPicker"` standard control allows tabs to be picked directly from a menu. The standard controls show up only if `showTabScroller` or `showTabPicker` is true and there is not enough space available to show all of the tabs in the tabBar.

      Parameters:
        `tabBarControls` - tabBarControls Default value is ["tabScroller", "tabPicker"]
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created
      See Also:
        This sample illustrates the usage of this property

        Additional controls can be included by adding any widget to this array. Controls will show up in the order in which they are specified. For example, the following code would add a button in the tabBar area, while preserving the normal behavior of the tabScroller and tabPicker:

               ImgButton addButton = new ImgButton();
               addButton.setSrc("[SKINIMG]/actions/add.png");
               addButton.setTitle("Add");
               addButton.setWidth(16);
               addButton.setHeight(16);
               addButton.setAlign(Alignment.CENTER);
               TabSet ts = new TabSet();
               ts.setWidth(300);
               ts.setHeight(32);
               ts.setTabs(new Tab("Tab one"));
               ts.setTabBarControls(addButton, TabBarControls.TAB_SCROLLER, TabBarControls.TAB_PICKER);
               contentLayout.addMember(ts);

        You can also refer to the default tabPicker/tabScroll controls from Component XML:

              <TabSet width="300">
                 <tabBarControls>
                    <Button title="Custom Button"/>
                    <value xsi:type="string">tabPicker</value>
                    <value xsi:type="string">tabScroller</value>
                 </tabBarControls>
                 <tabs>
                    <tab title="Foo"/>
                    <tab title="Bar"/>
                 </tabs>
              </TabSet>

        Note : This is an advanced setting

    - #### setTabBarProperties

          public void setTabBarProperties(TabBar tabBarProperties)
                                   throws java.lang.IllegalStateException

      This attribute allows developers to specify custom properties for this tabset's `tabBar`
      Parameters:
        `tabBarProperties` - tabBarProperties Default value is null
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### setTabPane

          public void setTabPane(int tabIndex,
                        Canvas pane)

      Apply a new `pane` to an existing tab in this tabSet
      Parameters:
        `tabIndex` - Tab to update
        `pane` - new Pane for the tab. pass null to drop existing pane

    - #### setTabPane

          public void setTabPane(java.lang.String tabID,
                        Canvas pane)

      Apply a new `pane` to an existing tab in this tabSet
      Parameters:
        `tabID` - Tab to update
        `pane` - new Pane for the tab. pass null to drop existing pane

    - #### preloadImages

          public static void preloadImages()

      Preload primary tab skin images.

    - #### setLogicalStructure

          public com.smartgwt.logicalstructure.core.LogicalStructureObject setLogicalStructure(com.smartgwt.logicalstructure.widgets.tab.TabSetLogicalStructure s)

    - #### getLogicalStructure

          public com.smartgwt.logicalstructure.core.LogicalStructureObject getLogicalStructure()

      Specified by:
        `getLogicalStructure` in interface `LogicalStructure`
      Overrides:
        `getLogicalStructure` in class `Canvas`