Package 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:
  `HasAttachHandlers`, `HasHandlers`, `EventListener`, `HasVisibility`, `IsWidget`, `LogicalStructure`, `HasClearHandlers`, `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`, `HasRuleContextChangedHandlers`, `HasScrolledHandlers`, `HasShowContextMenuHandlers`, `HasVisibilityChangedHandlers`, `HasAddTabClickedHandlers`, `HasAddTabClickHandlers`, `HasCloseClickHandlers`, `HasTabContextMenuHandlers`, `HasTabDeselectedHandlers`, `HasTabIconClickHandlers`, `HasTabSelectedHandlers`, `HasTabsReorderedHandlers`, `HasTabTitleChangedHandlers`

public class TabSet extends Canvas implements HasAddTabClickHandlers, HasAddTabClickedHandlers, 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

  `UIObject.DebugIdImpl, UIObject.DebugIdImplEnabled`

- ## Field Summary

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

  `config, configOnly, factoryCreated, factoryProperties, id, nativeObject, scClassName`

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

  `DEBUG_ID_PREFIX`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `TabSet()`
  `TabSet(JavaScriptObject jsObj)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `HandlerRegistration`
  `addAddTabClickedHandler(AddTabClickedHandler handler)`
  Deprecated.
  `HandlerRegistration`
  `addAddTabClickHandler(AddTabClickHandler handler)`
  Add a addTabClick handler.
  `HandlerRegistration`
  `addCloseClickHandler(CloseClickHandler handler)`
  Add a closeClick handler.
  `void`
  `addTab(Tab tab)`
  Add a tab
  `void`
  `addTab(Tab tab, int position)`
  Add a tab
  `HandlerRegistration`
  `addTabContextMenuHandler(TabContextMenuHandler handler)`
  Add a tabContextMenu handler.
  `HandlerRegistration`
  `addTabDeselectedHandler(TabDeselectedHandler handler)`
  Add a tabDeselected handler.
  `HandlerRegistration`
  `addTabIconClickHandler(TabIconClickHandler handler)`
  Add a tabIconClick handler.
  `HandlerRegistration`
  `addTabSelectedHandler(TabSelectedHandler handler)`
  Add a tabSelected handler.
  `HandlerRegistration`
  `addTabsReorderedHandler(TabsReorderedHandler handler)`
  Add a tabsReordered handler.
  `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(String autoChildName, Canvas defaults)`
  Changes the defaults for Canvas AutoChildren named `autoChildName`.
  `static void`
  `changeAutoChildDefaults(String autoChildName, FormItem defaults)`
  Changes the defaults for FormItem AutoChildren named `autoChildName`.
  `protected JavaScriptObject`
  `create()`
  `void`
  `disableTab(int tabIndex)`
  If the specified tab is enabled, disable it now.
  `void`
  `disableTab(Tab tab)`
  If the specified tab is enabled, disable it now.
  `void`
  `disableTab(String ID)`
  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(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(Tab tab)`
  If the specified tab is disabled, enable it now.
  `void`
  `enableTab(String ID)`
  If the specified tab is disabled, enable it now.
  `ImgButton`
  `getAddTabButton()`
  Appears when `canAddTabs` is enabled.
  `String`
  `getAddTabButtonIcon()`
  Icon for the `addTabButton`.
  `Boolean`
  `getAnimateTabScrolling()`
  If `showTabScroller` is true, should tabs be scrolled into view via an animation when the user interacts with the scroller buttons?
  `String`
  `getAriaCloseableSuffix()`
  When `screen reader mode` is enabled and a tab is `closeable`, the `ariaCloseableSuffix` is a string that is appended to the label of closeable tabs.
  `Boolean`
  `getCanAddTabs()`
  Causes the `addTabButton` to appear after the `tabs` and before the `tabBarControls`.
  `Boolean`
  `getCanCloseTabs()`
  Should tabs in this tabSet show an icon allowing the user to dismiss the tab by clicking on it directly.
  `Boolean`
  `getCanEditTabTitles()`
  If true, users can edit the titles of tabs in this TabSet when the `titleEditEvent` fires.
  `Boolean`
  `getCanReorderTabs()`
  If true, tabs can be reordered by dragging on them.
  `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.
  `Integer`
  `getDefaultTabHeight()`
  If set, is passed as "height" to all tabs when `tabBarPosition` is set to `"left"` or `"right"`.
  `Integer`
  `getDefaultTabWidth()`
  If set, is passed as "width" to all tabs when `tabBarPosition` is set to `"top"` or `"bottom"`.
  `Boolean`
  `getDestroyPanes()`
  Whether `destroy()` should be called on `Tab.pane` when it a tab is removed via `removeTab()`.
  `String`
  `getEditProxyConstructor()`
  Default class used to construct the `EditProxy` for this component when the component is `first placed into edit mode`.
  `String`
  `getLocateTabsBy()`
  When `AutoTest.getElement()` is used to parse locator strings generated by `AutoTest.getLocator()`, how should tabs within this tabset be identified? If the locator has a specified `Tab.ID` or `Tab.name`, no fallback approach will be used as those attributes (with `Tab.ID` having priority) are each alone considered to definitively locate it.
  `LogicalStructureObject`
  `getLogicalStructure()`
  Getter implementing the `LogicalStructure` interface, which supports Eclipse's logical structure debugging facility.
  `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.
  `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.
  `NavigationBar`
  `getMoreTabPaneNavBar()`
  Navigation bar shown in the `moreTabPane`;
  `Canvas`
  `getMoreTabPaneProperties()`
  Properties to apply to the "more" tab's pane created by this TabSet.
  `TableView`
  `getMoreTabPaneTable()`
  `TableView` used to show links to other tabs in the `moreTabPane`;
  `Tab`
  `getMoreTabProperties()`
  Properties to apply to the "more" tab created by this TabSet.
  `String`
  `getMoreTabTitle()`
  Title for the "More" tab.
  `int`
  `getNumTabs()`
  The number of tabs
  `static TabSet`
  `getOrCreateRef(JavaScriptObject jsObj)`
  `VLayout`
  `getPaneContainer()`
  Container where the component specified by `Tab.pane` is shown.
  `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
  `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` and `isTouch` is `false`, this property governs the size of the tab picker button.
  `String`
  `getPickerButtonSrc()`
  If `showTabPicker` is true, this property governs the base URL for the picker button image, when `symmetricPickerButton` is set to false
  `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.
  `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"].
  `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.
  `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.
  `Boolean`
  `getShowMoreTab()`
  Should tabs exceeding `moreTabCount` be shown on a "more" tab?
  `Boolean`
  `getShowPaneContainerEdges()`
  Should the paneContainer for this tabset show `edges`.
  `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.
  `Boolean`
  `getShowTabBar()`
  Should the tabBar be displayed or not If shrinkElementOnHide is true, the paneContainer will expand over the space occupied by TabBar
  `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?
  `Boolean`
  `getShowTabScroller()`
  If there is not enough space to display all the tab-buttons in this tabSet, should scroll buttons be displayed to allow access to tabs that are clipped? If unset, defaults to false for `handsets` and true otherwise.
  `String`
  `getSimpleTabBaseStyle()`
  If `useSimpleTabs` is true, `simpleTabBaseStyle` will be the base style used to determine the css style to apply to the tabs.
  `String`
  `getSimpleTabIconOnlyBaseStyle()`
  If `useSimpleTabs` is true, `simpleTabIconOnlyBaseStyle` will be the base style used to determine the css style to apply to the tabs if `Tab.canAdaptWidth` is set and the title is not being shown.
  `String`
  `getSkinImgDir()`
  Default directory for skin images (those defined by the class), relative to the Page-wide `skinDir`.
  `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).
  `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.
  `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(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.
  `Alignment`
  `getTabBarAlignAsAlignment()`
  Alignment of the tabBar.
  `Layout`
  `getTabBarControlLayout()`
  `com.smartgwt.client.types.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(String ID)`
  Get the live Canvas representing a tab by index.
  `int`
  `getTabNumber(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.
  `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`.
  `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.
  `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.
  `int`
  `getTouchPickerButtonSize()`
  The size of the tab picker button when `isTouch` is `true`.
  `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.
  `Boolean`
  `getUseSimpleTabs()`
  Should we use simple button based tabs styled with CSS rather than image based `ImgTab` tabs?
  `void`
  `hideTab(int tab)`
  Hide a tab in this tabset at runtime.
  `void`
  `hideTab(Tab tab)`
  Hide a tab in this tabset at runtime.
  `void`
  `hideTab(String tab)`
  Hide a tab in this tabset at runtime.
  `static void`
  `preloadImages()`
  Preload primary tab skin images.
  `void`
  `removeLastTab()`
  Removes the last tab in the TabSet, excluding the `moreTab` if present.
  `void`
  `removeTab(int tabIndex)`
  Remove a tab.
  `void`
  `removeTab(Tab tab)`
  Remove a tab.
  `void`
  `removeTab(String ID)`
  Remove a tab.
  `void`
  `removeTabs(int[] tabIndexes)`
  Remove one or more tabs.
  `void`
  `removeTabs(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`
  `revealChild(Canvas child)`
  Reveals the child Canvas passed in by selecting the tab containing that child if it is not already selected.
  `void`
  `revealChild(String childID)`
  Reveals the child Canvas passed in by selecting the tab containing that child if it is not already selected.
  `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(Tab tab)`
  Select a tab.
  `void`
  `selectTab(String ID)`
  Select a tab.
  `TabSet`
  `setAddTabButtonIcon(String addTabButtonIcon)`
  Icon for the `addTabButton`.
  `TabSet`
  `setAnimateTabScrolling(Boolean animateTabScrolling)`
  If `showTabScroller` is true, should tabs be scrolled into view via an animation when the user interacts with the scroller buttons?
  `TabSet`
  `setAriaCloseableSuffix(String ariaCloseableSuffix)`
  When `screen reader mode` is enabled and a tab is `closeable`, the `ariaCloseableSuffix` is a string that is appended to the label of closeable tabs.
  `TabSet`
  `setCanAddTabs(Boolean canAddTabs)`
  Causes the `addTabButton` to appear after the `tabs` and before the `tabBarControls`.
  `void`
  `setCanCloseTab(Tab tab, boolean canClose)`
  Sets the given tab's `canClose` property to the boolean parameter canClose.
  `TabSet`
  `setCanCloseTabs(Boolean canCloseTabs)`
  Should tabs in this tabSet show an icon allowing the user to dismiss the tab by clicking on it directly.
  `TabSet`
  `setCanEditTabTitles(Boolean canEditTabTitles)`
  If true, users can edit the titles of tabs in this TabSet when the `titleEditEvent` fires.
  `TabSet`
  `setCanReorderTabs(Boolean canReorderTabs)`
  If true, tabs can be reordered by dragging on them.
  `TabSet`
  `setCloseTabIcon(String closeTabIcon)`
  Default src for the close icon for tabs to display if `canCloseTabs` is true.
  `TabSet`
  `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.
  `TabSet`
  `setDefaultTabHeight(Integer defaultTabHeight)`
  If set, is passed as "height" to all tabs when `tabBarPosition` is set to `"left"` or `"right"`.
  `TabSet`
  `setDefaultTabWidth(Integer defaultTabWidth)`
  If set, is passed as "width" to all tabs when `tabBarPosition` is set to `"top"` or `"bottom"`.
  `TabSet`
  `setDestroyPanes(Boolean destroyPanes)`
  Whether `destroy()` should be called on `Tab.pane` when it a tab is removed via `removeTab()`.
  `TabSet`
  `setEditProxyConstructor(String editProxyConstructor)`
  Default class used to construct the `EditProxy` for this component when the component is `first placed into edit mode`.
  `TabSet`
  `setLocateTabsBy(String locateTabsBy)`
  When `AutoTest.getElement()` is used to parse locator strings generated by `AutoTest.getLocator()`, how should tabs within this tabset be identified? If the locator has a specified `Tab.ID` or `Tab.name`, no fallback approach will be used as those attributes (with `Tab.ID` having priority) are each alone considered to definitively locate it.
  `LogicalStructureObject`
  `setLogicalStructure(TabSetLogicalStructure s)`
  Setter implementing the `LogicalStructure` interface, which supports Eclipse's logical structure debugging facility.
  `TabSet`
  `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.
  `TabSet`
  `setMoreTabImage(String moreTabImage)`
  If `showMoreTab` is enabled this property determines the image to display on the "More" tab button.
  `TabSet`
  `setMoreTabPaneDefaults(Canvas moreTabPaneDefaults)`
  Default properties for the "more" tab's pane.
  `TabSet`
  `setMoreTabPaneProperties(Canvas moreTabPaneProperties)`
  Properties to apply to the "more" tab's pane created by this TabSet.
  `TabSet`
  `setMoreTabProperties(Tab moreTabProperties)`
  Properties to apply to the "more" tab created by this TabSet.
  `TabSet`
  `setMoreTabTitle(String moreTabTitle)`
  Title for the "More" tab.
  `TabSet`
  `setPaneContainerClassName(String paneContainerClassName)`
  CSS style used for the paneContainer.
  `TabSet`
  `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.
  `TabSet`
  `setPaneMargin(int paneMargin)`
  Space to leave around the panes in our paneContainer
  `TabSet`
  `setPickerButtonHSrc(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"`].
  `TabSet`
  `setPickerButtonSize(int pickerButtonSize)`
  If `showTabPicker` is `true` and `isTouch` is `false`, this property governs the size of the tab picker button.
  `TabSet`
  `setPickerButtonSrc(String pickerButtonSrc)`
  If `showTabPicker` is true, this property governs the base URL for the picker button image, when `symmetricPickerButton` is set to false
  `TabSet`
  `setPickerButtonVSrc(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"`].
  `TabSet`
  `setScrollerButtonSize(int scrollerButtonSize)`
  If `showTabScroller` is true, this property governs the size of scroller buttons.
  `TabSet`
  `setScrollerHSrc(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"].
  `TabSet`
  `setScrollerSrc(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.
  `TabSet`
  `setScrollerVSrc(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.
  `TabSet`
  `setShowMoreTab(Boolean showMoreTab)`
  Should tabs exceeding `moreTabCount` be shown on a "more" tab?
  `TabSet`
  `setShowPaneContainerEdges(Boolean showPaneContainerEdges)`
  Should the paneContainer for this tabset show `edges`.
  `TabSet`
  `setShowPartialEdges(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.
  `TabSet`
  `setShowTabBar(Boolean showTabBar)`
  Should the tabBar be displayed or not If shrinkElementOnHide is true, the paneContainer will expand over the space occupied by TabBar
  `TabSet`
  `setShowTabPicker(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?
  `TabSet`
  `setShowTabScroller(Boolean showTabScroller)`
  If there is not enough space to display all the tab-buttons in this tabSet, should scroll buttons be displayed to allow access to tabs that are clipped? If unset, defaults to false for `handsets` and true otherwise.
  `TabSet`
  `setSimpleTabBaseStyle(String simpleTabBaseStyle)`
  If `useSimpleTabs` is true, `simpleTabBaseStyle` will be the base style used to determine the css style to apply to the tabs.
  `TabSet`
  `setSimpleTabIconOnlyBaseStyle(String simpleTabIconOnlyBaseStyle)`
  If `useSimpleTabs` is true, `simpleTabIconOnlyBaseStyle` will be the base style used to determine the css style to apply to the tabs if `Tab.canAdaptWidth` is set and the title is not being shown.
  `TabSet`
  `setSkinImgDir(String skinImgDir)`
  Default directory for skin images (those defined by the class), relative to the Page-wide `skinDir`.
  `TabSet`
  `setSymmetricEdges(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).
  `TabSet`
  `setSymmetricPickerButton(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.
  `TabSet`
  `setSymmetricScroller(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.
  `TabSet`
  `setTabBarAlign(Alignment tabBarAlign)`
  Alignment of the tabBar.
  `TabSet`
  `setTabBarAlign(Side tabBarAlign)`
  Alignment of the tabBar.
  `void`
  `setTabBarControls(Object... tabBarControls)`
  This property determines what controls should show up after the tabBar for this TabSet.
  `TabSet`
  `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`
  `TabSet`
  `setTabBarThickness(int tabBarThickness)`
  Thickness of tabBar, applies to either orientation (specifies height for horizontal, width for vertical orientation).
  `void`
  `setTabIcon(int tabIndex, String iconURL)`
  Changes the icon of a tab
  `void`
  `setTabIcon(Tab tab, String iconURL)`
  Changes the icon of a tab
  `void`
  `setTabIcon(String ID, 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(String tabID, Canvas pane)`
  Apply a new `pane` to an existing tab in this tabSet
  `void`
  `setTabPickerTitle(Tab tab, String pickerTitle)`
  Changes the title of the picker menu item of a tab
  `void`
  `setTabs(Tab... tabs)`
  An array of `Tab` objects, specifying the title and pane contents of each tab in the TabSet.
  `void`
  `setTabTitle(int tabIndex, String title)`
  Changes the title of a tab
  `void`
  `setTabTitle(Tab tab, String title)`
  Changes the title of a tab
  `void`
  `setTabTitle(String ID, String title)`
  Changes the title of a tab
  `void`
  `setTitleEditEvent(TabTitleEditEvent titleEditEvent)`
  The event that triggers title editing on this TabSet.
  `TabSet`
  `setTitleEditorLeftOffset(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.
  `TabSet`
  `setTitleEditorProperties(TextItem titleEditorProperties)`
  Properties for the auto-generated `titleEditor`.
  `TabSet`
  `setTitleEditorRightOffset(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.
  `TabSet`
  `setTitleEditorTopOffset(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.
  `TabSet`
  `setTouchPickerButtonSize(int touchPickerButtonSize)`
  The size of the tab picker button when `isTouch` is `true`.
  `TabSet`
  `setUseIOSTabs(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.
  `TabSet`
  `setUseSimpleTabs(Boolean useSimpleTabs)`
  Should we use simple button based tabs styled with CSS rather than image based `ImgTab` tabs?
  `void`
  `showTab(int tab)`
  Show a `hidden tab` at runtime.
  `void`
  `showTab(Tab tab)`
  Show a `hidden tab` at runtime.
  `void`
  `showTab(String tab)`
  Show a `hidden tab` at runtime.
  `Tab`
  `tabForPane(Canvas pane)`
  Search for a tab that contains a pane.
  `boolean`
  `tabIsVisible(int tab)`
  Is the tab `hidden or visible`?
  `boolean`
  `tabIsVisible(Tab tab)`
  Is the tab `hidden or visible`?
  `boolean`
  `tabIsVisible(String tab)`
  Is the tab `hidden or visible`?
  `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, addClearHandler, 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, addRuleContextChangedHandler, addScrolledHandler, addShowContextMenuHandler, addSnapAlignCandidate, addStyleName, addVisibilityChangedHandler, adjustForContent, animateFade, animateFade, animateFade, animateFade, animateFade, animateFade, animateFade, animateFade, animateHide, animateHide, animateHide, animateHide, animateHide, animateHide, animateHide, animateMove, animateMove, animateMove, animateMove, animateRect, animateRect, animateRect, animateRect, animateResize, animateResize, animateResize, animateResize, animateScroll, animateScroll, animateScroll, animateScroll, animateScroll, animateScroll, animateShow, animateShow, animateShow, animateShow, animateShow, animateShow, animateShow, asSGWTComponent, blur, bringToFront, clear, clearExplicitTabIndex, clickMaskUp, clickMaskUp, contains, contains, containsEvent, containsEventTarget, containsFocus, containsPoint, containsPoint, dataContextChanged, deparent, depeer, disable, doValueDictation, doVoiceCommand, enable, encloses, focus, focusAfterGroup, focusAtEnd, focusInNextTabElement, focusInPreviousTabElement, getAbsoluteLeft, getAbsoluteTop, getAccessKey, getAdaptiveHeightPriority, getAdaptiveWidthPriority, getAlwaysManageFocusNavigation, getAlwaysShowScrollbars, getAnimateAcceleration, getAnimateFadeTime, getAnimateHideAcceleration, getAnimateHideEffect, getAnimateHideTime, getAnimateMoveAcceleration, getAnimateMoveTime, getAnimateRectAcceleration, getAnimateRectTime, getAnimateResizeAcceleration, getAnimateResizeLayoutMode, getAnimateResizeTime, getAnimateScrollAcceleration, getAnimateScrollTime, getAnimateShowAcceleration, getAnimateShowEffect, getAnimateShowTime, getAnimateTime, getAppImgDir, getAriaHandleID, getAriaRole, getAriaStateDefaults, getAutoMaskComponents, getAutoParent, getAutoPopulateData, getAutoShowParent, getBackgroundColor, getBackgroundImage, getBackgroundPosition, getBackgroundRepeat, getBorder, getBorderRadius, getBottom, getById, getByJSObject, getByLocalId, getCanAcceptDrop, getCanAdaptHeight, getCanAdaptWidth, getCanDrag, getCanDragReposition, getCanDragResize, getCanDragScroll, getCanDrop, getCanDropBefore, getCanFocus, getCanHover, getCanSelectText, getCanvasAutoChild, getCanvasItem, getChildren, getChildrenAsStringArray, getChildrenResizeSnapAlign, getChildrenSnapAlign, getChildrenSnapCenterAlign, getChildrenSnapEdgeAlign, getChildrenSnapResizeToGrid, getChildrenSnapToGrid, getChildTabPosition, getClassName, getComponentMask, getComponentMaskDefaults, getContentElement, getContents, getContextMenu, getCorrectZoomOverflow, getCursor, getDataContext, getDataPath, getDefaultHeight, getDefaultWidth, getDefiningProperty, getDefiningPropertyName, getDefiningPropertyNameOptions, getDestroyed, getDestroying, getDisabled, getDisabledCursor, getDisableTouchScrollingForDrag, getDoubleClickDelay, getDragAppearance, getDragIntersectStyle, getDragMaskType, getDragMaxHeight, getDragMaxWidth, getDragMinHeight, getDragMinWidth, getDragOpacity, getDragRepositionAppearance, getDragRepositionCursor, getDragResizeAppearance, getDragScrollDelay, getDragStartDistance, getDragTarget, getDragTargetAsString, getDragType, getDropTarget, getDropTargetAsString, getDropTypes, getDropTypesAsString, getDynamicContents, getEdgeBackgroundColor, getEdgeCenterBackgroundColor, getEdgeImage, getEdgeMarginSize, getEdgeOffset, getEdgeOpacity, getEdgeShowCenter, getEdgeSize, getEditNode, getEditProxy, getElement, getElement, getEnableWhen, getEndLine, getEventEdge, getEventEdge, getExtraSpace, getFacetId, getFloatingScrollbars, getFormItemAutoChild, getForwardSVGeventsToObject, getFullDataPath, getGroupBorderCSS, getGroupLabelBackgroundColor, getGroupLabelStyleName, getGroupPadding, getGroupTitle, getHeight, getHeightAsString, getHideUsingDisplayNone, getHoverAlign, getHoverAutoDestroy, getHoverAutoFitMaxWidth, getHoverAutoFitMaxWidthAsString, getHoverAutoFitWidth, getHoverComponent, getHoverDelay, getHoverFocusKey, getHoverHeight, getHoverHTML, getHoverMoveWithMouse, getHoverOpacity, getHoverPersist, getHoverScreen, getHoverStyle, getHoverVAlign, getHoverWidth, getHoverWrap, getHSnapPosition, getHSnapPosition, getHtmlElement, getHtmlElementAsString, getHtmlPosition, getImage, getImgURL, getImgURL, getInnerContentHeight, getInnerContentWidth, getInnerHeight, getInnerWidth, getIsGroup, getIsPrinting, getIsRuleScope, getIsSnapAlignCandidate, getKeepInParentRect, getLayoutAlign, getLeaveGroupLabelSpace, getLeavePageSpace, getLeft, getLeftAsString, getLocalId, getLocateByIDOnly, getLocateChildrenBy, getLocateChildrenType, getLocatePeersBy, getLocatePeersType, getLocatorName, getMargin, getMasterCanvas, getMasterElement, getMatchElement, getMatchElementHeight, getMatchElementWidth, getMaxHeight, getMaxWidth, getMaxZoomOverflowError, getMenuConstructor, getMinHeight, getMinNonEdgeSize, getMinWidth, getMomentumScrollMinSpeed, getMouseStillDownDelay, getMouseStillDownInitialDelay, getName, getNativeAutoHideScrollbars, getNextZIndex, getNoDoubleClicks, getNoDropCursor, getOffsetHeight, getOffsetWidth, getOffsetX, getOffsetY, getOpacity, getOuterElement, getOverflow, getPadding, getPageBottom, getPageLeft, getPageRect, getPageRight, getPageTop, getPaletteDefaults, getPanelContainer, getParentCanvas, getParentCanvasAsString, getParentElement, getParentElementAsString, getPeers, getPendingMarkerStyle, getPendingMarkerVisible, getPercentBox, getPercentSource, getPersistentMatchElement, getPointerSettings, getPointerTarget, getPointerTargetAsString, getPosition, getPrefix, getPrintChildrenAbsolutelyPositioned, getPrintHTML, getPrintHTML, getPrintStyleName, getPrompt, getProportionalResizeModifiers, getProportionalResizing, getReceiveScrollbarEvents, getRect, getRedrawOnResize, getResizeBarTarget, getResizeFrom, getRight, getRuleContext, getRuleContext, getRuleScope, getScrollbarSize, getScrollBottom, getScrollHeight, getScrollLeft, getScrollRight, getScrollTop, getScrollWidth, getShadowColor, getShadowDepth, getShadowHOffset, getShadowImage, getShadowOffset, getShadowSoftness, getShadowSpread, getShadowVOffset, getShouldPrint, getShowCustomScrollbars, getShowDragShadow, getShowEdges, getShowFocusOutline, getShowHover, getShowHoverComponents, getShowPointer, getShowResizeBar, getShowShadow, getShowSnapGrid, getShrinkElementOnHide, getSizeMayChangeOnRedraw, getSnapAlignCandidates, getSnapAlignCenterLineStyle, getSnapAlignEdgeLineStyle, getSnapAxis, getSnapEdge, getSnapGridLineProperties, getSnapGridStyle, getSnapHDirection, getSnapHGap, getSnapOffsetLeft, getSnapOffsetTop, getSnapOnDrop, getSnapPosition, getSnapPosition, getSnapResizeToAlign, getSnapResizeToGrid, getSnapTo, getSnapToAlign, getSnapToCenterAlign, getSnapToEdgeAlign, getSnapToGrid, getSnapVDirection, getSnapVGap, getStartLine, getStyleName, getTabIndex, getTestDataContext, getTestInstance, getTitle, getTooltip, getTop, getTopAsString, getTopElement, getTopLevelComponents, getUpdateTabPositionOnDraw, getUpdateTabPositionOnReparent, getUseBackMask, getUseCSSShadow, getUseDragMask, getUseImageForSVG, getUseNativeDrag, getUseOpacityFilter, getUseTouchScrolling, getValuesManager, getValuesManagerAsString, getViewportHeight, getViewportWidth, getVisibility, getVisibleHeight, getVisibleWhen, getVisibleWidth, getVSnapPosition, getVSnapPosition, getWidth, getWidthAsString, getWorkflows, getZIndex, getZIndex, handleHover, hide, hideClickMask, hideClickMask, hideComponentMask, hideComponentMask, hideContextMenu, imgHTML, imgHTML, imgHTML, initComplete, intersects, isDirty, isDisabled, isFocused, isVisible, keyUp, layoutChildren, linkHTML, linkHTML, linkHTML, linkHTML, linkHTML, linkHTML, markForDestroy, markForRedraw, markForRedraw, moveAbove, moveBelow, moveBy, moveTo, onAttach, onDetach, onInit, pageScrollDown, pageScrollUp, parentResized, placeNear, placeNear, placeNear, print, print, print, print, printComponents, provideRuleContext, provideRuleContext, redraw, redraw, registerFontScaledPaddingStyles, removeChild, removeChild, removePeer, removePeer, removeRuleContext, removeSnapAlignCandidate, resizeAutoChildAttributes, resizeBy, resizeControls, resizeControlsTo, resizeFonts, resizeFonts, resizeFonts, resizeFontsTo, resizeIcons, resizePadding, resizePadding, resizeTo, resizeTo, scrollBy, scrollByPercent, scrollTo, scrollTo, scrollTo, scrollTo, scrollTo, scrollToBottom, scrollToLeft, scrollToPercent, scrollToRight, scrollToTop, sendToBack, setAccessKey, setAdaptHeightByCustomizer, setAdaptiveHeightPriority, setAdaptiveWidthPriority, setAdaptWidthByCustomizer, setAlign, setAllowExternalFilters, setAlwaysManageFocusNavigation, setAlwaysShowScrollbars, setAnimateAcceleration, setAnimateFadeTime, setAnimateHideAcceleration, setAnimateHideEffect, setAnimateHideTime, setAnimateMoveAcceleration, setAnimateMoveTime, setAnimateRectAcceleration, setAnimateRectTime, setAnimateResizeAcceleration, setAnimateResizeLayoutMode, setAnimateResizeTime, setAnimateScrollAcceleration, setAnimateScrollTime, setAnimateShowAcceleration, setAnimateShowEffect, setAnimateShowTime, setAnimateTime, setAppImgDir, setAriaRole, setAriaState, setAutoChildConstructor, setAutoChildProperties, setAutoChildProperties, setAutoChildProperties, setAutoChildProperties, setAutoChildVisibility, setAutoHeight, setAutoMaskComponents, setAutoParent, setAutoPopulateData, setAutoResizeAutoChildAttributes, setAutoResizeIcons, setAutoShowParent, setAutoWidth, setBackgroundColor, setBackgroundImage, setBackgroundPosition, setBackgroundRepeat, setBorder, setBorderRadius, setBottom, setCanAcceptDrop, setCanAdaptHeight, setCanAdaptWidth, setCanDrag, setCanDragReposition, setCanDragResize, setCanDragScroll, setCanDrop, setCanDropBefore, setCanFocus, setCanHover, setCanSelectText, setChildren, setChildrenResizeSnapAlign, setChildrenSnapAlign, setChildrenSnapCenterAlign, setChildrenSnapEdgeAlign, setChildrenSnapResizeToGrid, setChildrenSnapToGrid, setComponentMaskDefaults, setContents, setContextMenu, setCorrectZoomOverflow, setCursor, setDataContext, setDataPath, setDefaultHeight, setDefaultNativeAutoHideScrollbars, setDefaultPageSpace, setDefaultProperties, setDefaultShowCustomScrollbars, setDefaultWidth, setDefiningProperty, setDefiningPropertyNameOptions, setDisabled, setDisabledCursor, setDisableTouchScrollingForDrag, setDoubleClickDelay, setDragAppearance, setDragIntersectStyle, setDragMaskType, setDragMaxHeight, setDragMaxWidth, setDragMinHeight, setDragMinWidth, setDragOpacity, setDragRepositionAppearance, setDragRepositionCursor, setDragResizeAppearance, setDragScrollDelay, setDragStartDistance, setDragTarget, setDragTarget, setDragType, setDropTarget, setDropTarget, setDropTypes, setDropTypes, setDynamicContents, setEdgeBackgroundColor, setEdgeCenterBackgroundColor, setEdgeImage, setEdgeMarginSize, setEdgeOffset, setEdgeOpacity, setEdgeShowCenter, setEdgeSize, setEditMode, setEditMode, setEditMode, setElement, setEnableWhen, setEndLine, setExtraSpace, setFacetId, setFloatingScrollbars, setForwardSVGeventsToObject, setGroupBorderCSS, setGroupLabelBackgroundColor, setGroupLabelStyleName, setGroupPadding, setGroupTitle, setHeight, setHeight, setHeight, setHeight100, setHideUsingDisplayNone, setHoverAlign, setHoverAutoDestroy, setHoverAutoFitMaxWidth, setHoverAutoFitMaxWidth, setHoverAutoFitWidth, setHoverDelay, setHoverFocusKey, setHoverHeight, setHoverMoveWithMouse, setHoverOpacity, setHoverPersist, setHoverScreen, setHoverStyle, setHoverVAlign, setHoverWidth, setHoverWrap, setHtmlElement, setHtmlElement, setHtmlPosition, setImage, setImage, setInitHandler, setIsGroup, setIsRuleScope, setIsSnapAlignCandidate, setKeepInParentRect, setKeepInParentRect, setKeepInParentRect, setLayoutAlign, setLayoutAlign, setLeaveGroupLabelSpace, setLeavePageSpace, setLeft, setLeft, setLocateByIDOnly, setLocateChildrenBy, setLocateChildrenType, setLocatePeersBy, setLocatePeersType, setLocatorName, setLocatorParent, setLocatorParent, setLogicalStructure, setMargin, setMatchElement, setMatchElementHeight, setMatchElementWidth, setMaxHeight, setMaxWidth, setMaxZoomOverflowError, setMenuConstructor, setMinHeight, setMinNonEdgeSize, setMinWidth, setMomentumScrollMinSpeed, setMouseStillDownDelay, setMouseStillDownInitialDelay, setName, setNativeAutoHideScrollbars, setNeverUseFilters, setNoDoubleClicks, setNoDropCursor, setOpacity, setOverflow, setPadding, setPageLeft, setPageTop, setPanelContainer, setParentCanvas, setParentCanvas, setParentElement, setParentElement, setPeers, setPendingMarkerStyle, setPendingMarkerVisible, setPercentBox, setPercentSource, setPersistentMatchElement, setPointerSettings, setPointerTarget, setPosition, setPrefix, setPrintChildrenAbsolutelyPositioned, setPrintStyleName, setPrompt, setProportionalResizeModifiers, setProportionalResizing, setReceiveScrollbarEvents, setRect, setRect, setRedrawOnResize, setRelativeTabPosition, setResizeBarTarget, setResizeFrom, setResizeFrom, setRight, setRuleScope, setScrollbarConstructor, setScrollbarSize, setShadowColor, setShadowDepth, setShadowHOffset, setShadowImage, setShadowOffset, setShadowSoftness, setShadowSpread, setShadowVOffset, setShouldPrint, setShowCustomScrollbars, setShowDragShadow, setShowEdges, setShowFocusOutline, setShowHover, setShowHoverComponents, setShowPointer, setShowResizeBar, setShowShadow, setShowSnapGrid, setShrinkElementOnHide, setSizeMayChangeOnRedraw, setSmoothFade, setSnapAlignCandidates, setSnapAlignCenterLineStyle, setSnapAlignEdgeLineStyle, setSnapAxis, setSnapEdge, setSnapGridLineProperties, setSnapGridStyle, setSnapHDirection, setSnapHGap, setSnapOffsetLeft, setSnapOffsetTop, setSnapOnDrop, setSnapResizeToAlign, setSnapResizeToGrid, setSnapTo, setSnapToAlign, setSnapToCenterAlign, setSnapToEdgeAlign, setSnapToGrid, setSnapVDirection, setSnapVGap, setStartLine, setStyleName, setTabIndex, setTestDataContext, setTitle, setTooltip, setTop, setTop, setUpdateTabPositionOnDraw, setUpdateTabPositionOnReparent, setUseBackMask, setUseCSSShadow, setUseDragMask, setUseImageForSVG, setUseNativeDrag, setUseOpacityFilter, setUseTouchScrolling, setValuesManager, setValuesManager, setVisibility, setVisible, setVisibleWhen, setWidth, setWidth, setWidth, setWidth100, setWorkflows, setZIndex, shouldDragScroll, show, showClickMask, showComponentMask, showComponentMask, showNextTo, showNextTo, showNextTo, showNextTo, showPendingMarker, showPrintPreview, showPrintPreview, showPrintPreview, showPrintPreview, showRecursively, startDebuggingOverflow, stopDebuggingOverflow, supportsValueDictation, supportsVoiceCommands, updateChildTabPosition, updateChildTabPositions, updateEditNode, updateHover, updateHover, updateShadow, updateTabPositionForDraw, visibleAtPoint, willAcceptDrop`

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

  `addDrawHandler, addDynamicProperty, addDynamicProperty, addDynamicProperty, addDynamicProperty, applyFactoryProperties, clearDynamicProperty, completeCreation, destroy, doAddHandler, doInit, doOnRender, draw, equals, error, errorIfNotCreated, getAttribute, getAttributeAsBoolean, getAttributeAsDate, getAttributeAsDateArray, getAttributeAsDouble, getAttributeAsElement, getAttributeAsFloat, getAttributeAsFloatArray, getAttributeAsInt, getAttributeAsIntArray, getAttributeAsJavaScriptObject, getAttributeAsMap, getAttributeAsObject, getAttributeAsRecord, getAttributeAsString, getAttributeAsStringArray, getAutoDraw, getConfig, getDOM, getHandlerCount, getID, getInnerHTML, getJsObj, getOrCreateJsObj, getRef, getScClassName, hasAutoAssignedID, hasDynamicProperty, hashCode, initNativeObject, internalSetID, internalSetID, isConfigOnly, isCreated, isDrawn, isFactoryCreated, onBind, onDestroy, onDraw, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAttribute, setAutoDraw, setConfig, setConfigOnly, setDefaultProperties, setDragTracker, setFactoryCreated, setID, setJavaScriptObject, setLogicalStructure, 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, unsinkEvents`

  ### 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`

  ### 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 Details

  - ### TabSet

    public TabSet()

  - ### TabSet

    public TabSet(JavaScriptObject jsObj)

- ## Method Details

  - ### getOrCreateRef

    public static TabSet getOrCreateRef(JavaScriptObject jsObj)

  - ### changeAutoChildDefaults

    public static void changeAutoChildDefaults(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. For usage tips on this param, see `SGWTProperties`.
    See Also:
      - `AutoChildUsage`

  - ### changeAutoChildDefaults

    public static void changeAutoChildDefaults(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. For usage tips on this param, see `SGWTProperties`.
    See Also:
      - `AutoChildUsage`

  - ### create

    protected JavaScriptObject create()
    Overrides:
      `create` in class `Canvas`

  - ### getAddTabButton

    public ImgButton getAddTabButton() throws IllegalStateException
    Appears when `canAddTabs` is enabled.

    This component is an AutoChild named "addTabButton". For an overview of how to use and configure AutoChildren, see `Using AutoChildren`.

    Returns:
      Current addTabButton value. Default value is null
    Throws:
      `IllegalStateException` - if this widget has not yet been rendered.

  - ### setAddTabButtonIcon

    public TabSet setAddTabButtonIcon(String addTabButtonIcon) throws IllegalStateException
    Icon for the `addTabButton`.
    Parameters:
      `addTabButtonIcon` - New addTabButtonIcon value. Default value is "[SKIN]actions/add.png"
    Returns:
      `TabSet` instance, for chaining setter calls
    Throws:
      `IllegalStateException` - this property cannot be changed after the component has been created
    See Also:
      - `SCImgURL`

  - ### getAddTabButtonIcon

    public String getAddTabButtonIcon()
    Icon for the `addTabButton`.
    Returns:
      Current addTabButtonIcon value. Default value is "[SKIN]actions/add.png"
    See Also:
      - `SCImgURL`

  - ### setAnimateTabScrolling

    public TabSet setAnimateTabScrolling(Boolean animateTabScrolling) throws IllegalStateException
    If `showTabScroller` is true, should tabs be scrolled into view via an animation when the user interacts with the scroller buttons?
    Parameters:
      `animateTabScrolling` - New animateTabScrolling value. Default value is true
    Returns:
      `TabSet` instance, for chaining setter calls
    Throws:
      `IllegalStateException` - this property cannot be changed after the component has been created

  - ### getAnimateTabScrolling

    public Boolean getAnimateTabScrolling()
    If `showTabScroller` is true, should tabs be scrolled into view via an animation when the user interacts with the scroller buttons?
    Returns:
      Current animateTabScrolling value. Default value is true

  - ### setAriaCloseableSuffix

    public TabSet setAriaCloseableSuffix(String ariaCloseableSuffix) throws IllegalStateException
    When `screen reader mode` is enabled and a tab is `closeable`, the `ariaCloseableSuffix` is a string that is appended to the label of closeable tabs. This suffix is hidden from sighted users, but is announced by screen readers to indicate that the tab may be closed.

    Set to `null` to disable appending this suffix.

    Note : This is an advanced setting

    Parameters:
      `ariaCloseableSuffix` - New ariaCloseableSuffix value. Default value is ", closeable"
    Returns:
      `TabSet` instance, for chaining setter calls
    Throws:
      `IllegalStateException` - this property cannot be changed after the component has been created

  - ### getAriaCloseableSuffix

    public String getAriaCloseableSuffix()
    When `screen reader mode` is enabled and a tab is `closeable`, the `ariaCloseableSuffix` is a string that is appended to the label of closeable tabs. This suffix is hidden from sighted users, but is announced by screen readers to indicate that the tab may be closed.

    Set to `null` to disable appending this suffix.

    Returns:
      Current ariaCloseableSuffix value. Default value is ", closeable"

  - ### setCanAddTabs

    public TabSet setCanAddTabs(Boolean canAddTabs) throws IllegalStateException
    Causes the `addTabButton` to appear after the `tabs` and before the `tabBarControls`.

    There is no default behavior for what happens when the `addTabButton` is clicked. Add a handler for the `TabSet.addTabClick()` event to implement a behavior.

    Parameters:
      `canAddTabs` - New canAddTabs value. Default value is null
    Returns:
      `TabSet` instance, for chaining setter calls
    Throws:
      `IllegalStateException` - this property cannot be changed after the component has been created

  - ### getCanAddTabs

    public Boolean getCanAddTabs()
    Causes the `addTabButton` to appear after the `tabs` and before the `tabBarControls`.

    There is no default behavior for what happens when the `addTabButton` is clicked. Add a handler for the `TabSet.addTabClick()` event to implement a behavior.

    Returns:
      Current canAddTabs value. Default value is null

  - ### setCanCloseTabs

    public TabSet setCanCloseTabs(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 `Tab.canClose`.

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

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

             tab.setTitle("<span>" + Canvas.imgHTML("path/to/icon.png") + " Tab Title</span>");

    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
    Returns:
      `TabSet` instance, for chaining setter calls
    See Also:
      - `com.smartgwt.client.widgets.tab.TabSet#closeClick`

  - ### getCanCloseTabs

    public 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 `Tab.canClose`.

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

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

             tab.setTitle("<span>" + Canvas.imgHTML("path/to/icon.png") + " Tab Title</span>");

    Returns:
      Current canCloseTabs value. Default value is null
    See Also:
      - `com.smartgwt.client.widgets.tab.TabSet#closeClick`

  - ### setCanEditTabTitles

    public TabSet setCanEditTabTitles(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 `Tab.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` - New canEditTabTitles value. Default value is false
    Returns:
      `TabSet` instance, for chaining setter calls
    See Also:
      - User-Editable Titles Example

  - ### getCanEditTabTitles

    public 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 `Tab.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:
      Current canEditTabTitles value. Default value is false
    See Also:
      - User-Editable Titles Example

  - ### setCanReorderTabs

    public TabSet setCanReorderTabs(Boolean canReorderTabs) throws IllegalStateException
    If true, tabs can be reordered by dragging on them.

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

    Parameters:
      `canReorderTabs` - New canReorderTabs value. Default value is null
    Returns:
      `TabSet` instance, for chaining setter calls
    Throws:
      `IllegalStateException` - this property cannot be changed after the component has been created
    See Also:
      - `Drag and Drop`

  - ### getCanReorderTabs

    public Boolean getCanReorderTabs()
    If true, tabs can be reordered by dragging on them.

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

    Returns:
      Current canReorderTabs value. Default value is null
    See Also:
      - `Drag and Drop`

  - ### setCloseTabIcon

    public TabSet setCloseTabIcon(String closeTabIcon) throws IllegalStateException
    Default src for the close icon for tabs to display if `canCloseTabs` is true.
    Parameters:
      `closeTabIcon` - New closeTabIcon value. Default value is [SKIN]/TabSet/close.png
    Returns:
      `TabSet` instance, for chaining setter calls
    Throws:
      `IllegalStateException` - this property cannot be changed after the component has been created
    See Also:
      - `SCImgURL`
      - `Appearance overview and related methods`

  - ### getCloseTabIcon

    public String getCloseTabIcon()
    Default src for the close icon for tabs to display if `canCloseTabs` is true.
    Returns:
      Current closeTabIcon value. Default value is [SKIN]/TabSet/close.png
    See Also:
      - `SCImgURL`
      - `Appearance overview and related methods`

  - ### setCloseTabIconSize

    public TabSet setCloseTabIconSize(int closeTabIconSize) throws IllegalStateException
    Size in pixels of the icon for closing tabs, displayed when `canCloseTabs` is true.
    Parameters:
      `closeTabIconSize` - New closeTabIconSize value. Default value is 16
    Returns:
      `TabSet` instance, for chaining setter calls
    Throws:
      `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:
      Current closeTabIconSize value. Default value is 16

  - ### setDefaultTabHeight

    public TabSet setDefaultTabHeight(Integer defaultTabHeight) throws 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` - New defaultTabHeight value. Default value is null
    Returns:
      `TabSet` instance, for chaining setter calls
    Throws:
      `IllegalStateException` - this property cannot be changed after the component has been created

  - ### getDefaultTabHeight

    public 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:
      Current defaultTabHeight value. Default value is null

  - ### setDefaultTabWidth

    public TabSet setDefaultTabWidth(Integer defaultTabWidth) throws 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` - New defaultTabWidth value. Default value is null
    Returns:
      `TabSet` instance, for chaining setter calls
    Throws:
      `IllegalStateException` - this property cannot be changed after the component has been created

  - ### getDefaultTabWidth

    public 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:
      Current defaultTabWidth value. Default value is null

  - ### setDestroyPanes

    public TabSet setDestroyPanes(Boolean destroyPanes) throws IllegalStateException
    Whether `destroy()` should be called on `Tab.pane` when it a tab is removed via `removeTab()`.

    With the default setting of `null` panes will be automatically destroyed. 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` - New destroyPanes value. Default value is null
    Returns:
      `TabSet` instance, for chaining setter calls
    Throws:
      `IllegalStateException` - this property cannot be changed after the component has been created

  - ### getDestroyPanes

    public Boolean getDestroyPanes()
    Whether `destroy()` should be called on `Tab.pane` when it a tab is removed via `removeTab()`.

    With the default setting of `null` panes will be automatically destroyed. An application might set this to false in order to re-use panes in different tabs or in different parts of the application.

    Returns:
      Current destroyPanes value. Default value is null

  - ### setEditProxyConstructor

    public TabSet setEditProxyConstructor(String editProxyConstructor) throws IllegalStateException
    Default class used to construct the `EditProxy` for this component when the component is `first placed into edit mode`.
    Overrides:
      `setEditProxyConstructor` in class `Canvas`
    Parameters:
      `editProxyConstructor` - New editProxyConstructor value. Default value is "TabSetEditProxy"
    Returns:
      `TabSet` instance, for chaining setter calls
    Throws:
      `IllegalStateException` - this property cannot be changed after the component has been created
    See Also:
      - `SCClassName`

  - ### getEditProxyConstructor

    public String getEditProxyConstructor()
    Default class used to construct the `EditProxy` for this component when the component is `first placed into edit mode`.
    Overrides:
      `getEditProxyConstructor` in class `Canvas`
    Returns:
      Current editProxyConstructor value. Default value is "TabSetEditProxy"
    See Also:
      - `SCClassName`

  - ### setLocateTabsBy

    public TabSet setLocateTabsBy(String locateTabsBy)
    When `AutoTest.getElement()` is used to parse locator strings generated by `AutoTest.getLocator()`, how should tabs within this tabset be identified? If the locator has a specified `Tab.ID` or `Tab.name`, no fallback approach will be used as those attributes (with `Tab.ID` having priority) are each alone considered to definitively locate it.

    Otherwise, 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 locator has no specified ID or name, default behavior is to identify by title (if available), otherwise by index.

    Note : This is an advanced setting

    Parameters:
      `locateTabsBy` - New locateTabsBy value. Default value is null
    Returns:
      `TabSet` instance, for chaining setter calls
    See Also:
      - `LocatorStrategy`

  - ### getLocateTabsBy

    public String getLocateTabsBy()
    When `AutoTest.getElement()` is used to parse locator strings generated by `AutoTest.getLocator()`, how should tabs within this tabset be identified? If the locator has a specified `Tab.ID` or `Tab.name`, no fallback approach will be used as those attributes (with `Tab.ID` having priority) are each alone considered to definitively locate it.

    Otherwise, 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 locator has no specified ID or name, default behavior is to identify by title (if available), otherwise by index.

    Returns:
      Current locateTabsBy value. Default value is null
    See Also:
      - `LocatorStrategy`

  - ### getMoreTab

    public Tab getMoreTab() throws IllegalStateException
    `Tab` to be shown when `showMoreTab` is enabled more than `moreTabCount` tabs are provided.

    This component is an AutoChild named "moreTab". For an overview of how to use and configure AutoChildren, see `Using AutoChildren`.

    Returns:
      Current moreTab value. Default value is null
    Throws:
      `IllegalStateException` - if this widget has not yet been rendered.

  - ### setMoreTabCount

    public TabSet setMoreTabCount(int moreTabCount) throws 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` - New moreTabCount value. Default value is 5
    Returns:
      `TabSet` instance, for chaining setter calls
    Throws:
      `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:
      Current moreTabCount value. Default value is 5

  - ### setMoreTabImage

    public TabSet setMoreTabImage(String moreTabImage) throws IllegalStateException
    If `showMoreTab` is enabled this property determines the image to display on the "More" tab button.
    Parameters:
      `moreTabImage` - New moreTabImage value. Default value is "[SKINIMG]/iOS/more.png"
    Returns:
      `TabSet` instance, for chaining setter calls
    Throws:
      `IllegalStateException` - this property cannot be changed after the component has been created
    See Also:
      - `SCImgURL`

  - ### getMoreTabImage

    public String getMoreTabImage()
    If `showMoreTab` is enabled this property determines the image to display on the "More" tab button.
    Returns:
      Current moreTabImage value. Default value is "[SKINIMG]/iOS/more.png"
    See Also:
      - `SCImgURL`

  - ### getMoreTabPane

    public VLayout getMoreTabPane() throws IllegalStateException
    Pane contents for the "more" tab based on a VLayout. Typically contains a `NavigationBar` and `TableView`.

    This component is an AutoChild named "moreTabPane". For an overview of how to use and configure AutoChildren, see `Using AutoChildren`.

    Returns:
      Current moreTabPane value. Default value is null
    Throws:
      `IllegalStateException` - if this widget has not yet been rendered.

  - ### setMoreTabPaneDefaults

    public TabSet setMoreTabPaneDefaults(Canvas moreTabPaneDefaults) throws IllegalStateException
    Default properties for the "more" tab's pane.

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

    Parameters:
      `moreTabPaneDefaults` - New moreTabPaneDefaults value. Default value is null
    Returns:
      `TabSet` instance, for chaining setter calls
    Throws:
      `IllegalStateException` - this property cannot be changed after the component has been created
    See Also:
      - `SGWTProperties`

  - ### getMoreTabPaneDefaults

    public Canvas getMoreTabPaneDefaults()
    Default properties for the "more" tab's pane.

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

    Returns:
      Current moreTabPaneDefaults value. Default value is null

  - ### getMoreTabPaneNavBar

    public NavigationBar getMoreTabPaneNavBar() throws IllegalStateException
    Navigation bar shown in the `moreTabPane`;

    This component is an AutoChild named "moreTabPaneNavBar". For an overview of how to use and configure AutoChildren, see `Using AutoChildren`.

    Returns:
      Current moreTabPaneNavBar value. Default value is null
    Throws:
      `IllegalStateException` - if this widget has not yet been rendered.

  - ### setMoreTabPaneProperties

    public TabSet setMoreTabPaneProperties(Canvas moreTabPaneProperties) throws IllegalStateException
    Properties to apply to the "more" tab's pane created by this TabSet.
    Parameters:
      `moreTabPaneProperties` - New moreTabPaneProperties value. Default value is null
    Returns:
      `TabSet` instance, for chaining setter calls
    Throws:
      `IllegalStateException` - this property cannot be changed after the component has been created
    See Also:
      - `SGWTProperties`

  - ### getMoreTabPaneProperties

    public Canvas getMoreTabPaneProperties()
    Properties to apply to the "more" tab's pane created by this TabSet.
    Returns:
      Current moreTabPaneProperties value. Default value is null

  - ### getMoreTabPaneTable

    public TableView getMoreTabPaneTable() throws IllegalStateException
    `TableView` used to show links to other tabs in the `moreTabPane`;

    This component is an AutoChild named "moreTabPaneTable". For an overview of how to use and configure AutoChildren, see `Using AutoChildren`.

    Returns:
      Current moreTabPaneTable value. Default value is null
    Throws:
      `IllegalStateException` - if this widget has not yet been rendered.

  - ### setMoreTabProperties

    public TabSet setMoreTabProperties(Tab moreTabProperties) throws IllegalStateException
    Properties to apply to the "more" tab created by this TabSet.
    Parameters:
      `moreTabProperties` - New moreTabProperties value. Default value is null
    Returns:
      `TabSet` instance, for chaining setter calls
    Throws:
      `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:
      Current moreTabProperties value. Default value is null

  - ### setMoreTabTitle

    public TabSet setMoreTabTitle(String moreTabTitle) throws IllegalStateException
    Title for the "More" tab.
    Parameters:
      `moreTabTitle` - New moreTabTitle value. Default value is "More"
    Returns:
      `TabSet` instance, for chaining setter calls
    Throws:
      `IllegalStateException` - this property cannot be changed after the component has been created

  - ### getMoreTabTitle

    public String getMoreTabTitle()
    Title for the "More" tab.
    Returns:
      Current moreTabTitle value. Default value is "More"

  - ### getPaneContainer

    public VLayout getPaneContainer() throws IllegalStateException
    Container where the component specified by `Tab.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 `TabBar.baseLineCapSize` and `TabBar.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.

    This component is an AutoChild named "paneContainer". For an overview of how to use and configure AutoChildren, see `Using AutoChildren`.

    Returns:
      Current paneContainer value. Default value is null
    Throws:
      `IllegalStateException` - if this widget has not yet been rendered.

  - ### setPaneContainerClassName

    public TabSet setPaneContainerClassName(String paneContainerClassName)
    CSS style used for the paneContainer.
    Parameters:
      `paneContainerClassName` - New paneContainerClassName value. Default value is null
    Returns:
      `TabSet` instance, for chaining setter calls
    See Also:
      - `CSSStyleName`
      - `Appearance overview and related methods`

  - ### getPaneContainerClassName

    public String getPaneContainerClassName()
    CSS style used for the paneContainer.
    Returns:
      Current paneContainerClassName value. Default value is null
    See Also:
      - `CSSStyleName`
      - `Appearance overview and related methods`

  - ### setPaneContainerOverflow

    public TabSet 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
    Returns:
      `TabSet` instance, for chaining setter calls

  - ### 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:
      Current paneContainerOverflow value. Default value is Canvas.AUTO

  - ### setPaneMargin

    public TabSet setPaneMargin(int paneMargin) throws IllegalStateException
    Space to leave around the panes in our paneContainer

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

    Parameters:
      `paneMargin` - New paneMargin value. Default value is 0
    Returns:
      `TabSet` instance, for chaining setter calls
    Throws:
      `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 `Tab.paneMargin`.

    Returns:
      Current paneMargin value. Default value is 0

  - ### setPickerButtonHSrc

    public TabSet setPickerButtonHSrc(String pickerButtonHSrc) throws 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` - New pickerButtonHSrc value. Default value is "[SKIN]hpicker.gif"
    Returns:
      `TabSet` instance, for chaining setter calls
    Throws:
      `IllegalStateException` - this property cannot be changed after the component has been created
    See Also:
      - `setSymmetricPickerButton(java.lang.Boolean)`
      - `SCImgURL`

  - ### getPickerButtonHSrc

    public 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:
      Current pickerButtonHSrc value. Default value is "[SKIN]hpicker.gif"
    See Also:
      - `getSymmetricPickerButton()`
      - `SCImgURL`

  - ### setPickerButtonSize

    public TabSet setPickerButtonSize(int pickerButtonSize) throws IllegalStateException
    If `showTabPicker` is `true` and `isTouch` is `false`, this property governs the size of the tab picker button. This value is applied as the width of the tab picker button if the `tabBar` is horizontal, or the height if the `tabBar` is vertical. Note that the other dimension is determined by `this.tabBarThickness`.

    On touch browsers (where `isTouch` is `true`), `touchPickerButtonSize` is used instead.

    Parameters:
      `pickerButtonSize` - New pickerButtonSize value. Default value is 16
    Returns:
      `TabSet` instance, for chaining setter calls
    Throws:
      `IllegalStateException` - this property cannot be changed after the component has been created

  - ### getPickerButtonSize

    public int getPickerButtonSize()
    If `showTabPicker` is `true` and `isTouch` is `false`, this property governs the size of the tab picker button. This value is applied as the width of the tab picker button if the `tabBar` is horizontal, or the height if the `tabBar` is vertical. Note that the other dimension is determined by `this.tabBarThickness`.

    On touch browsers (where `isTouch` is `true`), `touchPickerButtonSize` is used instead.

    Returns:
      Current pickerButtonSize value. Default value is 16

  - ### setPickerButtonSrc

    public TabSet setPickerButtonSrc(String pickerButtonSrc) throws 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` - New pickerButtonSrc value. Default value is "[SKIN]/picker.gif"
    Returns:
      `TabSet` instance, for chaining setter calls
    Throws:
      `IllegalStateException` - this property cannot be changed after the component has been created
    See Also:
      - `setSymmetricPickerButton(java.lang.Boolean)`
      - `SCImgURL`

  - ### getPickerButtonSrc

    public 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:
      Current pickerButtonSrc value. Default value is "[SKIN]/picker.gif"
    See Also:
      - `getSymmetricPickerButton()`
      - `SCImgURL`

  - ### setPickerButtonVSrc

    public TabSet setPickerButtonVSrc(String pickerButtonVSrc) throws 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` - New pickerButtonVSrc value. Default value is "[SKIN]vpicker.gif"
    Returns:
      `TabSet` instance, for chaining setter calls
    Throws:
      `IllegalStateException` - this property cannot be changed after the component has been created
    See Also:
      - `setSymmetricPickerButton(java.lang.Boolean)`
      - `SCImgURL`

  - ### getPickerButtonVSrc

    public 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:
      Current pickerButtonVSrc value. Default value is "[SKIN]vpicker.gif"
    See Also:
      - `getSymmetricPickerButton()`
      - `SCImgURL`

  - ### getScroller

    public StretchImgButton getScroller() throws 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.

    This component is an AutoChild named "scroller". For an overview of how to use and configure AutoChildren, see `Using AutoChildren`.

    Returns:
      Current scroller value. Default value is null
    Throws:
      `IllegalStateException` - if this widget has not yet been rendered.

  - ### setScrollerButtonSize

    public TabSet setScrollerButtonSize(int scrollerButtonSize) throws 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` - New scrollerButtonSize value. Default value is 16
    Returns:
      `TabSet` instance, for chaining setter calls
    Throws:
      `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:
      Current scrollerButtonSize value. Default value is 16

  - ### setScrollerHSrc

    public TabSet setScrollerHSrc(String scrollerHSrc) throws 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` - New scrollerHSrc value. Default value is "[SKIN]hscroll.gif"
    Returns:
      `TabSet` instance, for chaining setter calls
    Throws:
      `IllegalStateException` - this property cannot be changed after the component has been created
    See Also:
      - `setSymmetricScroller(java.lang.Boolean)`
      - `SCImgURL`

  - ### getScrollerHSrc

    public 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:
      Current scrollerHSrc value. Default value is "[SKIN]hscroll.gif"
    See Also:
      - `getSymmetricScroller()`
      - `SCImgURL`

  - ### setScrollerSrc

    public TabSet setScrollerSrc(String scrollerSrc) throws 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` - New scrollerSrc value. Default value is "[SKIN]/scroll.gif"
    Returns:
      `TabSet` instance, for chaining setter calls
    Throws:
      `IllegalStateException` - this property cannot be changed after the component has been created
    See Also:
      - `setSymmetricScroller(java.lang.Boolean)`
      - `SCImgURL`

  - ### getScrollerSrc

    public 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:
      Current scrollerSrc value. Default value is "[SKIN]/scroll.gif"
    See Also:
      - `getSymmetricScroller()`
      - `SCImgURL`

  - ### setScrollerVSrc

    public TabSet setScrollerVSrc(String scrollerVSrc) throws 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` - New scrollerVSrc value. Default value is "[SKIN]vscroll.gif"
    Returns:
      `TabSet` instance, for chaining setter calls
    Throws:
      `IllegalStateException` - this property cannot be changed after the component has been created
    See Also:
      - `setSymmetricScroller(java.lang.Boolean)`
      - `SCImgURL`

  - ### getScrollerVSrc

    public 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:
      Current scrollerVSrc value. Default value is "[SKIN]vscroll.gif"
    See Also:
      - `getSymmetricScroller()`
      - `SCImgURL`

  - ### setShowMoreTab

    public TabSet setShowMoreTab(Boolean showMoreTab) throws 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` - New showMoreTab value. Default value is null
    Returns:
      `TabSet` instance, for chaining setter calls
    Throws:
      `IllegalStateException` - this property cannot be changed after the component has been created

  - ### getShowMoreTab

    public 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:
      Current showMoreTab value. Default value is null

  - ### setShowPaneContainerEdges

    public TabSet setShowPaneContainerEdges(Boolean showPaneContainerEdges)
    Should the paneContainer for this tabset show `edges`.

    Note : This is an advanced setting

    Parameters:
      `showPaneContainerEdges` - New showPaneContainerEdges value. Default value is null
    Returns:
      `TabSet` instance, for chaining setter calls

  - ### getShowPaneContainerEdges

    public Boolean getShowPaneContainerEdges()
    Should the paneContainer for this tabset show `edges`.
    Returns:
      Current showPaneContainerEdges value. Default value is null

  - ### setShowPartialEdges

    public TabSet setShowPartialEdges(Boolean showPartialEdges) throws 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` - New showPartialEdges value. Default value is false
    Returns:
      `TabSet` instance, for chaining setter calls
    Throws:
      `IllegalStateException` - this property cannot be changed after the component has been created

  - ### getShowPartialEdges

    public 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:
      Current showPartialEdges value. Default value is false

  - ### setShowTabBar

    public TabSet setShowTabBar(Boolean showTabBar)
    Should the tabBar be displayed or not If shrinkElementOnHide is true, the paneContainer will expand over the space occupied by TabBar
    Parameters:
      `showTabBar` - New showTabBar value. Default value is true
    Returns:
      `TabSet` instance, for chaining setter calls

  - ### getShowTabBar

    public Boolean getShowTabBar()
    Should the tabBar be displayed or not If shrinkElementOnHide is true, the paneContainer will expand over the space occupied by TabBar
    Returns:
      Current showTabBar value. Default value is true

  - ### setShowTabPicker

    public TabSet setShowTabPicker(Boolean showTabPicker) throws 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` - New showTabPicker value. Default value is true
    Returns:
      `TabSet` instance, for chaining setter calls
    Throws:
      `IllegalStateException` - this property cannot be changed after the component has been created

  - ### getShowTabPicker

    public 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:
      Current showTabPicker value. Default value is true

  - ### setShowTabScroller

    public TabSet setShowTabScroller(Boolean showTabScroller) throws IllegalStateException
    If there is not enough space to display all the tab-buttons in this tabSet, should scroll buttons be displayed to allow access to tabs that are clipped? If unset, defaults to false for `handsets` and true otherwise.
    Parameters:
      `showTabScroller` - New showTabScroller value. Default value is null
    Returns:
      `TabSet` instance, for chaining setter calls
    Throws:
      `IllegalStateException` - this property cannot be changed after the component has been created

  - ### getShowTabScroller

    public Boolean getShowTabScroller()
    If there is not enough space to display all the tab-buttons in this tabSet, should scroll buttons be displayed to allow access to tabs that are clipped? If unset, defaults to false for `handsets` and true otherwise.
    Returns:
      Current showTabScroller value. Default value is null

  - ### setSimpleTabBaseStyle

    public TabSet setSimpleTabBaseStyle(String simpleTabBaseStyle)
    If `useSimpleTabs` is true, `simpleTabBaseStyle` 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` - New simpleTabBaseStyle value. Default value is "tabButton"
    Returns:
      `TabSet` instance, for chaining setter calls
    See Also:
      - `Button.setBaseStyle(java.lang.String)`
      - `setSimpleTabIconOnlyBaseStyle(java.lang.String)`
      - `CSSStyleName`
      - `Appearance overview and related methods`

  - ### getSimpleTabBaseStyle

    public String getSimpleTabBaseStyle()
    If `useSimpleTabs` is true, `simpleTabBaseStyle` 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:
      Current simpleTabBaseStyle value. Default value is "tabButton"
    See Also:
      - `Button.getBaseStyle()`
      - `getSimpleTabIconOnlyBaseStyle()`
      - `CSSStyleName`
      - `Appearance overview and related methods`

  - ### setSimpleTabIconOnlyBaseStyle

    public TabSet setSimpleTabIconOnlyBaseStyle(String simpleTabIconOnlyBaseStyle)
    If `useSimpleTabs` is true, `simpleTabIconOnlyBaseStyle` will be the base style used to determine the css style to apply to the tabs if `Tab.canAdaptWidth` is set and the title is not being shown.

    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 "iconOnlyTabButtonTopOver".

    Note that this property is only defined for certain skins, where it's needed. If not defined, `simpleTabBaseStyle` will serve as base style whether or not the title is hidden.

    Parameters:
      `simpleTabIconOnlyBaseStyle` - New simpleTabIconOnlyBaseStyle value. Default value is varies
    Returns:
      `TabSet` instance, for chaining setter calls
    See Also:
      - `Button.setBaseStyle(java.lang.String)`
      - `Button.setIconOnlyBaseStyle(java.lang.String)`
      - `setSimpleTabBaseStyle(java.lang.String)`
      - `CSSStyleName`

  - ### getSimpleTabIconOnlyBaseStyle

    public String getSimpleTabIconOnlyBaseStyle()
    If `useSimpleTabs` is true, `simpleTabIconOnlyBaseStyle` will be the base style used to determine the css style to apply to the tabs if `Tab.canAdaptWidth` is set and the title is not being shown.

    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 "iconOnlyTabButtonTopOver".

    Note that this property is only defined for certain skins, where it's needed. If not defined, `simpleTabBaseStyle` will serve as base style whether or not the title is hidden.

    Returns:
      Current simpleTabIconOnlyBaseStyle value. Default value is varies
    See Also:
      - `Button.getBaseStyle()`
      - `Button.getIconOnlyBaseStyle()`
      - `getSimpleTabBaseStyle()`
      - `CSSStyleName`

  - ### setSkinImgDir

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

  - ### getSkinImgDir

    public String getSkinImgDir()
    Default directory for skin images (those defined by the class), relative to the Page-wide `skinDir`.
    Overrides:
      `getSkinImgDir` in class `Canvas`
    Returns:
      Current skinImgDir value. Default value is "images/TabSet/"
    See Also:
      - `SCImgURL`
      - `Images overview and related methods`

  - ### setSymmetricEdges

    public TabSet setSymmetricEdges(Boolean symmetricEdges) throws 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` - New symmetricEdges value. Default value is true
    Returns:
      `TabSet` instance, for chaining setter calls
    Throws:
      `IllegalStateException` - this property cannot be changed after the component has been created
    See Also:
      - `Appearance overview and related methods`

  - ### getSymmetricEdges

    public 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:
      Current symmetricEdges value. Default value is true
    See Also:
      - `Appearance overview and related methods`

  - ### setSymmetricPickerButton

    public TabSet setSymmetricPickerButton(Boolean symmetricPickerButton) throws 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` - New symmetricPickerButton value. Default value is true
    Returns:
      `TabSet` instance, for chaining setter calls
    Throws:
      `IllegalStateException` - this property cannot be changed after the component has been created

  - ### getSymmetricPickerButton

    public 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:
      Current symmetricPickerButton value. Default value is true

  - ### setSymmetricScroller

    public TabSet setSymmetricScroller(Boolean symmetricScroller) throws 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` - New symmetricScroller value. Default value is true
    Returns:
      `TabSet` instance, for chaining setter calls
    Throws:
      `IllegalStateException` - this property cannot be changed after the component has been created

  - ### getSymmetricScroller

    public 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:
      Current symmetricScroller value. Default value is true

  - ### getTabBar

    public TabBar getTabBar() throws IllegalStateException
    TabBar for this TabSet, an instance of `TabBar`.

    This component is an AutoChild named "tabBar". For an overview of how to use and configure AutoChildren, see `Using AutoChildren`.

    Returns:
      Current tabBar value. Default value is null
    Throws:
      `IllegalStateException` - if this widget has not yet been rendered.

  - ### setTabBarAlign

    public TabSet setTabBarAlign(Side tabBarAlign)
    Alignment of the tabBar.

    If the `tabBarPosition` is "top" or "bottom", then this attribute may be set to "left", "right" or "center". The default is "left", or "right" in `RTL mode`.

    If the `tabBarPosition` is "left" or "right", then this attribute may be set to "top", "bottom" or "center". The default is "top".

    Parameters:
      `tabBarAlign` - New tabBarAlign value. Default value is see below
    Returns:
      `TabSet` instance, for chaining setter calls
    See Also:
      - Align Example

  - ### getTabBarAlign

    public Side getTabBarAlign()
    Alignment of the tabBar.

    If the `tabBarPosition` is "top" or "bottom", then this attribute may be set to "left", "right" or "center". The default is "left", or "right" in `RTL mode`.

    If the `tabBarPosition` is "left" or "right", then this attribute may be set to "top", "bottom" or "center". The default is "top".

    Returns:
      Current tabBarAlign value. Default value is see below
    See Also:
      - Align Example

  - ### setTabBarAlign

    public TabSet setTabBarAlign(Alignment tabBarAlign)
    Alignment of the tabBar.

    If the `tabBarPosition` is "top" or "bottom", then this attribute may be set to "left", "right" or "center". The default is "left", or "right" in `RTL mode`.

    If the `tabBarPosition` is "left" or "right", then this attribute may be set to "top", "bottom" or "center". The default is "top".

    Parameters:
      `tabBarAlign` - New tabBarAlign value. Default value is see below
    Returns:
      `TabSet` instance, for chaining setter calls
    See Also:
      - Align Example

  - ### getTabBarAlignAsAlignment

    public Alignment getTabBarAlignAsAlignment()
    Alignment of the tabBar.

    If the `tabBarPosition` is "top" or "bottom", then this attribute may be set to "left", "right" or "center". The default is "left", or "right" in `RTL mode`.

    If the `tabBarPosition` is "left" or "right", then this attribute may be set to "top", "bottom" or "center". The default is "top".

    Returns:
      Current tabBarAlign value. Default value is see below
    See Also:
      - Align Example

  - ### getTabBarControlLayout

    public Layout getTabBarControlLayout() throws IllegalStateException
    `com.smartgwt.client.types.AutoChild` of type `Layout` that holds the `tabBarControls` as well as the built-in controls such as the `tab picker menu`.

    This component is an AutoChild named "tabBarControlLayout". For an overview of how to use and configure AutoChildren, see `Using AutoChildren`.

    Returns:
      Current tabBarControlLayout value. Default value is null
    Throws:
      `IllegalStateException` - if this widget has not yet been rendered.

  - ### setTabBarPosition

    public TabSet setTabBarPosition(Side tabBarPosition) throws IllegalStateException
    Which side of the TabSet the TabBar should appear on.
    Parameters:
      `tabBarPosition` - New tabBarPosition value. Default value is Canvas.TOP
    Returns:
      `TabSet` instance, for chaining setter calls
    Throws:
      `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:
      Current tabBarPosition value. Default value is Canvas.TOP
    See Also:
      - Orientation Example

  - ### setTabBarThickness

    public TabSet setTabBarThickness(int tabBarThickness) throws IllegalStateException
    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` - New tabBarThickness value. Default value is 21
    Returns:
      `TabSet` instance, for chaining setter calls
    Throws:
      `IllegalStateException` - this property cannot be changed after the component has been created

  - ### 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:
      Current tabBarThickness value. Default value is 21

  - ### getTabPicker

    public ImgButton getTabPicker() throws 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`.

    This component is an AutoChild named "tabPicker". For an overview of how to use and configure AutoChildren, see `Using AutoChildren`.

    Returns:
      Current tabPicker value. Default value is null
    Throws:
      `IllegalStateException` - if this widget has not yet been rendered.

  - ### getTitleEditor

    public TextItem getTitleEditor() throws IllegalStateException
    TextItem we use to edit tab titles in this TabSet. You can override this property using the normal `com.smartgwt.client.types.AutoChild` facilities.

    This component is an AutoChild named "titleEditor". For an overview of how to use and configure AutoChildren, see `Using AutoChildren`.

    Returns:
      Current titleEditor value. Default value is null
    Throws:
      `IllegalStateException` - if this widget has not yet been rendered.
    See Also:
      - `getCanEditTabTitles()`
      - `Tab.getCanEditTitle()`
      - `editTabTitle(java.lang.String)`

  - ### setTitleEditorLeftOffset

    public TabSet setTitleEditorLeftOffset(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` - New titleEditorLeftOffset value. Default value is null
    Returns:
      `TabSet` instance, for chaining setter calls
    See Also:
      - `setTitleEditorRightOffset(java.lang.Integer)`
      - `setTitleEditorTopOffset(java.lang.Integer)`

  - ### getTitleEditorLeftOffset

    public 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:
      Current titleEditorLeftOffset value. Default value is null
    See Also:
      - `getTitleEditorRightOffset()`
      - `getTitleEditorTopOffset()`

  - ### setTitleEditorProperties

    public TabSet setTitleEditorProperties(TextItem titleEditorProperties) throws IllegalStateException
    Properties for the auto-generated `titleEditor`. This is the text item we use to edit tab titles in this tabSet.
    Parameters:
      `titleEditorProperties` - New titleEditorProperties value. Default value is null
    Returns:
      `TabSet` instance, for chaining setter calls
    Throws:
      `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:
      Current titleEditorProperties value. Default value is null
    See Also:
      - `getTitleEditor()`
      - `getCanEditTabTitles()`

  - ### setTitleEditorRightOffset

    public TabSet setTitleEditorRightOffset(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` - New titleEditorRightOffset value. Default value is null
    Returns:
      `TabSet` instance, for chaining setter calls
    See Also:
      - `setTitleEditorLeftOffset(java.lang.Integer)`
      - `setTitleEditorTopOffset(java.lang.Integer)`

  - ### getTitleEditorRightOffset

    public 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:
      Current titleEditorRightOffset value. Default value is null
    See Also:
      - `getTitleEditorLeftOffset()`
      - `getTitleEditorTopOffset()`

  - ### setTitleEditorTopOffset

    public TabSet setTitleEditorTopOffset(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` - New titleEditorTopOffset value. Default value is null
    Returns:
      `TabSet` instance, for chaining setter calls
    See Also:
      - `setTitleEditorLeftOffset(java.lang.Integer)`
      - `setTitleEditorRightOffset(java.lang.Integer)`

  - ### getTitleEditorTopOffset

    public 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:
      Current titleEditorTopOffset value. Default value is null
    See Also:
      - `getTitleEditorLeftOffset()`
      - `getTitleEditorRightOffset()`

  - ### setTouchPickerButtonSize

    public TabSet setTouchPickerButtonSize(int touchPickerButtonSize) throws IllegalStateException
    The size of the tab picker button when `isTouch` is `true`.
    Parameters:
      `touchPickerButtonSize` - New touchPickerButtonSize value. Default value is 16
    Returns:
      `TabSet` instance, for chaining setter calls
    Throws:
      `IllegalStateException` - this property cannot be changed after the component has been created
    See Also:
      - `setPickerButtonSize(int)`

  - ### getTouchPickerButtonSize

    public int getTouchPickerButtonSize()
    The size of the tab picker button when `isTouch` is `true`.
    Returns:
      Current touchPickerButtonSize value. Default value is 16
    See Also:
      - `getPickerButtonSize()`

  - ### setUseIOSTabs

    public TabSet setUseIOSTabs(Boolean useIOSTabs) throws 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` - New useIOSTabs value. Default value is false
    Returns:
      `TabSet` instance, for chaining setter calls
    Throws:
      `IllegalStateException` - this property cannot be changed after the component has been created

  - ### getUseIOSTabs

    public 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:
      Current useIOSTabs value. Default value is false

  - ### setUseSimpleTabs

    public TabSet setUseSimpleTabs(Boolean useSimpleTabs) throws 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` - New useSimpleTabs value. Default value is false
    Returns:
      `TabSet` instance, for chaining setter calls
    Throws:
      `IllegalStateException` - this property cannot be changed after the component has been created

  - ### getUseSimpleTabs

    public 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:
      Current useSimpleTabs value. Default value is false

  - ### addAddTabClickHandler

    public HandlerRegistration addAddTabClickHandler(AddTabClickHandler handler)
    Add a addTabClick handler.

    Notification method fired when the user clicks the `TabSet.addTabButton`.

    No default implementation.

    Specified by:
      `addAddTabClickHandler` in interface `HasAddTabClickHandlers`
    Parameters:
      `handler` - the addTabClick handler
    Returns:
      `HandlerRegistration` used to remove this handler

  - ### addAddTabClickedHandler

    public HandlerRegistration addAddTabClickedHandler(AddTabClickedHandler handler)
    Deprecated.
    Add a addTabClicked handler.

    Click handler applied to the `TabSet.addTabButton`.

    The default implementation will invoke `TabSet.addTabClick()`

    Specified by:
      `addAddTabClickedHandler` in interface `HasAddTabClickedHandlers`
    Parameters:
      `handler` - the addTabClicked handler
    Returns:
      `HandlerRegistration` used to remove this handler

  - ### 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

  - ### hideTab

    public void hideTab(int tab)
    Hide a tab in this tabset at runtime. If the tab is selected, it will be deselected and the tab button will be hidden from the user.

    Note that this does not remove a tab from the tabset entirely (see `removeTab()`) The tab will no longer be visible to the user or selectable by the user, but the configuration will still existing in the `tabs array` for this tabSet. Developers should particularly be aware of this when calling methods that refer to tabs by index - the index includes both hidden and visible tabs in the tabset.

    Tabs may be marked as hidden at init-time via `Tab.hidden`.

    To test whether a tab is currently visible, use `tabIsVisible()`

    Parameters:
      `tab` - Tab to hide

  - ### hideTab

    public void hideTab(String tab)
    Hide a tab in this tabset at runtime. If the tab is selected, it will be deselected and the tab button will be hidden from the user.

    Note that this does not remove a tab from the tabset entirely (see `removeTab()`) The tab will no longer be visible to the user or selectable by the user, but the configuration will still existing in the `tabs array` for this tabSet. Developers should particularly be aware of this when calling methods that refer to tabs by index - the index includes both hidden and visible tabs in the tabset.

    Tabs may be marked as hidden at init-time via `Tab.hidden`.

    To test whether a tab is currently visible, use `tabIsVisible()`

    Parameters:
      `tab` - Tab to hide

  - ### hideTab

    public void hideTab(Tab tab)
    Hide a tab in this tabset at runtime. If the tab is selected, it will be deselected and the tab button will be hidden from the user.

    Note that this does not remove a tab from the tabset entirely (see `removeTab()`) The tab will no longer be visible to the user or selectable by the user, but the configuration will still existing in the `tabs array` for this tabSet. Developers should particularly be aware of this when calling methods that refer to tabs by index - the index includes both hidden and visible tabs in the tabset.

    Tabs may be marked as hidden at init-time via `Tab.hidden`.

    To test whether a tab is currently visible, use `tabIsVisible()`

    Parameters:
      `tab` - Tab to hide

  - ### addCloseClickHandler

    public HandlerRegistration addCloseClickHandler(CloseClickHandler handler)
    Add a closeClick handler.

    When `TabSet.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.tab.events.TabCloseClickEvent)` 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

  - ### removeLastTab

    public void removeLastTab()
    Removes the last tab in the TabSet, excluding the `moreTab` if present.

  - ### 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

  - ### setTabPickerTitle

    public void setTabPickerTitle(Tab tab, String pickerTitle)
    Changes the title of the picker menu item of a tab
    Parameters:
      `tab` -
      `pickerTitle` - new title. See `HTMLString`

  - ### showTab

    public void showTab(int tab)
    Show a `hidden tab` at runtime.

    To test whether a tab is currently visible, use `tabIsVisible()`

    Parameters:
      `tab` - Tab to hide

  - ### showTab

    public void showTab(String tab)
    Show a `hidden tab` at runtime.

    To test whether a tab is currently visible, use `tabIsVisible()`

    Parameters:
      `tab` - Tab to hide

  - ### showTab

    public void showTab(Tab tab)
    Show a `hidden tab` at runtime.

    To test whether a tab is currently visible, use `tabIsVisible()`

    Parameters:
      `tab` - Tab to hide

  - ### addTabContextMenuHandler

    public 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 HandlerRegistration addTabDeselectedHandler(TabDeselectedHandler handler)
    Add a tabDeselected handler.

    Optional handler to fire when a tab is deselected. Calling `TabDeselectedEvent.cancel` will cancel the new selection, leaving tab `ID` selected. As with `com.smartgwt.client.widgets.tab.events.TabSelectedEventl` this method only fires when the tabset is drawn.

    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 HandlerRegistration addTabIconClickHandler(TabIconClickHandler handler)
    Add a tabIconClick handler.

    Method fired when the user clicks the icon for a tab, as specified via `Tab.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

  - ### tabIsVisible

    public boolean tabIsVisible(int tab)
    Is the tab `hidden or visible`?
    Parameters:
      `tab` - Tab to test
    Returns:
      returns true if the tab has not been hidden.

  - ### tabIsVisible

    public boolean tabIsVisible(String tab)
    Is the tab `hidden or visible`?
    Parameters:
      `tab` - Tab to test
    Returns:
      returns true if the tab has not been hidden.

  - ### tabIsVisible

    public boolean tabIsVisible(Tab tab)
    Is the tab `hidden or visible`?
    Parameters:
      `tab` - Tab to test
    Returns:
      returns true if the tab has not been hidden.

  - ### addTabSelectedHandler

    public 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 `draw()` is called, `com.smartgwt.client.widgets.tab.events.TabSelectedEventl` will fire on `draw()`.

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

  - ### addTabsReorderedHandler

    public HandlerRegistration addTabsReorderedHandler(TabsReorderedHandler handler)
    Add a tabsReordered handler.

    Notification 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 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(com.smartgwt.client.widgets.tab.events.TabTitleChangedEvent)` 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 existing and subsequently created instances of this class will automatically have default properties corresponding to the properties set on the SmartGWT class instance passed to this function before its underlying SmartClient JS object was created. 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 affect 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. Calling this method after instances have been created can result in undefined behavior, since it bypasses any setters and a class instance may have already examined a particular property and not be expecting any changes through this route.

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

  - ### 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)
    An array of `Tab` objects, specifying the title and pane contents of each tab in the TabSet.

    Tab instances are not widgets, they just provide configuration such as title and icon.

    After providing `Tab` instances to `setTabs()`, the TabSet creates actual UI widgets to serve as interactive tabs. Any further modifications to tabs should be performed via TabSet APIs such as `setTabTitle`, `setTabIcon` and `setTabPane`.

    You can add and remove tabs after creating the TabSet by calling `addTab` and `removeTab`.

    Parameters:
      `tabs` - new tabs for the TabSet

  - ### 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:
      `IllegalStateException` - this property cannot be changed after the component has been created

  - ### setTabBarControls

    public void setTabBarControls(Object... tabBarControls) throws 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:
      `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

  - ### selectTab

    public void selectTab(int tabIndex)
    Select a tab.
    Parameters:
      `tabIndex` - the tab index

  - ### selectTab

    public void selectTab(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, String title)
    Changes the title of a tab
    Parameters:
      `tabIndex` - the tab index
      `title` - new title

  - ### setTabTitle

    public void setTabTitle(String ID, String title)
    Changes the title of a tab
    Parameters:
      `ID` - the tab ID
      `title` - new title

  - ### setTabTitle

    public void setTabTitle(Tab tab, String title)
    Changes the title of a tab
    Parameters:
      `tab` - the tab
      `title` - new title

  - ### setTabIcon

    public void setTabIcon(int tabIndex, String iconURL)
    Changes the icon of a tab
    Parameters:
      `tabIndex` - the tab index
      `iconURL` - new icon

  - ### setTabIcon

    public void setTabIcon(String ID, String iconURL)
    Changes the icon of a tab
    Parameters:
      `ID` - the tab ID
      `iconURL` - new icon

  - ### setTabIcon

    public void setTabIcon(Tab tab, 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(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(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(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(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(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(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(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(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 <b.always 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 <b.always 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

  - ### setTabBarProperties

    public void setTabBarProperties(TabBar tabBarProperties) throws IllegalStateException
    This attribute allows developers to specify custom properties for this tabset's `tabBar`
    Parameters:
      `tabBarProperties` - tabBarProperties Default value is null
    Throws:
      `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(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.

  - ### revealChild

    public void revealChild(String childID)
    Reveals the child Canvas passed in by selecting the tab containing that child if it is not already selected. If no tab in this TabSet contains the passed-in Canvas, this method has no effect

    NOTE: This is an override point.

    Overrides:
      `revealChild` in class `Canvas`
    Parameters:
      `childID` - the global ID of the child Canvas to reveal

  - ### revealChild

    public void revealChild(Canvas child)
    Reveals the child Canvas passed in by selecting the tab containing that child if it is not already selected. If no tab in this TabSet contains the passed-in Canvas, this method has no effect

    NOTE: This is an override point.

    Overrides:
      `revealChild` in class `Canvas`
    Parameters:
      `child` - the child Canvas to reveal

  - ### setLogicalStructure

    public LogicalStructureObject setLogicalStructure(TabSetLogicalStructure s)
    Setter implementing the `LogicalStructure` interface, which supports Eclipse's logical structure debugging facility.

  - ### getLogicalStructure

    public LogicalStructureObject getLogicalStructure()
    Getter implementing the `LogicalStructure` interface, which supports Eclipse's logical structure debugging facility.
    Specified by:
      `getLogicalStructure` in interface `LogicalStructure`
    Overrides:
      `getLogicalStructure` in class `Canvas`