Package org.zkoss.zk.ui.impl

## Interface UiEngineImpl.Extension

- All Known Implementing Classes:
    `UiEngineExtension`, `UiEngineExtension`
  Enclosing class:
    UiEngineImpl

      public static interface UiEngineImpl.Extension

  An interface used to extend the UI engine. The class name of the extension shall be specified in the library properties called org.zkoss.zk.ui.impl.UiEngineImpl.extension.

  Notice that it is used only internally.

  Since:
    5.0.8

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `afterCreate​(Component[] comps)` | Called after the whole component tree has been created by this engine.
    `void` | `afterRenderComponents​(java.util.Collection<Component> comps)` | Called when this engine renders the given components.
    `void` | `afterRenderNewPage​(Page page)` | Called after a new page has been redrawn (`PageCtrl.redraw(java.io.Writer)` has been called).

- - ### Method Detail

    - #### afterCreate

          void afterCreate​(Component[] comps)

      Called after the whole component tree has been created by this engine.

      The implementation might implement this method to process the components, such as merging, if necessary.

      Parameters:
        `comps` - the components being created. It is never null but it might be a zero-length array.

    - #### afterRenderNewPage

          void afterRenderNewPage​(Page page)

      Called after a new page has been redrawn (`PageCtrl.redraw(java.io.Writer)` has been called).

      Notice that it is called in the rendering phase (the last phase), so it is not allowed to post events or to invoke invalidate or smartUpdate in this method.

      Notice that it is not called if an old page is redrawn.

      The implementation shall process the components such as merging if necessary.

      See Also:
        `UiEngineImpl.execNewPage(org.zkoss.zk.ui.Execution, org.zkoss.zk.ui.Richlet, org.zkoss.zk.ui.Page, java.io.Writer)`

    - #### afterRenderComponents

          void afterRenderComponents​(java.util.Collection<Component> comps)

      Called when this engine renders the given components. It is designed to be overridden if you'd like to alter the component and its children after they are rendered.
      Parameters:
        `comps` - the collection of components that have been redrawn.
      Since:
        6.0.0