Package org.zkoss.zul

## Class Rows.ExtraCtrl

- java.lang.Object
- - org.zkoss.zk.ui.HtmlBasedComponent.ExtraCtrl
  - - org.zkoss.zul.Rows.ExtraCtrl

- All Implemented Interfaces:
    `Cropper`, `PrologAllowed`
  Enclosing class:
    Rows

      protected class Rows.ExtraCtrl
      extends HtmlBasedComponent.ExtraCtrl
      implements Cropper

  A utility class to implement `HtmlBasedComponent.getExtraCtrl()`. It is used only by component developers.

- - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `protected` | `ExtraCtrl()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.util.Set<? extends Component>` | `getAvailableAtClient()` | Returns a set of child components that are available at the client, or null if ALL available.
    `Component` | `getCropOwner()` | Returns the owner of the cropping scope.
    `boolean` | `isCropper()` | Returns whether it is a cropper, i.e., cropping is applied.

    - ### Methods inherited from class org.zkoss.zk.ui.HtmlBasedComponent.ExtraCtrl

      `setPrologContent`

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

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ExtraCtrl

          protected ExtraCtrl()

  - ### Method Detail

    - #### isCropper

          public boolean isCropper()

      Description copied from interface: `Cropper`
      Returns whether it is a cropper, i.e., cropping is applied.

      Note: this method is called when an child is detached, so you have to count one more for the total number of children. Example <= must be used, not <:
      `getChildCount() <= getPageSize()`

      The result of returning false is the same as not declaring with `Cropper`.

      Specified by:
        `isCropper` in interface `Cropper`

    - #### getCropOwner

          public Component getCropOwner()

      Description copied from interface: `Cropper`
      Returns the owner of the cropping scope. In most cases, `Cropper.getAvailableAtClient()` returns only the available direct children of this component, and this method returns this component. It is so-called a single-level cropping, such as listbox and tree.

      If you want to implement multi-level cropping, such as tree, you can consider the whole tree as a cropping scope. And, `Cropper.getAvailableAtClient()` returns all available items, not just the child of this component. In additions, this method returns the tree.

      Specified by:
        `getCropOwner` in interface `Cropper`

    - #### getAvailableAtClient

          public java.util.Set<? extends Component> getAvailableAtClient()

      Description copied from interface: `Cropper`
      Returns a set of child components that are available at the client, or null if ALL available. The child components in the returned set must be in the same order of `Component.getChildren()`. In order words, you must use LinkedHashSet or similar to ensure the order in the returned set.

      Note: for better performance, it is better to return null if all children are available at the client.

      Note: the components in the returned set can have different parents. It is useful if you want to implement multi-level cropping, such as tree. Refer to `Cropper.getCropOwner()`.

      Specified by:
        `getAvailableAtClient` in interface `Cropper`