com.smartgwt.client.widgets.layout

## Class SectionStack

- 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.layout.Layout
          - - com.smartgwt.client.widgets.layout.VLayout
            - - com.smartgwt.client.widgets.layout.SectionStack

- All Implemented Interfaces:
    HasAttachHandlers, HasHandlers, EventListener, HasVisibility, IsWidget, LogicalStructure, HasClickHandlers, HasDoubleClickHandlers, HasDragMoveHandlers, HasDragRepositionMoveHandlers, HasDragRepositionStartHandlers, HasDragRepositionStopHandlers, HasDragResizeMoveHandlers, HasDragResizeStartHandlers, HasDragResizeStopHandlers, HasDragStartHandlers, HasDragStopHandlers, HasDropHandlers, HasDropMoveHandlers, HasDropOutHandlers, HasDropOverHandlers, HasFocusChangedHandlers, HasHoverHandlers, HasHoverHiddenHandlers, HasKeyDownHandlers, HasKeyPressHandlers, HasMouseDownHandlers, HasMouseMoveHandlers, HasMouseOutHandlers, HasMouseOverHandlers, HasMouseStillDownHandlers, HasMouseUpHandlers, HasMouseWheelHandlers, HasMovedHandlers, HasParentMovedHandlers, HasResizedHandlers, HasRightMouseDownHandlers, HasScrolledHandlers, HasShowContextMenuHandlers, HasVisibilityChangedHandlers, HasMembersChangedHandlers, HasSectionHeaderClickHandlers

      public class SectionStack
      extends VLayout
      implements HasSectionHeaderClickHandlers

  A container that manages a list of sections of widgets, each with a header. Sometimes called an "Accordion".

  SectionStack can be configured so that only one section is visible at a time (similar to MS Outlook's left-hand Nav), or to allow multiple sections to be visible and share the available space.

- - ### 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 and Description
    `SectionStack()`
    `SectionStack(JavaScriptObject jsObj)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addSection(SectionStackSection section)` Add a section to the SectionStack.
    `void` | `addSection(SectionStackSection section, int position)` Add a section to the SectionStack.
    `HandlerRegistration` | `addSectionHeaderClickHandler(SectionHeaderClickHandler handler)` Add a SectionHeaderClick handler.
    `static void` | `changeAutoChildDefaults(java.lang.String autoChildName, Canvas defaults)` Changes the defaults for Canvas AutoChildren named `autoChildName`.
    `static void` | `changeAutoChildDefaults(java.lang.String autoChildName, FormItem defaults)` Changes the defaults for FormItem AutoChildren named `autoChildName`.
    `void` | `collapseSection(int sections)` Collapse a section or sections.
    `void` | `collapseSection(int sections, CollapseSectionCallback callback)` Collapse a section or sections.
    `void` | `collapseSection(java.lang.String sectionID)`
    `protected JavaScriptObject` | `create()`
    `void` | `expandSection(int sections)` Expands a section or sections.
    `void` | `expandSection(int sections, ExpandSectionCallback callback)` Expands a section or sections.
    `void` | `expandSection(java.lang.String sectionID)`
    `java.lang.Boolean` | `getAnimateSections()` If true, sections are animated during expand/collapse and addition/removal of SectionItems is likewise animated.
    `java.lang.Boolean` | `getCanCollapseAll()` In `visibilityMode` `VisibilityMode.MUTEX`, whether to allow the last remaining expanded section to be collapsed.
    `java.lang.Boolean` | `getCanDropComponents()` SectionStacks provide the same default implementation of drag and drop interactions as `Layouts`, except that members are added as items into the section over which they're dropped.
    `java.lang.Boolean` | `getCanReorderSections()` Whether sections can be drag reordered by the user dragging the section header.
    `java.lang.Boolean` | `getCanResizeSections()` Whether sections can be drag resized by the user dragging the section header.
    `java.lang.Boolean` | `getCanTabToHeaders()` If true, the headers for the sections (if shown) will be included in the page's tab order for accessibility.
    `java.lang.String` | `getEditProxyConstructor()` Default class used to construct the `EditProxy` for this component when the component is `first placed into edit mode`.
    `int` | `getHeaderHeight()` Height of headers for sections.
    `int` | `getItemEndIndent()` Size, in pixels, of indentation of all member items relative to the end of the alignment axis.
    `int` | `getItemIndent()` Size, in pixels, of indentation of all member items.
    `int` | `getItemStartIndent()` Size, in pixels, of indentation of all member items relative to the start of the alignment axis.
    `LocatorStrategy` | `getLocateSectionsBy()` When `AutoTest.getElement()` is used to parse locator strings generated by `AutoTest.getLocator()`, how should sections within this stack be identified? By default if a section has a specified `Section.name` this will always be used.
    `LocatorTypeStrategy` | `getLocateSectionsType()` `LocatorTypeStrategy` to use when finding Sections within this section Stack.
    `com.smartgwt.logicalstructure.core.LogicalStructureObject` | `getLogicalStructure()` Getter implementing the `LogicalStructure` interface, which supports Eclipse's logical structure debugging facility.
    `static SectionStack` | `getOrCreateRef(JavaScriptObject jsObj)`
    `Overflow` | `getOverflow()` Normal `Overflow` settings can be used on layouts, for example, an overflow:auto Layout will scroll if sections are resized to exceed the specified size, whereas an overflow:visible Layout will grow to accommodate the resized sections.
    `java.lang.Boolean` | `getScrollSectionIntoView()` If an expanded or shown section expands past the current viewport and this property is true, then the viewport will auto-scroll to fit as much of the section content into the viewport without scrolling the top of the section out of the viewport.
    `SectionStackSection` | `getSection(int index)` Return the SectionStackSection for a section.
    `SectionStackSection` | `getSection(java.lang.String sectionID)` Return the SectionStackSection for a section.
    `java.lang.String` | `getSectionHeaderClass()` Widget to use for section headers.
    `int` | `getSectionNumber(java.lang.String sectionName)` Returns the position of the specified section in the SectionStack.
    `SectionStackSection[]` | `getSections()`
    `java.lang.Boolean` | `getShowExpandControls()` Whether to show the Expand/Collapse controls in the headers of sections.
    `java.lang.String` | `getStyleName()` Default CSS style for the SectionStack as a whole.
    `java.lang.Boolean` | `getUseGlobalSectionIDs()` Should any specified `ID` be applied to the generated SectionHeader widget for the section as a widget ID? If set to false, SectionStackSection.ID will behave as a synonym for SectionStackSection.name.
    `VisibilityMode` | `getVisibilityMode()` Whether multiple sections can be expanded.
    `void` | `hideSection(int sections)` Hides a section or sections.
    `void` | `hideSection(int sections, HideSectionCallback callback)` Hides a section or sections.
    `void` | `hideSection(java.lang.String sectionID)`
    `void` | `moveSection(int sections, int position)` Moves the specified section(s) to a new position in the SectionStack order.
    `void` | `moveSection(java.lang.String sectionID, int position)`
    `void` | `removeSection(int sections)` Remove a section or set of sections from the SectionStack.
    `void` | `removeSection(java.lang.String sectionID)`
    `SectionStackSection` | `sectionForItem(Canvas item)` Search for a section that contains passed item.
    `void` | `sectionHeaderClick(Canvas sectionHeader)` Method intended to be called by the sectionHeader when it is clicked on.
    `boolean` | `sectionIsExpanded(int section)` Returns true if the specified section is expanded, false if it is collapsed.
    `boolean` | `sectionIsExpanded(java.lang.String sectionID)`
    `boolean` | `sectionIsVisible(int section)` Returns true if the specified section is visible, false if it is not.
    `boolean` | `sectionIsVisible(java.lang.String sectionID)`
    `void` | `setAnimateSections(java.lang.Boolean animateSections)` If true, sections are animated during expand/collapse and addition/removal of SectionItems is likewise animated.
    `void` | `setCanCollapseAll(java.lang.Boolean canCollapseAll)` In `visibilityMode` `VisibilityMode.MUTEX`, whether to allow the last remaining expanded section to be collapsed.
    `void` | `setCanDropComponents(java.lang.Boolean canDropComponents)` SectionStacks provide the same default implementation of drag and drop interactions as `Layouts`, except that members are added as items into the section over which they're dropped.
    `void` | `setCanReorderSections(java.lang.Boolean canReorderSections)` Whether sections can be drag reordered by the user dragging the section header.
    `void` | `setCanResizeSections(java.lang.Boolean canResizeSections)` Whether sections can be drag resized by the user dragging the section header.
    `void` | `setCanTabToHeaders(java.lang.Boolean canTabToHeaders)` If true, the headers for the sections (if shown) will be included in the page's tab order for accessibility.
    `static void` | `setDefaultProperties(SectionStack sectionStackProperties)` Class level method to set the default properties of this class.
    `void` | `setEditProxyConstructor(java.lang.String editProxyConstructor)` Default class used to construct the `EditProxy` for this component when the component is `first placed into edit mode`.
    `void` | `setHeaderHeight(int headerHeight)` Height of headers for sections.
    `void` | `setItemEndIndent(int itemEndIndent)` Size, in pixels, of indentation of all member items relative to the end of the alignment axis.
    `void` | `setItemIndent(int itemIndent)` Size, in pixels, of indentation of all member items.
    `void` | `setItemStartIndent(int itemStartIndent)` Size, in pixels, of indentation of all member items relative to the start of the alignment axis.
    `void` | `setLocateSectionsBy(LocatorStrategy locateSectionsBy)` When `AutoTest.getElement()` is used to parse locator strings generated by `AutoTest.getLocator()`, how should sections within this stack be identified? By default if a section has a specified `Section.name` this will always be used.
    `void` | `setLocateSectionsType(LocatorTypeStrategy locateSectionsType)` `LocatorTypeStrategy` to use when finding Sections within this section Stack.
    `com.smartgwt.logicalstructure.core.LogicalStructureObject` | `setLogicalStructure(com.smartgwt.logicalstructure.widgets.layout.SectionStackLogicalStructure s)` Setter implementing the `LogicalStructure` interface, which supports Eclipse's logical structure debugging facility.
    `void` | `setOverflow(Overflow overflow)` Normal `Overflow` settings can be used on layouts, for example, an overflow:auto Layout will scroll if sections are resized to exceed the specified size, whereas an overflow:visible Layout will grow to accommodate the resized sections.
    `void` | `setScrollSectionIntoView(java.lang.Boolean scrollSectionIntoView)` If an expanded or shown section expands past the current viewport and this property is true, then the viewport will auto-scroll to fit as much of the section content into the viewport without scrolling the top of the section out of the viewport.
    `void` | `setSectionHeaderClass(java.lang.Class<? extends Canvas> sectionHeaderClass)`
    `void` | `setSectionHeaderClass(java.lang.String sectionHeaderClass)` Widget to use for section headers.
    `void` | `setSectionProperties(int index, SectionStackSection properties)`
    `void` | `setSectionProperties(java.lang.String section, SectionStackSection properties)` Set arbitrary properties for a particular section in this SectionStack.
    `void` | `setSections(SectionStackSection... sections)`
    `void` | `setSectionTitle(int index, java.lang.String newTitle)` `setSectionTitle(String, String)`
    `void` | `setSectionTitle(java.lang.String section, java.lang.String newTitle)` Changes the title of a SectionHeader.
    `void` | `setShowExpandControls(java.lang.Boolean showExpandControls)` Whether to show the Expand/Collapse controls in the headers of sections.
    `void` | `setStyleName(java.lang.String styleName)` Default CSS style for the SectionStack as a whole.
    `void` | `setUseGlobalSectionIDs(java.lang.Boolean useGlobalSectionIDs)` Should any specified `ID` be applied to the generated SectionHeader widget for the section as a widget ID? If set to false, SectionStackSection.ID will behave as a synonym for SectionStackSection.name.
    `void` | `setVisibilityMode(VisibilityMode visibilityMode)` Whether multiple sections can be expanded.
    `void` | `showSection(int sections)` Shows a section or sections.
    `void` | `showSection(int sections, ShowSectionCallback callback)` Shows a section or sections.
    `void` | `showSection(java.lang.String sectionID)`

    - ### Methods inherited from class com.smartgwt.client.widgets.layout.VLayout

      `setDefaultProperties, setLogicalStructure`

    - ### Methods inherited from class com.smartgwt.client.widgets.layout.Layout

      `addMember, addMember, addMember, addMember, addMemberPostCreate, addMemberPostCreate, addMemberPreCreate, addMemberPreCreate, addMembers, addMembers, addMembersChangedHandler, getAnimateMembers, getAnimateMemberTime, getDefaultResizeBars, getDropComponent, getDropLine, getDropLineThickness, getDropPosition, getEnforcePolicy, getHPolicy, getLayoutBottomMargin, getLayoutLeftMargin, getLayoutMargin, getLayoutRightMargin, getLayoutTopMargin, getLeaveScrollbarGap, getLocateMembersBy, getLocateMembersType, getManagePercentBreadth, getMember, getMember, getMemberDefaultBreadth, getMemberNumber, getMemberNumber, getMemberOverlap, getMembers, getMembersMargin, getMinMemberSize, getPaddingAsLayoutMargin, getResizeBar, getResizeBarClass, getResizeBarSize, getReverseOrder, getShowDragPlaceHolder, getShowDropLines, getStackZIndex, getVertical, getVPolicy, hasMember, hideDropLine, hideMember, hideMember, onInit_Layout, onInit, reflow, reflow, reflowNow, removeMember, removeMembers, removeMembers, reorderMember, reorderMembers, setAlign, setAlign, setAnimateMembers, setAnimateMemberTime, setDefaultLayoutAlign, setDefaultLayoutAlign, setDefaultProperties, setDefaultResizeBars, setDropLineProperties, setDropLineThickness, setEnforcePolicy, setHPolicy, setLayoutBottomMargin, setLayoutLeftMargin, setLayoutMargin, setLayoutRightMargin, setLayoutTopMargin, setLeaveScrollbarGap, setLocateMembersBy, setLocateMembersType, setLogicalStructure, setManagePercentBreadth, setMemberOverlap, setMembers, setMembersMargin, setMinMemberSize, setPaddingAsLayoutMargin, setPlaceHolderDefaults, setPlaceHolderProperties, setResizeBarClass, setResizeBarSize, setReverseOrder, setShowDragPlaceHolder, setShowDropLines, setStackZIndex, setVertical, setVisibleMember, setVPolicy, showMember, showMember`

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

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

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

      `addDrawHandler, applyFactoryProperties, destroy, doAddHandler, doInit, doOnRender, draw, equals, error, errorIfNotCreated, getAttribute, getAttributeAsBoolean, getAttributeAsDate, getAttributeAsDateArray, getAttributeAsDouble, getAttributeAsElement, getAttributeAsFloat, getAttributeAsFloatArray, getAttributeAsInt, getAttributeAsIntArray, getAttributeAsJavaScriptObject, getAttributeAsMap, getAttributeAsRecord, getAttributeAsString, getAttributeAsStringArray, getConfig, getDOM, getHandlerCount, getID, getInnerHTML, getJsObj, getOrCreateJsObj, getRef, getScClassName, hasAutoAssignedID, hashCode, initNativeObject, internalSetID, internalSetID, isConfigOnly, isCreated, 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, setConfig, setConfigOnly, setDragTracker, setFactoryCreated, setID, setJavaScriptObject, setLogicalStructure, setNullProperty, setPosition, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setProperty, setScClassName, toString`

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

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

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

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

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

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

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

      `fireEvent`

- - ### Constructor Detail

    - #### SectionStack

          public SectionStack()

    - #### SectionStack

          public SectionStack(JavaScriptObject jsObj)

  - ### Method Detail

    - #### getOrCreateRef

          public static SectionStack getOrCreateRef(JavaScriptObject jsObj)

    - #### changeAutoChildDefaults

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

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

    - #### changeAutoChildDefaults

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

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

    - #### create

          protected JavaScriptObject create()

      Overrides:
        `create` in class `VLayout`

    - #### setAnimateSections

          public void setAnimateSections(java.lang.Boolean animateSections)

      If true, sections are animated during expand/collapse and addition/removal of SectionItems is likewise animated.
      Parameters:
        `animateSections` - Default value is null
      See Also:
        Section Reveal Example

    - #### getAnimateSections

          public java.lang.Boolean getAnimateSections()

      If true, sections are animated during expand/collapse and addition/removal of SectionItems is likewise animated.
      Returns:
        Boolean
      See Also:
        Section Reveal Example

    - #### setCanCollapseAll

          public void setCanCollapseAll(java.lang.Boolean canCollapseAll)

      In `visibilityMode` `VisibilityMode.MUTEX`, whether to allow the last remaining expanded section to be collapsed. If false, collapsing the last open section will open the next one (wrapping around at the end).
      Parameters:
        `canCollapseAll` - Default value is true

    - #### getCanCollapseAll

          public java.lang.Boolean getCanCollapseAll()

      In `visibilityMode` `VisibilityMode.MUTEX`, whether to allow the last remaining expanded section to be collapsed. If false, collapsing the last open section will open the next one (wrapping around at the end).
      Returns:
        Boolean

    - #### setCanDropComponents

          public void setCanDropComponents(java.lang.Boolean canDropComponents)
                                    throws java.lang.IllegalStateException

      SectionStacks provide the same default implementation of drag and drop interactions as `Layouts`, except that members are added as items into the section over which they're dropped.

      If you want to completely suppress the builtin drag and drop logic, but still receive drag and drop events for your own custom implementation, set `canAcceptDrop` to `true` and `canDropComponents` to `false` on your SectionStack.

      Note : This is an advanced setting

      Overrides:
        `setCanDropComponents` in class `Layout`
      Parameters:
        `canDropComponents` - Default value is true
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created
      See Also:
        `Dragdrop overview and related methods`

    - #### getCanDropComponents

          public java.lang.Boolean getCanDropComponents()

      SectionStacks provide the same default implementation of drag and drop interactions as `Layouts`, except that members are added as items into the section over which they're dropped.

      If you want to completely suppress the builtin drag and drop logic, but still receive drag and drop events for your own custom implementation, set `canAcceptDrop` to `true` and `canDropComponents` to `false` on your SectionStack.

      Overrides:
        `getCanDropComponents` in class `Layout`
      Returns:
        Boolean
      See Also:
        `Dragdrop overview and related methods`

    - #### setCanReorderSections

          public void setCanReorderSections(java.lang.Boolean canReorderSections)
                                     throws java.lang.IllegalStateException

      Whether sections can be drag reordered by the user dragging the section header.

      Note that, with `canReorderSections:true`, sections with `section.canReorder:false` will not be able to be drag-reordered (though their index may still be changed by dropping other sections above or below them in the section stack).

      Note : This is an advanced setting

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

    - #### getCanReorderSections

          public java.lang.Boolean getCanReorderSections()

      Whether sections can be drag reordered by the user dragging the section header.

      Note that, with `canReorderSections:true`, sections with `section.canReorder:false` will not be able to be drag-reordered (though their index may still be changed by dropping other sections above or below them in the section stack).

      Returns:
        Boolean

    - #### setCanResizeSections

          public void setCanResizeSections(java.lang.Boolean canResizeSections)
                                    throws java.lang.IllegalStateException

      Whether sections can be drag resized by the user dragging the section header.

      Note that, with `canResizeSections:true`, not all sections can be resized: sections that contain only `autofitting` components or that are marked with `section.resizeable:false` will not be resizeable.

      Note : This is an advanced setting

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

    - #### getCanResizeSections

          public java.lang.Boolean getCanResizeSections()

      Whether sections can be drag resized by the user dragging the section header.

      Note that, with `canResizeSections:true`, not all sections can be resized: sections that contain only `autofitting` components or that are marked with `section.resizeable:false` will not be resizeable.

      Returns:
        Boolean

    - #### setCanTabToHeaders

          public void setCanTabToHeaders(java.lang.Boolean canTabToHeaders)
                                  throws java.lang.IllegalStateException

      If true, the headers for the sections (if shown) will be included in the page's tab order for accessibility. May be overridden at the Section level via `canTabToHeader`

      If unset, section headers will be focusable if `isc.setScreenReaderMode()` has been called. See `Accessibility`.

      Note : This is an advanced setting

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

    - #### getCanTabToHeaders

          public java.lang.Boolean getCanTabToHeaders()

      If true, the headers for the sections (if shown) will be included in the page's tab order for accessibility. May be overridden at the Section level via `canTabToHeader`

      If unset, section headers will be focusable if `isc.setScreenReaderMode()` has been called. See `Accessibility`.

      Returns:
        Boolean

    - #### setEditProxyConstructor

          public void setEditProxyConstructor(java.lang.String editProxyConstructor)
                                       throws java.lang.IllegalStateException

      Default class used to construct the `EditProxy` for this component when the component is `first placed into edit mode`.
      Overrides:
        `setEditProxyConstructor` in class `Layout`
      Parameters:
        `editProxyConstructor` - See `SCClassName` . Default value is "SectionStackEditProxy"
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getEditProxyConstructor

          public java.lang.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 `Layout`
      Returns:
        See `SCClassName`

    - #### setHeaderHeight

          public void setHeaderHeight(int headerHeight)
                               throws java.lang.IllegalStateException

      Height of headers for sections.
      Parameters:
        `headerHeight` - Default value is 20
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getHeaderHeight

          public int getHeaderHeight()

      Height of headers for sections.
      Returns:
        int

    - #### setItemEndIndent

          public void setItemEndIndent(int itemEndIndent)

      Size, in pixels, of indentation of all member items relative to the end of the alignment axis. For instance, for left-aligned members, itemStartIndent specifies indentation for every item from the right side of the section stack.
      Parameters:
        `itemEndIndent` - Default value is undefined
      See Also:
        `LayoutMember overview and related methods`

    - #### getItemEndIndent

          public int getItemEndIndent()

      Size, in pixels, of indentation of all member items relative to the end of the alignment axis. For instance, for left-aligned members, itemStartIndent specifies indentation for every item from the right side of the section stack.
      Returns:
        int
      See Also:
        `LayoutMember overview and related methods`

    - #### setItemIndent

          public void setItemIndent(int itemIndent)

      Size, in pixels, of indentation of all member items. Items will be offset and reduced in width by this amount. Overridden by `itemStartIndent` or `itemEndIndent`. Setting itemIndent is equivalent to setting itemStartIndent to the same amount and itemEndIndent to 0.
      Parameters:
        `itemIndent` - Default value is 0
      See Also:
        `LayoutMember overview and related methods`

    - #### getItemIndent

          public int getItemIndent()

      Size, in pixels, of indentation of all member items. Items will be offset and reduced in width by this amount. Overridden by `itemStartIndent` or `itemEndIndent`. Setting itemIndent is equivalent to setting itemStartIndent to the same amount and itemEndIndent to 0.
      Returns:
        int
      See Also:
        `LayoutMember overview and related methods`

    - #### setItemStartIndent

          public void setItemStartIndent(int itemStartIndent)

      Size, in pixels, of indentation of all member items relative to the start of the alignment axis. For instance, for left-aligned members, itemStartIndent specifies indentation for every item from the left side of the section stack. Overrides `itemIndent`.
      Parameters:
        `itemStartIndent` - Default value is undefined
      See Also:
        `LayoutMember overview and related methods`

    - #### getItemStartIndent

          public int getItemStartIndent()

      Size, in pixels, of indentation of all member items relative to the start of the alignment axis. For instance, for left-aligned members, itemStartIndent specifies indentation for every item from the left side of the section stack. Overrides `itemIndent`.
      Returns:
        int
      See Also:
        `LayoutMember overview and related methods`

    - #### setLocateSectionsBy

          public void setLocateSectionsBy(LocatorStrategy locateSectionsBy)

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

      Note : This is an advanced setting

      Parameters:
        `locateSectionsBy` - Default value is null

    - #### getLocateSectionsBy

          public LocatorStrategy getLocateSectionsBy()

      When `AutoTest.getElement()` is used to parse locator strings generated by `AutoTest.getLocator()`, how should sections within this stack be identified? By default if a section has a specified `Section.name` this will always be used. For sections with no name, the following options are available:
      - `"title"` use the title as an identifier
      - `"index"` use the index of the section in the sections array as an identifier
      If unset, and the section has no specified name, default behavior is to identify by title (if available), otherwise by index.
      Returns:
        LocatorStrategy

    - #### setLocateSectionsType

          public void setLocateSectionsType(LocatorTypeStrategy locateSectionsType)

      `LocatorTypeStrategy` to use when finding Sections within this section Stack.

      Note : This is an advanced setting

      Parameters:
        `locateSectionsType` - Default value is null

    - #### getLocateSectionsType

          public LocatorTypeStrategy getLocateSectionsType()

      `LocatorTypeStrategy` to use when finding Sections within this section Stack.
      Returns:
        LocatorTypeStrategy

    - #### setOverflow

          public void setOverflow(Overflow overflow)

      Normal `Overflow` settings can be used on layouts, for example, an overflow:auto Layout will scroll if sections are resized to exceed the specified size, whereas an overflow:visible Layout will grow to accommodate the resized sections.
      Overrides:
        `setOverflow` in class `Layout`
      Parameters:
        `overflow` - Default value is "hidden"
      See Also:
        `Sizing overview and related methods`

    - #### getOverflow

          public Overflow getOverflow()

      Normal `Overflow` settings can be used on layouts, for example, an overflow:auto Layout will scroll if sections are resized to exceed the specified size, whereas an overflow:visible Layout will grow to accommodate the resized sections.
      Overrides:
        `getOverflow` in class `Layout`
      Returns:
        Overflow
      See Also:
        `Sizing overview and related methods`

    - #### setScrollSectionIntoView

          public void setScrollSectionIntoView(java.lang.Boolean scrollSectionIntoView)
                                        throws java.lang.IllegalStateException

      If an expanded or shown section expands past the current viewport and this property is true, then the viewport will auto-scroll to fit as much of the section content into the viewport without scrolling the top of the section out of the viewport.
      Parameters:
        `scrollSectionIntoView` - Default value is true
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getScrollSectionIntoView

          public java.lang.Boolean getScrollSectionIntoView()

      If an expanded or shown section expands past the current viewport and this property is true, then the viewport will auto-scroll to fit as much of the section content into the viewport without scrolling the top of the section out of the viewport.
      Returns:
        Boolean

    - #### setSectionHeaderClass

          public void setSectionHeaderClass(java.lang.String sectionHeaderClass)
                                     throws java.lang.IllegalStateException

      Widget to use for section headers.

      Must be a subclass of either `ImgSectionHeader` or `SectionHeader`. The default class used depends on the skin; `SectionHeader` is the simpler and lighter-weight class and uses CSS styling rather than image-based styling, and is recommended for most use cases.

      If you create a custom section header class in Java, enable `Reflection` to allow it to be used.

      Alternatively, you can use the SmartClient class system to create a simple SmartClient subclass of either SectionHeader or ImgSectionHeader for use with this API - see the `Skinning Guide` for details.

      If you override event handlers on your custom SectionHeader or radically change it's structure such that the default event handling no longer works, you can call `SectionStack.sectionHeaderClick()` to replicate the built-in expand/collapse handling for clicking a section header.

      Note : This is an advanced setting

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

    - #### getSectionHeaderClass

          public java.lang.String getSectionHeaderClass()

      Widget to use for section headers.

      Must be a subclass of either `ImgSectionHeader` or `SectionHeader`. The default class used depends on the skin; `SectionHeader` is the simpler and lighter-weight class and uses CSS styling rather than image-based styling, and is recommended for most use cases.

      If you create a custom section header class in Java, enable `Reflection` to allow it to be used.

      Alternatively, you can use the SmartClient class system to create a simple SmartClient subclass of either SectionHeader or ImgSectionHeader for use with this API - see the `Skinning Guide` for details.

      If you override event handlers on your custom SectionHeader or radically change it's structure such that the default event handling no longer works, you can call `SectionStack.sectionHeaderClick()` to replicate the built-in expand/collapse handling for clicking a section header.

      Returns:
        String

    - #### setShowExpandControls

          public void setShowExpandControls(java.lang.Boolean showExpandControls)

      Whether to show the Expand/Collapse controls in the headers of sections. If false, hides the expand/collapse controls and, instead, treats a click anywhere on the header as if it were a click on the expand control.
      Parameters:
        `showExpandControls` - Default value is true

    - #### getShowExpandControls

          public java.lang.Boolean getShowExpandControls()

      Whether to show the Expand/Collapse controls in the headers of sections. If false, hides the expand/collapse controls and, instead, treats a click anywhere on the header as if it were a click on the expand control.
      Returns:
        Boolean

    - #### setStyleName

          public void setStyleName(java.lang.String styleName)
                            throws java.lang.IllegalStateException

      Default CSS style for the SectionStack as a whole.
      Overrides:
        `setStyleName` in class `Canvas`
      Parameters:
        `styleName` - See `CSSStyleName` . Default value is "sectionStack"
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created
      See Also:
        `Appearance overview and related methods`, CSS styles Example

    - #### getStyleName

          public java.lang.String getStyleName()

      Default CSS style for the SectionStack as a whole.
      Overrides:
        `getStyleName` in class `Canvas`
      Returns:
        See `CSSStyleName`
      See Also:
        `Appearance overview and related methods`, CSS styles Example

    - #### setUseGlobalSectionIDs

          public void setUseGlobalSectionIDs(java.lang.Boolean useGlobalSectionIDs)
                                      throws java.lang.IllegalStateException

      Should any specified `ID` be applied to the generated SectionHeader widget for the section as a widget ID? If set to false, SectionStackSection.ID will behave as a synonym for SectionStackSection.name.
      Parameters:
        `useGlobalSectionIDs` - Default value is false
      Throws:
        `java.lang.IllegalStateException` - this property cannot be changed after the component has been created

    - #### getUseGlobalSectionIDs

          public java.lang.Boolean getUseGlobalSectionIDs()

      Should any specified `ID` be applied to the generated SectionHeader widget for the section as a widget ID? If set to false, SectionStackSection.ID will behave as a synonym for SectionStackSection.name.
      Returns:
        Boolean

    - #### setVisibilityMode

          public void setVisibilityMode(VisibilityMode visibilityMode)

      Whether multiple sections can be expanded.
      If this method is called after the component has been drawn/initialized: Setter for `visibilityMode`.
      Parameters:
        `visibilityMode` - new `visibilityMode` setting. If this is `VisibilityMode.MUTEX` then all but the first expanded section is collapsed.. Default value is "mutex"
      See Also:
        `setCanCollapseAll(java.lang.Boolean)`, Expand / Collapse Example

    - #### getVisibilityMode

          public VisibilityMode getVisibilityMode()

      Whether multiple sections can be expanded.
      Returns:
        VisibilityMode
      See Also:
        `getCanCollapseAll()`, Expand / Collapse Example

    - #### collapseSection

          public void collapseSection(int sections)

      Collapse a section or sections. This action hides all the items assigned to the section. Calling this method is equivalent to the user clicking on the SectionHeader of an expanded section.
      Parameters:
        `sections` - Section(s) to collapse. For this parameter, you can pass the position of the section in the SectionStack, the name of the section, or a List of section positions / names
      See Also:
        `hideSection(int)`, Expand / Collapse Example

    - #### collapseSection

          public void collapseSection(int sections,
                             CollapseSectionCallback callback)

      Collapse a section or sections. This action hides all the items assigned to the section. Calling this method is equivalent to the user clicking on the SectionHeader of an expanded section.
      Parameters:
        `sections` - Section(s) to collapse. For this parameter, you can pass the position of the section in the SectionStack, the name of the section, or a List of section positions / names
        `callback` - callback to fire when the section has been collapsed
      See Also:
        `hideSection(int)`, Expand / Collapse Example

    - #### expandSection

          public void expandSection(int sections)

      Expands a section or sections. This action shows all the items assigned to the section. If the section is currently hidden, it is shown first and then expanded. Calling this method is equivalent to the user clicking on the SectionHeader of a collapsed section.
      Parameters:
        `sections` - Section(s) to expand. For this parameter, you can pass the position of the section in the SectionStack, the name of the section, or a List of section names/positions.
      See Also:
        `showSection(int)`, `getScrollSectionIntoView()`, Expand / Collapse Example

    - #### expandSection

          public void expandSection(int sections,
                           ExpandSectionCallback callback)

      Expands a section or sections. This action shows all the items assigned to the section. If the section is currently hidden, it is shown first and then expanded. Calling this method is equivalent to the user clicking on the SectionHeader of a collapsed section.
      Parameters:
        `sections` - Section(s) to expand. For this parameter, you can pass the position of the section in the SectionStack, the name of the section, or a List of section names/positions.
        `callback` - callback to fire when the section has been expanded.
      See Also:
        `showSection(int)`, `getScrollSectionIntoView()`, Expand / Collapse Example

    - #### getSectionNumber

          public int getSectionNumber(java.lang.String sectionName)

      Returns the position of the specified section in the SectionStack. The numbering is zero-based.
      Parameters:
        `sectionName` - name of a section for which you want to obtain the position.
      Returns:
        Position of the section in the SectionStack or -1 if the specified section is not a member of this SectionStack.

    - #### hideSection

          public void hideSection(int sections)

      Hides a section or sections. This includes the section header and its items. The space vacated by this action is reassigned to the nearest visible section item above this section. If there are no visible section items above this section, the space is reassigned to the nearest visible section item below this section.
      Parameters:
        `sections` - Section(s) to hide. For this parameter, you can pass the position of the section in the SectionStack, the name of the section, or a List of section names / positions.
      See Also:
        `collapseSection(int)`, Show and Hide Example

    - #### hideSection

          public void hideSection(int sections,
                         HideSectionCallback callback)

      Hides a section or sections. This includes the section header and its items. The space vacated by this action is reassigned to the nearest visible section item above this section. If there are no visible section items above this section, the space is reassigned to the nearest visible section item below this section.
      Parameters:
        `sections` - Section(s) to hide. For this parameter, you can pass the position of the section in the SectionStack, the name of the section, or a List of section names / positions.
        `callback` - to fire when the section has been hidden
      See Also:
        `collapseSection(int)`, Show and Hide Example

    - #### moveSection

          public void moveSection(int sections,
                         int position)

      Moves the specified section(s) to a new position in the SectionStack order. If you pass in multiple sections, then each section will be moved to `newPosition` in the order specified by the `sections` argument.
      Parameters:
        `sections` - Section(s) to move. For this parameter, you can pass the position of the section in the SectionStack, the name of the section, or a List of section names/positions.
        `position` - new position index for the section(s).

    - #### addSectionHeaderClickHandler

          public HandlerRegistration addSectionHeaderClickHandler(SectionHeaderClickHandler handler)

      Add a SectionHeaderClick handler.

      Notification method fired when the user clicks on a section header. Returning false will cancel the default behavior (expanding / collapsing the section)

      Specified by:
        `addSectionHeaderClickHandler` in interface `HasSectionHeaderClickHandlers`
      Parameters:
        `handler` - the SectionHeaderClick handler
      Returns:
        `HandlerRegistration` used to remove this handler

    - #### removeSection

          public void removeSection(int sections)

      Remove a section or set of sections from the SectionStack. The removed sections' header and items (if any) are automatically destroyed.
      Parameters:
        `sections` - Section(s) to remove. For this parameter, you can pass the position of the section in the SectionStack, the `name` of the section, or a List of section `name`s or indices.
      See Also:
        Add and Remove Example

    - #### sectionForItem

          public SectionStackSection sectionForItem(Canvas item)

      Search for a section that contains passed item.
      Parameters:
        `item` - item to show
      Returns:
        section that contains passed item.
      See Also:
        `expandSection(int)`

    - #### sectionHeaderClick

          public void sectionHeaderClick(Canvas sectionHeader)

      Method intended to be called by the sectionHeader when it is clicked on.
      Parameters:
        `sectionHeader` - the sectionHeader clicked on

    - #### sectionIsExpanded

          public boolean sectionIsExpanded(int section)

      Returns true if the specified section is expanded, false if it is collapsed.
      Parameters:
        `section` - Section for which you want to obtain information. For this parameter, you can pass the position of the section in the SectionStack, or the name of the section.
      Returns:
        true if the section is expanded, false if it is not.

    - #### sectionIsVisible

          public boolean sectionIsVisible(int section)

      Returns true if the specified section is visible, false if it is not. A section is visible if it shows a header and the header is visible or if it has items and the first item is visible.
      Parameters:
        `section` - Section for which you want to obtain visibility information. For this parameter, you can pass the position of the section in the SectionStack, or the name of the section.
      Returns:
        true if the section is visible, false if it is not.

    - #### setSectionProperties

          public void setSectionProperties(java.lang.String section,
                                  SectionStackSection properties)

      Set arbitrary properties for a particular section in this SectionStack. Properties will be applied to the sectionHeader for the section.

      Note that where APIs exist to explicitly manipulate section properties these should be used in preference to this method. For example, to add or remove items in a section use `SectionStack.addItem()` or `SectionStack.removeItem()`. To change the title of a section, use `SectionStack.setSectionTitle()`.

      Also note that to modify properties of items within a section, call the appropriate setter methods directly on the item you want to modify.

      Parameters:
        `section` - ID or index of the section to modify
        `properties` - properties to apply to the section.

    - #### setSectionTitle

          public void setSectionTitle(java.lang.String section,
                             java.lang.String newTitle)

      Changes the title of a SectionHeader.
      Parameters:
        `section` - ID or index of the section whose title you want to change
        `newTitle` - new title for the SectionHeader

    - #### showSection

          public void showSection(int sections)

      Shows a section or sections. This includes the section header and its items. If the section is collapsed, only the header is shown. If the section is expanded, the section header and all items are shown.
      Parameters:
        `sections` - Section(s) to show. For this parameter, you can pass the position of the section in the SectionStack, the name of the section, or a List of section names / positions.
      See Also:
        `expandSection(int)`, `getScrollSectionIntoView()`, Show and Hide Example

    - #### showSection

          public void showSection(int sections,
                         ShowSectionCallback callback)

      Shows a section or sections. This includes the section header and its items. If the section is collapsed, only the header is shown. If the section is expanded, the section header and all items are shown.
      Parameters:
        `sections` - Section(s) to show. For this parameter, you can pass the position of the section in the SectionStack, the name of the section, or a List of section names / positions.
        `callback` - callback to fire when the sections have been shown.
      See Also:
        `expandSection(int)`, `getScrollSectionIntoView()`, Show and Hide Example

    - #### setDefaultProperties

          public static void setDefaultProperties(SectionStack sectionStackProperties)

      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:
        `sectionStackProperties` - properties that should be used as new defaults when instances of this class are created

    - #### setSectionHeaderClass

          public void setSectionHeaderClass(java.lang.Class<? extends Canvas> sectionHeaderClass)
                                     throws java.lang.IllegalStateException

      Throws:
        `java.lang.IllegalStateException`

    - #### setSections

          public void setSections(SectionStackSection... sections)

    - #### addSection

          public void addSection(SectionStackSection section)

      Add a section to the SectionStack.
      Parameters:
        `section` - the section to add

    - #### addSection

          public void addSection(SectionStackSection section,
                        int position)

      Add a section to the SectionStack.
      Parameters:
        `section` - the section to add
        `position` - index for the new section

    - #### removeSection

          public void removeSection(java.lang.String sectionID)

      Parameters:
        `sectionID` - the section ID
      See Also:
        `removeSection(int)`

    - #### expandSection

          public void expandSection(java.lang.String sectionID)

      Parameters:
        `sectionID` - the section ID
      See Also:
        `expandSection(int)`

    - #### collapseSection

          public void collapseSection(java.lang.String sectionID)

      Parameters:
        `sectionID` - the section ID
      See Also:
        `collapseSection(int)`

    - #### hideSection

          public void hideSection(java.lang.String sectionID)

      Parameters:
        `sectionID` - the section ID
      See Also:
        `hideSection(int)`

    - #### showSection

          public void showSection(java.lang.String sectionID)

      Parameters:
        `sectionID` - the section ID
      See Also:
        `showSection(int)`

    - #### moveSection

          public void moveSection(java.lang.String sectionID,
                         int position)

      Parameters:
        `sectionID` - the section ID
        `position` - new position index for the section
      See Also:
        `moveSection(int, int)`

    - #### sectionIsExpanded

          public boolean sectionIsExpanded(java.lang.String sectionID)

      Parameters:
        `sectionID` - the section ID
      Returns:
        true if the section is expanded, false if it is not.
      See Also:
        `sectionIsExpanded(int)`

    - #### sectionIsVisible

          public boolean sectionIsVisible(java.lang.String sectionID)

      Parameters:
        `sectionID` - the section ID
      Returns:
        true if the section is visible, false if it is not
      See Also:
        `sectionIsVisible(int)`

    - #### setSectionTitle

          public void setSectionTitle(int index,
                             java.lang.String newTitle)

      `setSectionTitle(String, String)`
      Parameters:
        `index` - index of the section whose title you want to change
        `newTitle` - new title for the Section Header
      See Also:
        `setSectionTitle(String, String)`

    - #### getSection

          public SectionStackSection getSection(java.lang.String sectionID)

      Return the SectionStackSection for a section.
      Parameters:
        `sectionID` - ID of the section for which you want the header
      Returns:
        the section indicated

    - #### getSection

          public SectionStackSection getSection(int index)

      Return the SectionStackSection for a section.
      Parameters:
        `index` - index of the section for which you want the header
      Returns:
        the section header indicated

    - #### getSections

          public SectionStackSection[] getSections()

    - #### setSectionProperties

          public void setSectionProperties(int index,
                                  SectionStackSection properties)

      Parameters:
        `section` - ID or index of the section to modify
        `properties` - properties to apply to the section.
      See Also:
        `setSectionProperties(String,SectionStackSection)`

    - #### setLogicalStructure

          public com.smartgwt.logicalstructure.core.LogicalStructureObject setLogicalStructure(com.smartgwt.logicalstructure.widgets.layout.SectionStackLogicalStructure s)

      Setter implementing the `LogicalStructure` interface, which supports Eclipse's logical structure debugging facility.

    - #### getLogicalStructure

          public com.smartgwt.logicalstructure.core.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 `VLayout`