Package org.zkoss.stateless.state

## Class ITreeController<DataT>

- java.lang.Object
- - org.zkoss.stateless.state.ITreeController<DataT>

- All Implemented Interfaces:
    `ItemController<DataT,​TreeModel<DataT>,​ITree,​ITreeitem>`

      public class ITreeController<DataT>
      extends java.lang.Object
      implements ItemController<DataT,​TreeModel<DataT>,​ITree,​ITreeitem>

  An `ITree` controller to control any operation on the given model.

  Note: this class is not thread-safe, so when it's used in multi-threading environment, the developer should handle the threading issue.

  Author:
    jumperchen

- - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `ITree` | `build()` | Returns the immutable instance that the controller to build with
    `void` | `clear()` | Clears all the rendered data.
    `TreeModel<DataT>` | `getModel()` | Returns the model, which is set through by `ItemController.setModel(Object)`, or null.
    `CheckedFunction2<DataT,​java.lang.Integer,​ITreeitem>` | `getRenderer()` | Returns the renderer, which is set through by `ItemController.setRenderer(CheckedFunction2)`, or a default one which is depended on implementation.
    `DataT` | `getSelectedObject()` | Returns the selected object.
    `static <D> ITreeController<D>` | `of​(ITree owner, TreeModel<D> model)` | Returns the controller instance with the given `tree`
    `static <D> ITreeController<D>` | `of​(ITree owner, TreeModel<D> model, CheckedFunction2<D,​java.lang.Integer,​ITreeitem> renderer)` | Returns the controller instance with the given `tree`
    `void` | `setModel​(TreeModel<DataT> model)` | Sets the given model to this controller.
    `void` | `setRenderer​(CheckedFunction2<DataT,​java.lang.Integer,​ITreeitem> renderer)` | Sets the renderer which is used to render each data if `ItemController.getModel()` is not null.
    `void` | `setSelectedObject​(DataT item)` | Deselects selected object and selects the given object.

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

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

- - ### Method Detail

    - #### of

          public static <D> ITreeController<D> of​(ITree owner,
                                                  TreeModel<D> model)

      Returns the controller instance with the given `tree`
      Parameters:
        `owner` - The controller to control with
        `model` - The tree model to associate with the tree.

    - #### of

          public static <D> ITreeController<D> of​(ITree owner,
                                                  TreeModel<D> model,
                                                  CheckedFunction2<D,​java.lang.Integer,​ITreeitem> renderer)

      Returns the controller instance with the given `tree`
      Parameters:
        `owner` - The controller to control with
        `model` - The tree model to associate with the tree.
        `renderer` - The renderer of the tree model.

    - #### setModel

          public void setModel​(TreeModel<DataT> model)

      Description copied from interface: `ItemController`
      Sets the given model to this controller.

      Note: calling this method after `ItemController.build()`, you should invoke `ItemController.build()` again to take effect to replace the current one at client.
      For example,

           uiAgent.replaceWith(locator, itemController.build());

      Default: `null`

      Specified by:
        `setModel` in interface `ItemController<DataT,​TreeModel<DataT>,​ITree,​ITreeitem>`

    - #### getModel

          public TreeModel<DataT> getModel()

      Description copied from interface: `ItemController`
      Returns the model, which is set through by `ItemController.setModel(Object)`, or null.
      Specified by:
        `getModel` in interface `ItemController<DataT,​TreeModel<DataT>,​ITree,​ITreeitem>`

    - #### setRenderer

          public void setRenderer​(CheckedFunction2<DataT,​java.lang.Integer,​ITreeitem> renderer)

      Description copied from interface: `ItemController`
      Sets the renderer which is used to render each data if `ItemController.getModel()` is not null.

      Note: calling this method after `ItemController.build()`, you should invoke `ItemController.build()` again to take effect to replace the current one at client.
      For example,

           uiAgent.replaceWith(locator, itemController.build());

      Default: `null`, or depended on the implementation

      Specified by:
        `setRenderer` in interface `ItemController<DataT,​TreeModel<DataT>,​ITree,​ITreeitem>`

    - #### getRenderer

          public CheckedFunction2<DataT,​java.lang.Integer,​ITreeitem> getRenderer()

      Description copied from interface: `ItemController`
      Returns the renderer, which is set through by `ItemController.setRenderer(CheckedFunction2)`, or a default one which is depended on implementation.
      Specified by:
        `getRenderer` in interface `ItemController<DataT,​TreeModel<DataT>,​ITree,​ITreeitem>`

    - #### build

          public ITree build()

      Description copied from interface: `ItemController`
      Returns the immutable instance that the controller to build with
      Specified by:
        `build` in interface `ItemController<DataT,​TreeModel<DataT>,​ITree,​ITreeitem>`

    - #### getSelectedObject

          public DataT getSelectedObject()

      Returns the selected object.

    - #### setSelectedObject

          public void setSelectedObject​(DataT item)

      Deselects selected object and selects the given object.

    - #### clear

          public void clear()

      Description copied from interface: `ItemController`
      Clears all the rendered data.
      Specified by:
        `clear` in interface `ItemController<DataT,​TreeModel<DataT>,​ITree,​ITreeitem>`