Class Section

All Implemented Interfaces:
Drawable

public class Section extends ExpandableComposite
A variation of the expandable composite that adds optional description below the title. Section is often used as a basic building block in forms because it provides for logical grouping of information.

In case of the TITLE_BAR style, Section renders the title bar in a way compatible with the rest of the workbench. Since it is a widget, all the colors must be supplied directly. When created by the form toolkit, these colors are supplied by the toolkit. The toolkit initializes these colors based on the system colors. For this reason, it is recommended to create the section by the toolkit instead of through its own constructor.

Since 3.1, it is possible to set a control to be used for section description. If used, DESCRIPTION style should not be set. A typical way to take advantage of the new method is to set an instance of FormText to provide for hyperlinks and images in the description area.

Since:
3.0
  • Field Details

    • DESCRIPTION

      public static final int DESCRIPTION
      Description style. If used, description will be rendered below the title.
      See Also:
  • Constructor Details

    • Section

      public Section(Composite parent, int style)
      Creates a new section instance in the provided parent.
      Parameters:
      parent - the parent composite
      style - the style to use
  • Method Details

    • internalSetExpanded

      protected void internalSetExpanded(boolean expanded)
      Description copied from class: ExpandableComposite
      Performs the expansion state change for the expandable control.
      Overrides:
      internalSetExpanded in class ExpandableComposite
      Parameters:
      expanded - the expansion state
    • reflow

      protected void reflow()
      Reflows this section and all the parents up the hierarchy until a SharedScrolledComposite is reached.
    • setDescription

      public void setDescription(String description)
      Sets the description text. Has no effect if DESCRIPTION style was not used to create the control.
      Parameters:
      description - new description text; not null
    • getDescription

      public String getDescription()
      Returns the current description text.
      Returns:
      description text or null if DESCRIPTION style was not used to create the control.
    • setSeparatorControl

      public void setSeparatorControl(Control separator)
      Sets the separator control of this section. The separator must not be null and must be a direct child of this container. If defined, separator will be placed below the title text and will remain visible regardless of the expansion state.
      Parameters:
      separator - the separator that will be placed below the title text.
    • getSeparatorControl

      public Control getSeparatorControl()
      Returns the control that is used as a separator between the title and the client, or null if not set.
      Overrides:
      getSeparatorControl in class ExpandableComposite
      Returns:
      separator control or null if not set.
    • setBackground

      public void setBackground(Color bg)
      Sets the background of the section.
      Overrides:
      setBackground in class ExpandableComposite
      Parameters:
      bg - the new background
    • setForeground

      public void setForeground(Color fg)
      Sets the foreground of the section and the description control if there is one.
      Overrides:
      setForeground in class ExpandableComposite
      Parameters:
      fg - the new foreground.
    • getDescriptionControl

      public Control getDescriptionControl()
      Returns the control used to render the description. In 3.1, this method was promoted to public.
      Overrides:
      getDescriptionControl in class ExpandableComposite
      Returns:
      description control or null if DESCRIPTION style was not used to create the control and description control was not set by the client.
      See Also:
    • setDescriptionControl

      public void setDescriptionControl(Control descriptionControl)
      Sets the description control of this section. The control must not be null and must be a direct child of this container. If defined, control will be placed below the title text and the separator and will be hidden in the collapsed state.

      This method and DESCRIPTION style are mutually exclusive. Use the method only if you want to create the description control yourself.

      Parameters:
      descriptionControl - the control that will be placed below the title text.
      Since:
      3.1
    • setTitleBarBorderColor

      public void setTitleBarBorderColor(Color color)
      Sets the color of the title bar border when TITLE_BAR style is used.
      Parameters:
      color - the title bar border color
    • setTitleBarBackground

      public void setTitleBarBackground(Color color)
      Sets the color of the title bar background when TITLE_BAR style is used. This color is used as a starting color for the vertical gradient.
      Parameters:
      color - the title bar border background
    • setTitleBarGradientBackground

      public void setTitleBarGradientBackground(Color color)
      Sets the color of the title bar gradient background when TITLE_BAR style is used. This color is used at the height where title controls end (toggle, tool bar).
      Parameters:
      color - the title bar gradient background
    • getTitleBarBorderColor

      public Color getTitleBarBorderColor()
      Returns the title bar border color when TITLE_BAR style is used.
      Returns:
      the title bar border color
    • getTitleBarGradientBackground

      public Color getTitleBarGradientBackground()
      Returns the title bar gradient background color when TITLE_BAR style is used.
      Returns:
      the title bar gradient background
    • getTitleBarBackground

      public Color getTitleBarBackground()
      Returns the title bar background when TITLE_BAR style is used.
      Returns:
      the title bar background
    • onPaint

      protected void onPaint(PaintEvent e)
      Description copied from class: ExpandableComposite
      If TITLE_BAR or SHORT_TITLE_BAR style is used, title bar decoration will be painted behind the text in this method. The default implementation does nothing - subclasses are responsible for rendering the title area.
      Overrides:
      onPaint in class ExpandableComposite
      Parameters:
      e - the paint event
    • setBackgroundImage

      public final void setBackgroundImage(Image image)
      Background image is used for the title gradient - does nothing.
      Overrides:
      setBackgroundImage in class Control
      Parameters:
      image - the new image (or null)