Package org.zkoss.stateless.ui

## Class VolatileIStubsComponent

- java.lang.Object
- - org.zkoss.zk.ui.AbstractComponent
  - - org.zkoss.zk.ui.sys.StubComponent
    - - org.zkoss.zk.ui.sys.StubsComponent
      - - org.zkoss.stateless.ui.IStubsComponent
        - - org.zkoss.stateless.ui.VolatileIStubsComponent

- All Implemented Interfaces:
    `java.io.Serializable`, `java.lang.Cloneable`, `Component`, `Scope`, `ComponentCtrl`

      public class VolatileIStubsComponent
      extends IStubsComponent

  Internal use only.
  Author:
    jumperchen
  See Also:
    Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.zkoss.zk.ui.AbstractComponent

      `AbstractComponent.Children, AbstractComponent.ForwardInfo, AbstractComponent.TargetInfo`

  - ### Field Summary

    - ### Fields inherited from class org.zkoss.zk.ui.sys.StubsComponent

      `_evtmap, _idmap, _uuids`

    - ### Fields inherited from interface org.zkoss.zk.ui.Component

      `APPLICATION_SCOPE, COMPONENT_SCOPE, DESKTOP_SCOPE, PAGE_SCOPE, REQUEST_SCOPE, SESSION_SCOPE, SPACE_SCOPE`

    - ### Fields inherited from interface org.zkoss.zk.ui.sys.ComponentCtrl

      `AFTER_CHILD_ADDED, AFTER_CHILD_REMOVED, AFTER_CLONED, AFTER_PAGE_ATTACHED, AFTER_PAGE_DETACHED, AFTER_PARENT_CHANGED, CE_BUSY_IGNORE, CE_DUPLICATE_IGNORE, CE_IMPORTANT, CE_NON_DEFERRABLE, CE_REPEAT_IGNORE`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `VolatileIStubsComponent()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.lang.String` | `getWidgetClass()` | Returns the widget class, "#stubs".
    `protected void` | `renderProperties​(ContentRenderer renderer)` | Called by (`ComponentCtrl.redraw(java.io.Writer)`) to render the properties, excluding the enclosing tag and children.
    `void` | `replace​(Component comp, boolean bFellow, boolean bListener, boolean bChildren)` | Replace the specified component with this component in the component tree.

    - ### Methods inherited from class org.zkoss.stateless.ui.IStubsComponent

      `getFellow, getFellowIfAny, mergeIComponent, removeStub, service`

    - ### Methods inherited from class org.zkoss.zk.ui.sys.StubsComponent

      `getId, isChildable, mapChildren, onChildrenMerged, onPageAttached, onPageDetached, toString`

    - ### Methods inherited from class org.zkoss.zk.ui.sys.StubComponent

      `service`

    - ### Methods inherited from class org.zkoss.zk.ui.AbstractComponent

      `addAnnotation, addCallback, addClientEvent, addEventHandler, addEventListener, addEventListener, addForward, addForward, addForward, addForward, addMoved, addRedrawCallback, addScopeListener, addShadowRoot, addShadowRootBefore, addSharedEventHandlerMap, appendChild, applyProperties, beforeChildAdded, beforeChildRemoved, beforeParentChanged, clone, destroyIndexCacheMap, detach, didActivate, didActivate, didDeserialize, didDeserialize, disableBindingAnnotation, disableClientUpdate, disableHostChanged, enableBindingAnnotation, enableHostChanged, getAnnotatedProperties, getAnnotatedPropertiesBy, getAnnotation, getAnnotations, getAnnotations, getAttribute, getAttribute, getAttribute, getAttributeOrFellow, getAttributes, getAttributes, getAuService, getAutag, getCallback, getChildren, getClientAttribute, getClientDataAttribute, getClientEvents, getDefaultMold, getDefinition, getDesktop, getEventHandler, getEventHandlerNames, getEventListenerMap, getEventListeners, getExtraCtrl, getFellow, getFellowIfAny, getFellows, getFirstChild, getForwards, getId, getIndexCacheMap, getLastChild, getMold, getNextSibling, getPage, getParent, getPreviousSibling, getPropertyAccess, getRedrawCallback, getRoot, getShadowFellowIfAny, getShadowRoots, getShadowVariable, getShadowVariable, getShadowVariable0, getSpaceOwner, getSpecialRendererOutput, getStubonly, getSubBindingAnnotationCount, getTemplate, getTemplateNames, getUuid, getWidgetAttributeNames, getWidgetListener, getWidgetListenerNames, getWidgetOverride, getWidgetOverrideNames, hasAttribute, hasAttribute, hasAttribute, hasAttributeOrFellow, hasBindingAnnotation, hasFellow, hasFellow, hasSubBindingAnnotation, initIndexCacheMap, insertBefore, invalidate, isDisabledHostChanged, isInitialized, isInvalidated, isListenerAvailable, isVisible, onChildAdded, onChildRemoved, onParentChanged, onWrongValue, query, queryAll, redraw, redrawChildren, removeAttribute, removeAttribute, removeAttribute, removeCallback, removeChild, removeEventListener, removeForward, removeForward, removeRedrawCallback, removeScopeListener, removeShadowRoot, render, render, render, renderPropertiesOnly, response, response, response, sessionDidActivate, sessionWillPassivate, setAttribute, setAttribute, setAttribute, setAuService, setAutag, setClientAttribute, setClientDataAttribute, setDefinition, setDefinition, setId, setMold, setPage, setPageBefore, setParent, setStubonly, setStubonly, setSubBindingAnnotationCount, setTemplate, setVisible, setVisibleDirectly, setWidgetClass, setWidgetListener, setWidgetOverride, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdateWidgetListener, smartUpdateWidgetOverride, updateByClient, updateSubBindingAnnotationCount, willPassivate, willPassivate, willSerialize, willSerialize`

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

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

