Class SectionStackSection

All Implemented Interfaces:
HasHandlers

public class SectionStackSection extends RefDataClass
Section descriptor used by a SectionStack to describe a section of items which are shown or hidden together along with their associated header.

A SectionStackSection can't be modified once it's been added to a SectionStack, which creates its section header (by default a SectionHeader, but see SectionStack.sectionHeaderClass). After that, you must call the appropriate SectionStack method to modify a section property, or the section header getter method to get the updated property value. As a convenience, we route several SectionStackSection setter methods to the SectionStack for you after the SectionStackSection has been added to it, but with the exception of items, you'll always get the original property values when calling a getter directly on a SectionStackSection.

Additional SectionHeader properties set on the SectionStackSection not explicitly documented, such as "iconAlign" or "prompt", are supported - use setAttribute().

  • Field Details

    • stack

      protected SectionStack stack
      Once a SectionStackSection has been applied to a SectionStack, this method may be used to return a pointer to the SectionStack in which this section header is embedded.
  • Constructor Details

    • SectionStackSection

      public SectionStackSection()
    • SectionStackSection

      public SectionStackSection(JavaScriptObject jsObj)
    • SectionStackSection

      public SectionStackSection(String title)
  • Method Details

    • getOrCreateRef

      public static SectionStackSection getOrCreateRef(JavaScriptObject jsObj)
    • setCanClose

      public SectionStackSection setCanClose(Boolean canClose)
      Is this section closeable?

      Closeable sections show a SectionStack.closeSectionButton which will invoke SectionStack.closeSection() when clicked.

      This property overrides the default SectionStack.canCloseSections setting.

      Parameters:
      canClose - New canClose value. Default value is null
      Returns:
      SectionStackSection instance, for chaining setter calls
    • getCanClose

      public Boolean getCanClose()
      Is this section closeable?

      Closeable sections show a SectionStack.closeSectionButton which will invoke SectionStack.closeSection() when clicked.

      This property overrides the default SectionStack.canCloseSections setting.

      Returns:
      Current canClose value. Default value is null
    • setCanCollapse

      public SectionStackSection setCanCollapse(Boolean canCollapse)
      This attribute controls whether or not the expand/collapse UI control is shown on the header of this section. Any section can still be expanded/collapsed programmatically, regardless of this setting.
      Parameters:
      canCollapse - New canCollapse value. Default value is true
      Returns:
      SectionStackSection instance, for chaining setter calls
      See Also:
    • setCanDropBefore

      public SectionStackSection setCanDropBefore(Boolean canDropBefore)
      When explicitly set to false, disallows drop before this member in the Layout.
      Parameters:
      canDropBefore - New canDropBefore value. Default value is null
      Returns:
      SectionStackSection instance, for chaining setter calls
      See Also:
    • setCanReorder

      public SectionStackSection setCanReorder(Boolean canReorder)
      If set to false, then this sectionHeader will not be able to be dragged to perform a drag reorder, if SectionStack.canReorderSections is true. You can also disable dropping other sections before this one by setting canDropBefore to false.
      Parameters:
      canReorder - New canReorder value. Default value is null
      Returns:
      SectionStackSection instance, for chaining setter calls
    • setCanTabToHeader

      public SectionStackSection setCanTabToHeader(Boolean canTabToHeader)
      If true, the header for this Section will be included in the page's tab order for accessibility. May also be set at the SectionStack level via SectionStack.canTabToHeaders.

      See Accessibility.

      Parameters:
      canTabToHeader - New canTabToHeader value. Default value is null
      Returns:
      SectionStackSection instance, for chaining setter calls
    • getCanTabToHeader

      public Boolean getCanTabToHeader()
      If true, the header for this Section will be included in the page's tab order for accessibility. May also be set at the SectionStack level via SectionStack.canTabToHeaders.

      See Accessibility.

      Returns:
      Current canTabToHeader value. Default value is null
    • setClipTitle

      public SectionStackSection setClipTitle(Boolean clipTitle)
      If the title for this section header is too large for the available space, should the title be clipped?

      This feature is supported only in browsers that support the CSS UI text-overflow property (IE6+, Firefox 7+, Safari, Chrome, Opera 9+).

      Parameters:
      clipTitle - New clipTitle value. Default value is true
      Returns:
      SectionStackSection instance, for chaining setter calls
    • getClipTitle

      public Boolean getClipTitle()
      If the title for this section header is too large for the available space, should the title be clipped?

      This feature is supported only in browsers that support the CSS UI text-overflow property (IE6+, Firefox 7+, Safari, Chrome, Opera 9+).

      Returns:
      Current clipTitle value. Default value is true
    • setCloseIcon

      public SectionStackSection setCloseIcon(String closeIcon)
      Icon src for the close button if canClose is true.

      If specified this takes precedence over SectionStack.closeSectionIcon.

      Parameters:
      closeIcon - New closeIcon value. Default value is null
      Returns:
      SectionStackSection instance, for chaining setter calls
      See Also:
    • getCloseIcon

      public String getCloseIcon()
      Icon src for the close button if canClose is true.

      If specified this takes precedence over SectionStack.closeSectionIcon.

      Returns:
      Current closeIcon value. Default value is null
      See Also:
    • setCloseIconSize

      public SectionStackSection setCloseIconSize(Integer closeIconSize)
      Pixel width/height for this sections closeIcon.
      If unset SectionStack.closeSectionIconSize will be used.
      Parameters:
      closeIconSize - New closeIconSize value. Default value is null
      Returns:
      SectionStackSection instance, for chaining setter calls
    • getCloseIconSize

      public Integer getCloseIconSize()
      Pixel width/height for this sections closeIcon.
      If unset SectionStack.closeSectionIconSize will be used.
      Returns:
      Current closeIconSize value. Default value is null
    • setControls

      public SectionStackSection setControls(Canvas... controls)
      Custom controls to be shown on top of this section header.

      These controls are shown in the SectionHeader.controlsLayout.

      Note that this is an init-time property. If you need to dynamically change what controls are displayed to the user, we would recommend embedding the controls in a Layout or similar container. This will allow you to show/hide or add/remove members at runtime by manipulating the existing control(s) set up at init time.

      For canClose:true sections, a close icon will be added to the section controls automatically.

      Parameters:
      controls - New controls value. Default value is null
      Returns:
      SectionStackSection instance, for chaining setter calls
      See Also:
    • getControls

      public Canvas[] getControls()
      Custom controls to be shown on top of this section header.

      These controls are shown in the SectionHeader.controlsLayout.

      Note that this is an init-time property. If you need to dynamically change what controls are displayed to the user, we would recommend embedding the controls in a Layout or similar container. This will allow you to show/hide or add/remove members at runtime by manipulating the existing control(s) set up at init time.

      For canClose:true sections, a close icon will be added to the section controls automatically.

      Returns:
      Current controls value. Default value is null
      See Also:
    • setDestroyOnRemove

      public SectionStackSection setDestroyOnRemove(Boolean destroyOnRemove)
      Should the items be destroyed if this section is removed? The section header itself and any controls will always be destroyed.
      Parameters:
      destroyOnRemove - New destroyOnRemove value. Default value is false
      Returns:
      SectionStackSection instance, for chaining setter calls
    • setHeaderProperties

      public SectionStackSection setHeaderProperties(SectionHeader headerProperties)
      Allows properties for the header (a SectionHeader or ImgSectionHeader subclass) to be set on the section before it's added to the SectionStack.
      Parameters:
      headerProperties - New headerProperties value. Default value is null
      Returns:
      SectionStackSection instance, for chaining setter calls
      See Also:
    • getHeaderProperties

      public SectionHeader getHeaderProperties()
      Allows properties for the header (a SectionHeader or ImgSectionHeader subclass) to be set on the section before it's added to the SectionStack.
      Returns:
      Current headerProperties value. Default value is null
      See Also:
    • setHeaderProperties

      public SectionStackSection setHeaderProperties(ImgSectionHeader headerProperties)
      Allows properties for the header (a SectionHeader or ImgSectionHeader subclass) to be set on the section before it's added to the SectionStack.
      Parameters:
      headerProperties - New headerProperties value. Default value is null
      Returns:
      SectionStackSection instance, for chaining setter calls
      See Also:
    • getHeaderPropertiesAsImgSectionHeader

      public ImgSectionHeader getHeaderPropertiesAsImgSectionHeader()
      Allows properties for the header (a SectionHeader or ImgSectionHeader subclass) to be set on the section before it's added to the SectionStack.
      Returns:
      Current headerProperties value. Default value is null
      See Also:
    • setIcon

      public SectionStackSection setIcon(String icon)
      Base filename of the icon that represents open and closed states. The default settings also change the icon for disabled sections, so a total of four images are required (opened, closed, Disabled_opened, Disabled_closed).

      Not shown if canCollapse is false.

      Parameters:
      icon - New icon value. Default value is "[SKIN]SectionHeader/opener.gif"
      Returns:
      SectionStackSection instance, for chaining setter calls
      See Also:
    • getIcon

      public String getIcon()
      Base filename of the icon that represents open and closed states. The default settings also change the icon for disabled sections, so a total of four images are required (opened, closed, Disabled_opened, Disabled_closed).

      Not shown if canCollapse is false.

      Returns:
      Current icon value. Default value is "[SKIN]SectionHeader/opener.gif"
      See Also:
    • setName

      public SectionStackSection setName(String name)
      Identifier for the section. This can be used later in calls to SectionStack APIs such as SectionStack.expandSection() and SectionStack.collapseSection(). Note that if no name is specified for the section, one will be auto-generated when the section is created. This property should be a string which may be used as a valid JavaScript identifier (should start with a letter and not contain space or special characters such as "*").
      Parameters:
      name - New name value. Default value is null
      Returns:
      SectionStackSection instance, for chaining setter calls
    • getName

      public String getName()
      Identifier for the section. This can be used later in calls to SectionStack APIs such as SectionStack.expandSection() and SectionStack.collapseSection(). Note that if no name is specified for the section, one will be auto-generated when the section is created. This property should be a string which may be used as a valid JavaScript identifier (should start with a letter and not contain space or special characters such as "*").
      Returns:
      Current name value. Default value is null
    • setResizeable

      public SectionStackSection setResizeable(Boolean resizeable)
      If set to false, then the items in this section will not be resized by sectionHeader repositioning. You may also set this flag directly on any of the items in any section to cause that item to not be resizeable.
      Parameters:
      resizeable - New resizeable value. Default value is null
      Returns:
      SectionStackSection instance, for chaining setter calls
      See Also:
    • setShowClippedTitleOnHover

      public SectionStackSection setShowClippedTitleOnHover(Boolean showClippedTitleOnHover)
      If true and the title is clipped, then a hover containing the full title of this section header is enabled.
      Parameters:
      showClippedTitleOnHover - New showClippedTitleOnHover value. Default value is true
      Returns:
      SectionStackSection instance, for chaining setter calls
    • getShowClippedTitleOnHover

      public Boolean getShowClippedTitleOnHover()
      If true and the title is clipped, then a hover containing the full title of this section header is enabled.
      Returns:
      Current showClippedTitleOnHover value. Default value is true
    • setShowHeader

      public SectionStackSection setShowHeader(Boolean showHeader)
      If true, a header will be shown for this section. If false, no header will be shown.
      Parameters:
      showHeader - New showHeader value. Default value is true
      Returns:
      SectionStackSection instance, for chaining setter calls
    • setTitle

      public void setTitle(String title)
      Title to show for the section
      Parameters:
      title - title Default value is null
    • getTitle

      public String getTitle()
      Title to show for the section
      Returns:
      String
    • setExpanded

      public void setExpanded(Boolean expanded)
      Sections default to the collapsed state unless showHeader is set to false in which case they default to the expanded state. This attribute allows you to explicitly control the expand/collapse state of the section by overriding the above default behavior.
      Parameters:
      expanded - expanded Default value is false
    • setHidden

      public void setHidden(Boolean hidden)
      Sections default to the visible state. This attribute allows you to explicitly control the visible/hidden state of the section by overriding the above default behavior.
      Parameters:
      hidden - hidden Default value is false
    • setItems

      public void setItems(Canvas... items)
      Assign a new set of Canvases to this section. These Canvases will be shown and hidden together.
      Parameters:
      items - list of Canvases that constitute the section
    • getItems

      public Canvas[] getItems()
      Return the items in this SectionStackSection
      Returns:
      the items in this SectionStackSection
    • addItem

      public void addItem(Canvas item)
      Adds a new Canvas to this section, at the end.
      Parameters:
      new - Canvas to add as item
    • getSectionStack

      public SectionStack getSectionStack()
    • getSectionHeader

      public SectionHeader getSectionHeader()
      Once a SectionStackSection has been applied to a SectionStack, this method may be used to return a pointer to the SectionHeader for this section
      Returns:
      the SectionHeader for the section
    • getID

      public String getID()
      Optional ID for the section. If useGlobalSectionIDs is true, this property will be applied to the generated SectionStackHeader widget as a standard widget ID, meaning it should be unique within a page.

      Backcompat Note: Section stack sections may be uniquely identified within a stack via the name attribute (introduced in Jan 2010). Prior to this, the section ID attribute was used in this way (and would not be applied to the section header as a widget ID). For backwards compatibility this is still supported: If section.name is unspecified for a section but section.ID is set, the ID will be used as a default name attribute for the section. For backwards compatibility we also disable the standard behavior of having the section.ID being applied to the generated section header (thereby avoiding the page-level uniqueness requirement) by defaulting useGlobalSectionIDs to false.

      Returns:
      String
    • setID

      public void setID(String ID)
      Optional ID for the section. If useGlobalSectionIDs is true, this property will be applied to the generated SectionStackHeader widget as a standard widget ID, meaning it should be unique within a page.

      Backcompat Note: Section stack sections may be uniquely identified within a stack via the name attribute (introduced in Jan 2010). Prior to this, the section ID attribute was used in this way (and would not be applied to the section header as a widget ID). For backwards compatibility this is still supported: If section.name is unspecified for a section but section.ID is set, the ID will be used as a default name attribute for the section. For backwards compatibility we also disable the standard behavior of having the section.ID being applied to the generated section header (thereby avoiding the page-level uniqueness requirement) by defaulting useGlobalSectionIDs to false.

      Parameters:
      ID - ID Default value is null
    • setAriaRole

      public void setAriaRole(String ariaRole)
      Specify the ariaRole for this SectionStackSection. This role will be applied to the SectionHeader for the section. See Accessibility
      Parameters:
      ariaRole -
    • setAriaState

      public void setAriaState(String stateName, Object stateValue)
      Specify an ariaState for this SectionStackSection. This state will be applied to the SectionHeader for the section. See Accessibility
      Parameters:
      stateName -
      stateValue -
    • setTitleHoverFormatter

      public void setTitleHoverFormatter(TitleHoverFormatter formatter)
      Provide a custom implementation of SectionHeader.titleHoverHTML(java.lang.String).