Package org.zkoss.stateless.sul

## Interface IGroup<I extends IAnyGroup>

- All Superinterfaces:
    `IChildable<IGroup<I>,​I>`, `IComponent<IGroup<I>>`, `IGroupChild<IGroup<I>>`, `IHtmlBasedComponent<IGroup<I>>`, `IRowBase<IGroup<I>>`, `IXulElement<IGroup<I>>`

      public interface IGroup<I extends IAnyGroup>
      extends IGroupChild<IGroup<I>>, IChildable<IGroup<I>,​I>

  Immutable `Group` component

  Adds the ability for single level grouping to the Grid.

  ### Support @Action

  Name | Action Type
  --- | ---
  onOpen | ActionData: `OpenData` Denotes user has opened or closed a component. It is useful to implement load-on-demand by listening to the onOpen action, and creating components when the first time the component is opened.

  Author:
    katherine
  See Also:
    `Group`

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Interface | Description
    --- | --- | ---
    `static class` | `IGroup.Builder<I extends IAnyGroup>` | Builds instances of type `IGroup`.
    `static class` | `IGroup.Updater` | Builds an updater of type `IGroup` for `UiAgent.smartUpdate(Locator, SmartUpdater)`.

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static IGroup<IAnyGroup>` | `DEFAULT` | Constant for default attributes of this immutable component.

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Default Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `default java.lang.String` | `getLabel()` | Returns the value of the `ILabel` it contains, or null if no such cell.
    `default java.lang.String` | `getWidgetClass()` | Returns the client widget class.
    `default boolean` | `isOpen()` | Returns whether this container is open.
    `static <I extends IAnyGroup> IGroup<I>` | `of​(I... children)` | Returns the instance with the given any group children.
    `static <I extends IAnyGroup> IGroup<I>` | `of​(java.lang.Iterable<? extends I> children)` | Returns the instance with the given any group children.
    `static <I extends IAnyGroup> IGroup<I>` | `of​(java.lang.String label)` | Returns the instance with the given label.
    `static <I extends IAnyGroup> IGroup<I>` | `ofId​(java.lang.String id)` | Returns the instance with the given id.
    `IGroup<I>` | `withLabel​(java.lang.String label)` | Returns a copy of `this` immutable component with the specified `label`.
    `IGroup<I>` | `withOpen​(boolean open)` | Returns a copy of `this` immutable component with the specified `open`.

    - ### Methods inherited from interface org.zkoss.stateless.sul.IChildable

      `getChildren, withChildren, withChildren`

    - ### Methods inherited from interface org.zkoss.stateless.sul.IComponent

      `getAction, getActions, getClientAttributes, getId, getMold, getWidgetListeners, getWidgetOverrides, isVisible, withAction, withAction, withAction, withAction, withAction, withAction, withAction, withAction, withAction, withAction, withAction, withActions, withActions, withClientAttribute, withClientAttributes, withId, withMold, withVisible, withWidgetClass, withWidgetListener, withWidgetListeners, withWidgetOverride, withWidgetOverrides`

    - ### Methods inherited from interface org.zkoss.stateless.sul.IHtmlBasedComponent

      `getClientAction, getDraggable, getDroppable, getHeight, getHflex, getLeft, getRenderdefer, getSclass, getStyle, getTabindex, getTooltiptext, getTop, getVflex, getWidth, getZclass, getZIndex, isFocus, withClientAction, withDraggable, withDroppable, withFocus, withHeight, withHflex, withLeft, withRenderdefer, withSclass, withStyle, withTabindex, withTabindex, withTooltiptext, withTop, withVflex, withWidth, withZclass, withZIndex`

    - ### Methods inherited from interface org.zkoss.stateless.sul.IRowBase

      `getAlign, getIndex, getValign, isLoaded, isNowrap, withAlign, withIndex, withNowrap, withValign`

    - ### Methods inherited from interface org.zkoss.stateless.sul.IXulElement

      `getContext, getCtrlKeys, getPopup, getTooltip, withContext, withCtrlKeys, withPopup, withTooltip`

- - ### Field Detail

    - #### DEFAULT

          static final IGroup<IAnyGroup> DEFAULT

      Constant for default attributes of this immutable component.

  - ### Method Detail

    - #### getWidgetClass

          default java.lang.String getWidgetClass()

      Returns the client widget class.

      Default: `"zkex.grid.Group"`

      Specified by:
        `getWidgetClass` in interface `IComponent<I extends IAnyGroup>`

    - #### getLabel

          @Nullable
          default java.lang.String getLabel()

      Returns the value of the `ILabel` it contains, or null if no such cell.

    - #### withLabel

          IGroup<I> withLabel​(@Nullable
                              java.lang.String label)

      Returns a copy of `this` immutable component with the specified `label`.

      Sets the value of the `ILabel` it contains.

      If it is not created, we automatically create it.

      Parameters:
        `label` - The label of the first child

        Default: `null`.

      Returns:
        A modified copy of the `this` object

    - #### isOpen

          default boolean isOpen()

      Returns whether this container is open.

      Default: `true.`

    - #### withOpen

          IGroup<I> withOpen​(boolean open)

      Returns a copy of `this` immutable component with the specified `open`.

      Sets whether this container is open.

      Parameters:
        `open` - Whether it's open.

        Default: `true`.

      Returns:
        A modified copy of the `this` object

    - #### of

          static <I extends IAnyGroup> IGroup<I> of​(java.lang.String label)

      Returns the instance with the given label.
      Parameters:
        `label` - The label that the first cell holds.

    - #### of

          static <I extends IAnyGroup> IGroup<I> of​(java.lang.Iterable<? extends I> children)

      Returns the instance with the given any group children.
      Parameters:
        `children` - The children belong to any group
      See Also:
        `IAnyGroup`

    - #### of

          static <I extends IAnyGroup> IGroup<I> of​(I... children)

      Returns the instance with the given any group children.
      Parameters:
        `children` - The children belong to any group
      See Also:
        `IAnyGroup`

    - #### ofId

          static <I extends IAnyGroup> IGroup<I> ofId​(java.lang.String id)

      Returns the instance with the given id.
      Parameters:
        `id` - The id to identify this component