- - ### Constructor Detail

    - #### VolatileIStubsComponent

          public VolatileIStubsComponent()

  - ### Method Detail

    - #### replace

          public void replace​(Component comp,
                              boolean bFellow,
                              boolean bListener,
                              boolean bChildren)

      Description copied from class: `StubComponent`
      Replace the specified component with this component in the component tree. In other words, the parent of the given component will become the parent of this components, so are siblings and children. Furthermore, comp will be detached at the end.

      Notice that the replacement won't change anything at the client. A stub component assumes there is a full-functional widget running at the client to handle everything.

      Overrides:
        `replace` in class `IStubsComponent`
      Parameters:
        `comp` - the component. In this implementation it supports only derived classes of `AbstractComponent`.
        `bFellow` - whether to add this component to the map of fellows if it is assigned with an ID. If false, the component (comp) cannot be retrieved back even with an ID.
        `bListener` - whether to retain the event listeners and handlers. If true, the event listeners and handlers, if any, will be registered to this stub component. In other words, the event will be processed. However, it is a stub component, rather than the original one. I means the event is the most generic format: an instance of `Event` (rather than MouseEvent or others).
        `bChildren` - whether to have the children of the given component.
        If false, this component won't have any children, and all UUID of children reference back to this component.
        If true, the given component's children will belong to this component.

    - #### getWidgetClass

          public java.lang.String getWidgetClass()

      Description copied from class: `StubsComponent`
      Returns the widget class, "#stubs".
      Specified by:
        `getWidgetClass` in interface `Component`
      Overrides:
        `getWidgetClass` in class `StubsComponent`
      See Also:
        `Component.setWidgetClass(java.lang.String)`

    - #### renderProperties

          protected void renderProperties​(ContentRenderer renderer)
                                   throws java.io.IOException

      Description copied from class: `AbstractComponent`
      Called by (`ComponentCtrl.redraw(java.io.Writer)`) to render the properties, excluding the enclosing tag and children.

      Default: it renders `AbstractComponent.getId()` if it was assigned, and event names if listened (and listed in `AbstractComponent.getClientEvents()`).

      Note: it doesn't render `AbstractComponent.getWidgetClass()`, `AbstractComponent.getUuid()` and `AbstractComponent.getMold()`, which are caller's job.

      Overrides:
        `renderProperties` in class `AbstractComponent`
      Throws:
        `java.io.IOException`