## Uses of Interface
org.zkoss.stateless.sul.IComponent

- Packages that use IComponent
  Package | Description
  --- | ---
  org.zkoss.stateless.state |
  org.zkoss.stateless.sul |
  org.zkoss.stateless.ui |
  org.zkoss.stateless.ui.util |

- - ### Uses of IComponent in org.zkoss.stateless.state

    Classes in org.zkoss.stateless.state with type parameters of type IComponent
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `ItemController<DataT,​ModelT,​P extends IComponent,​ItemT>` | An interface for controlling model to build items, such as `ListModel`.

  - ### Uses of IComponent in org.zkoss.stateless.sul

    Classes in org.zkoss.stateless.sul with type parameters of type IComponent
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `IAnyGroup<I extends IComponent>` | An interface to represent the implementation can be added into any group.
    `interface` | `IChildable<R,​I extends IComponent>` | An interface to indicate any child is allowed for `IComponent`.
    `interface` | `IComponent<R extends IComponent>` | Immutable `Component` interface.
    `interface` | `IComposite<R,​I extends IComponent>` | An addition interface to `IChildable` and `ISingleChildable` to retrieve all `IComponent`s which belong to the implementation class.
    `interface` | `IDisable<I extends IComponent>` | Immutable `Disable` interface
    `interface` | `IReadonly<I extends IComponent>` | Immutable `Readonly` interface.
    `interface` | `ISingleChildable<R,​T extends IComponent>` | An interface to indicate only one child is allowed for `IComponent`.

    Subinterfaces of IComponent in org.zkoss.stateless.sul
    Modifier and Type | Interface | Description
    --- | --- | ---
    `interface` | `IA<I extends IAnyGroup>` | Immutable `A` component
    `interface` | `IAbsolutechildren<I extends IAnyGroup>` | Immutable `Absolutechildren` component
    `interface` | `IAbsolutelayout` | Immutable `Absolutelayout` component
    `interface` | `IAnchornav<I extends IAnyGroup>` | Immutable `Anchornav` component
    `interface` | `IAnyGroup<I extends IComponent>` | An interface to represent the implementation can be added into any group.
    `interface` | `IArea` | Immutable `Area` component
    `interface` | `IAudio` | Immutable `Audio` component
    `interface` | `IAuxhead` | Immutable `Auxhead` component
    `interface` | `IAuxheader<I extends IAnyGroup>` | Immutable `Auxheader` component
    `interface` | `IBandbox` | Immutable `Bandbox` component.
    `interface` | `IBandpopup<I extends IAnyGroup>` | Immutable `Bandpopup` component
    `interface` | `IBarcode` | Immutable `Barcode` component
    `interface` | `IBarcodescanner` | Immutable `Barcodescanner` component
    `interface` | `IBiglistbox` | Immutable `Biglistbox` component
    `interface` | `IBorderlayout` | Immutable `Borderlayout` component
    `interface` | `IButton` | Immutable `Button` component
    `interface` | `IButtonBase<I extends IButtonBase>` | Immutable `Button` base component
    `interface` | `ICalendar` | Immutable `Calendar` component
    `interface` | `ICamera` | Immutable `Camera` component
    `interface` | `ICaption<I extends IAnyGroup>` | Immutable `Caption` component.
    `interface` | `ICardlayout<I extends IAnyGroup>` | Immutable `Cardlayout` component
    `interface` | `ICascader` | Immutable `Cascader` component
    `interface` | `ICell<I extends IAnyGroup>` | Immutable `Cell` component
    `interface` | `ICenter<I extends IAnyGroup>` | Immutable `Center` component
    `interface` | `ICheckbox` | Immutable `Checkbox` component
    `interface` | `ICheckboxBase<I extends ICheckboxBase>` | Immutable `ICheckbox` base component.
    `interface` | `IChildrenOfInputgroup<I extends IChildrenOfInputgroup>` | An interface to indicate child is allowed for `IInputgroup`
    `interface` | `IChildrenOfMenupopup<I extends IChildrenOfMenupopup>` | An interface to indicate child is allowed for `IMenupopup`.
    `interface` | `IChildrenOfNavbar<I extends IChildrenOfNavbar>` | An interface to indicate child is allowed for `INav`.
    `interface` | `IChildrenOfPanel<I extends IChildrenOfPanel>` | An interface to indicate child is allowed for `IPanel`.
    `interface` | `IChildrenOfTab<I extends IChildrenOfTab>` | An interface to indicate child is allowed for `ITab`.
    `interface` | `IChosenbox` | Immutable `Chosenbox` component
    `interface` | `ICoachmark<I extends IAnyGroup>` | Immutable `Coachmark` component
    `interface` | `IColorbox` | Immutable `Colorbox` component
    `interface` | `IColumn<I extends IAnyGroup>` | Immutable `Column` component
    `interface` | `IColumnchildren<I extends IAnyGroup>` | Immutable `Columnchildren` component
    `interface` | `IColumnlayout` | Immutable `Columnlayout` component
    `interface` | `IColumns` | Immutable `Columns` component
    `interface` | `ICombobox` | Immutable `Combobox` component
    `interface` | `ICombobutton` | Immutable `Combobutton` component
    `interface` | `IComboitem` | Immutable `Comboitem` component
    `interface` | `ICropper` | Immutable `Cropper` component
    `interface` | `IDatebox` | Immutable `Datebox` component
    `interface` | `IDateTimeFormatInputElement<I extends IDateTimeFormatInputElement>` | Immutable `DateTimeFormatInputElement` component.
    `interface` | `IDecimalbox` | Immutable `Decimalbox` component.
    `interface` | `IDetail<I extends IAnyGroup>` | Immutable `Detail` component
    `interface` | `IDetailChild<I extends IDetailChild>` | An interface to indicate a Detail component which its implementation is EE only.
    `interface` | `IDiv<I extends IAnyGroup>` | Immutable `Div` component.
    `interface` | `IDoublebox` | Immutable `Doublebox` component.
    `interface` | `IDoublespinner` | Immutable `Doublespinner` component.
    `interface` | `IDrawer<I extends IAnyGroup>` | Immutable `Drawer` component.
    `interface` | `IDropupload` | Immutable `Dropupload` component
    `interface` | `IEast<I extends IAnyGroup>` | Immutable `East` component
    `interface` | `IFileupload` | Immutable `Fileupload` component
    `interface` | `IFisheye` | Immutable `Fisheye` component.
    `interface` | `IFisheyebar` | Immutable `Fisheyebar` component
    `interface` | `IFoot` | Immutable `Foot` component
    `interface` | `IFooter<I extends IAnyGroup>` | Immutable `Footer` component
    `interface` | `IFooterElement<I extends IFooterElement>` | A skeletal implementation for a footer.
    `interface` | `IFormatInputElement<I extends IFormatInputElement,​ValueTypeT>` | Immutable `FormatInputElement` interface.
    `interface` | `IFrozen<I extends IAnyGroup>` | Immutable `Frozen` component
    `interface` | `IGoldenLayout` | Immutable `GoldenLayout` component
    `interface` | `IGoldenPanel<I extends IAnyGroup>` | Immutable `GoldenPanel` component
    `interface` | `IGrid` | Immutable `Grid` component
    `interface` | `IGridComposite<I extends IGridComposite>` | Represents a composition of `IComponent` onto `IGrid`.
    `interface` | `IGroup<I extends IAnyGroup>` | Immutable `Group` component
    `interface` | `IGroupbox<I extends IAnyGroup>` | Immutable `Groupbox` component.
    `interface` | `IGroupChild<I extends IGroupChild>` | An interface to indicate a Group component which its implementation is PE and EE only.
    `interface` | `IGroupfoot<I extends IAnyGroup>` | Immutable `Groupfoot` component
    `interface` | `IGroupfootChild<I extends IGroupfootChild>` | An interface to indicate a Groupfoot component which its implementation is PE and EE only.
    `interface` | `IHeaderElement<I extends IHeaderElement>` | Immutable `HeaderElement` interface
    `interface` | `IHeadersElement<I extends IHeadersElement>` | A skeletal implementation for headers, the parent of a group of `IHeaderElement`.
    `interface` | `IHlayout<I extends IAnyGroup>` | Immutable `Hlayout` component
    `interface` | `IHtml` | Immutable `Html` component
    `interface` | `IHtmlBasedComponent<I extends IHtmlBasedComponent>` | Immutable `HtmlBasedComponent` interface.
    `interface` | `IIframe` | Immutable `Iframe` component
    `interface` | `IImage` | Immutable `Image` component
    `interface` | `IImageBase<I extends IImageBase>` | Immutable `Image` base component.
    `interface` | `IImagemap` | Immutable `Imagemap` component
    `interface` | `IInputElement<I extends IInputElement,​ValueTypeT>` | Immutable `InputElement` interface.
    `interface` | `IInputgroup` | Immutable `Inputgroup` component
    `interface` | `IIntbox` | Immutable `Intbox` component
    `interface` | `ILabel` | Immutable `Label` component
    `interface` | `ILabelElement<I extends ILabelElement>` | Immutable `LabelElement` interface
    `interface` | `ILabelImageElement<I extends ILabelImageElement>` | Immutable `LabelImageElement` interface
    `interface` | `ILayout<I extends ILayout>` | Immutable `Layout` interface.
    `interface` | `ILayoutRegion<I extends ILayoutRegion>` | Immutable `LayoutRegion` interface
    `interface` | `ILineitem<I extends IAnyGroup>` | Immutable `Lineitem` component
    `interface` | `ILinelayout` | Immutable `Linelayout` component
    `interface` | `IListbox` | Immutable `Listbox` component
    `interface` | `IListboxComposite<I extends IListboxComposite>` | Represents a composition of `IComponent` onto `IListbox`.
    `interface` | `IListcell<I extends IAnyGroup>` | Immutable `Listcell` component
    `interface` | `IListfoot` | Immutable `Listfoot` component
    `interface` | `IListfooter<I extends IAnyGroup>` | Immutable `Listfooter` component
    `interface` | `IListgroup` | Immutable `Listgroup` component
    `interface` | `IListgroupChild<I extends IListgroupChild>` | An interface to indicate a Listgroup component which its implementation is PE and EE only.
    `interface` | `IListgroupfoot` | Immutable `Listgroupfoot` component
    `interface` | `IListgroupfootChild<I extends IListgroupfootChild>` | An interface to indicate a Listgroupfoot component which its implementation is PE and EE only.
    `interface` | `IListhead` | Immutable `Listhead` component
    `interface` | `IListheader<I extends IAnyGroup>` | Immutable `Listheader` component
    `interface` | `IListitem` | Immutable `Listitem` component
    `interface` | `IListitemBase<I extends IListitemBase>` | Immutable `Listitem` base component
    `interface` | `ILongbox` | Immutable `Longbox` component.
    `interface` | `IMenu` | Immutable `Menu` component
    `interface` | `IMenubar` | Immutable `Menubar` component
    `interface` | `IMenuitem` | Immutable `Menuitem` component
    `interface` | `IMenupopup` | Immutable `Menupopup` component
    `interface` | `IMenuseparator` | Immutable `Menuseparator` component
    `interface` | `IMeshComposite<I extends IMeshComposite>` | Represents a composition of `IComponent` onto `IMeshElement`.
    `interface` | `IMeshElement<I extends IMeshElement>` | Immutable `MeshElement` interface
    `interface` | `IMultislider` | Immutable `Multislider` component
    `interface` | `INav` | Immutable `Nav` component
    `interface` | `INavbar` | Immutable `Navbar` component
    `interface` | `INavitem` | Immutable `Navitem` component
    `interface` | `INavseparator` | Immutable `Navseparator` component
    `interface` | `INorth<I extends IAnyGroup>` | Immutable `North` component
    `interface` | `INumberInputElement<I extends INumberInputElement,​ValueTypeT>` | Immutable `NumberInputElement` interface.
    `interface` | `IOrganigram` | Immutable `Organigram` component
    `interface` | `IOrgchildren` | Immutable `Orgchildren` component
    `interface` | `IOrgitem` | Immutable `Orgitem` component
    `interface` | `IOrgitemComposite<I extends IOrgitemComposite>` | Represents a composition of `IComponent` onto `IOrgitem`.
    `interface` | `IOrgnode<I extends IAnyGroup>` | Immutable `Orgnode` component
    `interface` | `IPaging` | Immutable `Paging` component
    `interface` | `IPanel` | Immutable `Panel` component
    `interface` | `IPanelchildren<I extends IAnyGroup>` | Immutable `Panelchildren` component
    `interface` | `IPdfviewer` | Immutable `Pdfviewer` component
    `interface` | `IPopup<I extends IAnyGroup>` | Immutable `Popup` component
    `interface` | `IPopupBase<I extends IPopupBase>` | Immutable `Popup` base component
    `interface` | `IPortalchildren` | Immutable `Portalchildren` component
    `interface` | `IPortallayout` | Immutable `Portallayout` component
    `interface` | `IProgressmeter` | Immutable `Progressmeter` component
    `interface` | `IRadio` | Immutable `Radio` component
    `interface` | `IRadiogroup<I extends IAnyGroup>` | Immutable `Radiogroup` component
    `interface` | `IRangeslider` | Immutable `Rangeslider` component
    `interface` | `IRangesliderBase<I extends IRangesliderBase>` | Immutable `Rangeslider` base component
    `interface` | `IRating` | Immutable `Rating` component
    `interface` | `IRow<I extends IAnyGroup>` | Immutable `Row` component
    `interface` | `IRowBase<I extends IRowBase>` | Immutable `Row` component
    `interface` | `IRowchildren<I extends IAnyGroup>` | Immutable `Rowchildren` component
    `interface` | `IRowlayout` | Immutable `Rowlayout` component
    `interface` | `IRows` | Immutable `Rows` component
    `interface` | `IScript` | Immutable `Script` component
    `interface` | `IScrollview<I extends IAnyGroup>` | Immutable `Scrollview` component
    `interface` | `ISearchbox` | Immutable `Searchbox` component.
    `interface` | `ISelectbox` | Immutable `Selectbox` component
    `interface` | `ISeparator` | Immutable `Separator` component
    `interface` | `ISeparatorBase<I extends ISeparatorBase>` | Immutable `Separator` component
    `interface` | `ISignature` | Immutable `Signature` component.
    `interface` | `ISlider` | Immutable `Slider` component
    `interface` | `ISliderbuttons` | Immutable `Sliderbuttons` component
    `interface` | `ISouth<I extends IAnyGroup>` | Immutable `South` component
    `interface` | `ISpace` | Immutable `Space` component
    `interface` | `ISpan<I extends IAnyGroup>` | Immutable `Span` component.
    `interface` | `ISpinner` | Immutable `Spinner` component
    `interface` | `ISplitlayout<I extends IAnyGroup>` | Immutable `Splitlayout` component
    `interface` | `IStep` | Immutable `Step` component
    `interface` | `IStepbar` | Immutable `Stepbar` component
    `interface` | `IStyle` | Immutable `Style` component
    `interface` | `ITab` | Immutable `Tab` component
    `interface` | `ITabbox` | Immutable `Tabbox` component
    `interface` | `ITabboxComposite<I extends ITabboxComposite>` | Represents a composition of `IComponent` onto `ITabbox`.
    `interface` | `ITablechildren<I extends IAnyGroup>` | Immutable `Tablechildren` component
    `interface` | `ITablelayout` | Immutable `Tablelayout` component
    `interface` | `ITabpanel<I extends IAnyGroup>` | Immutable `Tabpanel` component
    `interface` | `ITabpanels` | Immutable `Tabpanels` component
    `interface` | `ITabs` | Immutable `Tabs` component
    `interface` | `ITbeditor` | Immutable `Tbeditor` component
    `interface` | `ITextbox` | Immutable `Textbox` component
    `interface` | `ITextboxBase<I extends ITextboxBase>` | Immutable `Textbox` base component.
    `interface` | `ITimebox` | Immutable `Timebox` component.
    `interface` | `ITimepicker` | Immutable `Timepicker` component.
    `interface` | `ITimer` | Immutable `Timer` component
    `interface` | `IToolbar<I extends IAnyGroup>` | Immutable `Toolbar` component
    `interface` | `IToolbarbutton` | Immutable `Toolbarbutton` component
    `interface` | `ITrack` | Immutable `Track` component
    `interface` | `ITree` | Immutable `Tree` component.
    `interface` | `ITreecell<I extends IAnyGroup>` | Immutable `Treecell` component
    `interface` | `ITreechildren` | Immutable `Treechildren` component
    `interface` | `ITreecol<I extends IAnyGroup>` | Immutable `Treecol` component
    `interface` | `ITreecols` | Immutable `Treecols` component
    `interface` | `ITreeComposite<I extends ITreeComposite>` | Represents a composition of `IComponent` onto `ITree`.
    `interface` | `ITreefoot` | Immutable `Treefoot` component
    `interface` | `ITreefooter<I extends IAnyGroup>` | Immutable `Treefooter` component
    `interface` | `ITreeitem` | Immutable `Treeitem` component
    `interface` | `ITreeitemComposite<I extends ITreeitemComposite>` | Represents a composition of `IComponent` onto `ITreeitem`.
    `interface` | `ITreerow` | Immutable `Treerow` component
    `interface` | `IVideo` | Immutable `Video` component
    `interface` | `IVlayout<I extends IAnyGroup>` | Immutable `Vlayout` component
    `interface` | `IWest<I extends IAnyGroup>` | Immutable `West` component
    `interface` | `IWindow<I extends IAnyGroup>` | Immutable `Window` component
    `interface` | `IXulElement<I extends IXulElement>` | Immutable `XulElement` interface.

    Methods in org.zkoss.stateless.sul with parameters of type IComponent
    Modifier and Type | Method | Description
    --- | --- | ---
    `static boolean` | IComponentCtrl.`hasAction​(IComponent iComponent)` | Tests if the given `IComponent` contains `aciton` or `actions`.
    `default R` | IChildable.`withChildren​(I... elements)` | Copy the current immutable object with elements that replace the content of `children`.
    `default ICoachmark` | ICoachmark.`withTarget​(IComponent target)` | Returns a copy of `this` immutable component with the specified `target`.

    Method parameters in org.zkoss.stateless.sul with type arguments of type IComponent
    Modifier and Type | Method | Description
    --- | --- | ---
    `default IRow<I>` | IRow.`withAllComponents​(java.lang.Iterable<? extends IComponent> elements)` |

  - ### Uses of IComponent in org.zkoss.stateless.ui

    Classes in org.zkoss.stateless.ui with type parameters of type IComponent
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `BuildContext<I extends IComponent>` | A build context to hold the necessary meta info when building components.
    `interface` | `IComponentBuilder<I extends IComponent>` | An immutable component builder interface to build a component tree to the given view.
    `interface` | `IReplacer<T extends IComponent>` | An IComponent replacer to replace the descendant from the root component.
    `interface` | `StatelessComposer<I extends IComponent>` | A state less composer to compose of ZK `Component`s into Stateless immutable `IComponent`s

    Methods in org.zkoss.stateless.ui with type parameters of type IComponent
    Modifier and Type | Method | Description
    --- | --- | ---
    `<I extends IComponent> UiAgent` | UiAgent.`appendChild​(Locator locator, I newChild)` | Adds the specified child component as the last child to the current locator.
    `static <T extends IComponent> T` | ISelectors.`findById​(IComponent root, java.lang.String id)` | Returns the icomponent that seeking from the root icomponent to match its id.
    `<T extends IComponent<?>> T` | ISelector.`get​(int[] path)` | Returns the target icomponent by its given path if matched.
    `<T extends IComponent<?>> T` | ISelector.`get​(java.lang.String id)` | Returns the target icomponent by its given id if matched.
    `<T extends IComponent<?>> java.util.List<T>` | ISelector.`getAncestor​(int[] path)` | Returns all the ancestor from top to bottom for the given path.
    `<T extends IComponent<?>> java.util.List<T>` | ISelector.`getAncestor​(IComponent ichild)` | Returns all the ancestor from top to bottom for the given ichild.
    `<T extends IComponent<?>> T` | ISelector.`getParent​(IComponent ichild)` | Returns the target parent.
    `<I extends IComponent> UiAgent` | UiAgent.`insertAdjacentComponent​(Locator locator, UiAgent.Position position, I newChild)` | Inserts a given newChild at a given `UiAgent.Position` relative to the locator component it is invoked upon.
    `<I extends IComponent> UiAgent` | UiAgent.`insertAfterBegin​(Locator locator, I newChild)` | Inserts a given newChild just inside the locator before its first child.
    `<I extends IComponent> UiAgent` | UiAgent.`insertAfterEnd​(Locator locator, I newChild)` | Inserts a given newChild after the locator itself.
    `<I extends IComponent> UiAgent` | UiAgent.`insertBefore​(Locator locator, I newChild, int childIndex)` | Inserts the given newChild just inside the locator, before its n-th child.
    `<I extends IComponent> UiAgent` | UiAgent.`insertBeforeBegin​(Locator locator, I newChild)` | Inserts a given newChild before the locator itself.
    `<I extends IComponent> UiAgent` | UiAgent.`insertBeforeEnd​(Locator locator, I newChild)` | Inserts a given newChild just inside the locator after its last child.
    `static <I extends IComponent> BuildContext<I>` | BuildContext.`newInstance​(I owner)` | Creates a simple build context with the given immutable component.
    `static <I extends IComponent> Locator` | Locator.`of​(I iComponent)` | Returns a locator to the given `IComponent`.
    `static <I extends IComponent> java.util.Collection<JavaScriptValue>` | UiAgentCtrl.`redraw​(Locator locator, java.util.Collection<I> children)` | An utilities to create an array of JavaScript objects (`JavaScriptValue`) that can be used to mount the specified widget at the clients.
    `<I extends IComponent<?>> IReplacer<T>` | IReplacer.`replace​(I source, I target)` | Replaces the given immutable component with a given new `IComponent` in the descendant of the root.
    `<I extends IComponent<?>> IReplacer<T>` | IReplacer.`replaceById​(java.lang.String source, CheckedFunction<I,​I> targetFunction)` | Replaces the given source with a given new `IComponent` in the descendant of the root.
    `<I extends IComponent> UiAgent` | UiAgent.`replaceChild​(Locator locator, I newChild, int childIndex)` | Replaces the given newChild just inside the locator with its n-th child.
    `<I extends IComponent> UiAgent` | UiAgent.`replaceChildren​(Locator locator)` | Removes the existing children of the given locator component.
    `<I extends IComponent> UiAgent` | UiAgent.`replaceChildren​(Locator locator, I... children)` | Replaces the existing children of the given locator component with a specified new set of children `IComponent`s.
    `<I extends IComponent> UiAgent` | UiAgent.`replaceChildren​(Locator locator, java.util.List<I> children)` | Replaces the existing children of the given locator component with a specified new set of children `IComponent`s.
    `<I extends IComponent> UiAgent` | UiAgent.`replaceWith​(Locator locator, I newComp)` | Replaces the given locator component in the children list of its parent with a given new `IComponent`.
    `static <I extends IComponent> void` | UiAgentCtrl.`response​(java.lang.String key, AuResponse response)` | Adds a response which will be sent to client at the end of the execution.
    `static <I extends IComponent> void` | UiAgentCtrl.`response​(java.lang.String key, AuResponse response, int priority)` | Adds a response with the given priority.
    `static <I extends IComponent> void` | UiAgentCtrl.`response​(AuResponse response)` | Adds a response directly.
    `static <I extends IComponent> void` | UiAgentCtrl.`smartUpdate​(Locator locator, java.lang.String attr, boolean value)` | A special smart update to update a value in boolean.
    `static <I extends IComponent> void` | UiAgentCtrl.`smartUpdate​(Locator locator, java.lang.String attr, byte value)` | A special smart update to update a value in byte.
    `static <I extends IComponent> void` | UiAgentCtrl.`smartUpdate​(Locator locator, java.lang.String attr, char value)` | A special smart update to update a value in char.
    `static <I extends IComponent> void` | UiAgentCtrl.`smartUpdate​(Locator locator, java.lang.String attr, double value)` | A special smart update to update a value in double.
    `static <I extends IComponent> void` | UiAgentCtrl.`smartUpdate​(Locator locator, java.lang.String attr, float value)` | A special smart update to update a value in float.
    `static <I extends IComponent> void` | UiAgentCtrl.`smartUpdate​(Locator locator, java.lang.String attr, int value)` | A special smart update to update a value in int.
    `static <I extends IComponent> void` | UiAgentCtrl.`smartUpdate​(Locator locator, java.lang.String attr, long value)` | A special smart update to update a value in long.
    `static <I extends IComponent> void` | UiAgentCtrl.`smartUpdate​(Locator locator, java.lang.String attr, java.lang.Object value)` | A special smart update to update a value in Object.
    `static <I extends IComponent> void` | UiAgentCtrl.`smartUpdate​(Locator locator, java.lang.String attr, java.lang.Object value, boolean append)` | A special smart update to update a value in Object.

    Methods in org.zkoss.stateless.ui that return IComponent
    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract IComponent` | IStubComponent.`getOwner()` | Returns the immutable component.

    Methods in org.zkoss.stateless.ui with parameters of type IComponent
    Modifier and Type | Method | Description
    --- | --- | ---
    `static <T extends IComponent> T` | ISelectors.`findById​(IComponent root, java.lang.String id)` | Returns the icomponent that seeking from the root icomponent to match its id.
    `<T extends IComponent<?>> java.util.List<T>` | ISelector.`getAncestor​(IComponent ichild)` | Returns all the ancestor from top to bottom for the given ichild.
    `<T extends IComponent<?>> T` | ISelector.`getParent​(IComponent ichild)` | Returns the target parent.
    `int[]` | ISelector.`getPath​(IComponent ichild)` | Returns the target path.
    `static IStubComponent` | IStubComponent.`of​(IComponent root)` |
    `static java.lang.String` | IStubComponent.`redraw​(IComponent root)` |
    `IReplacer<T>` | IReplacer.`replaceById​(java.lang.String source, IComponent<?> target)` | Replaces the given source with a given new `IComponent` in the descendant of the root.
    `<I extends IComponent> UiAgent` | UiAgent.`replaceChildren​(Locator locator, I... children)` | Replaces the existing children of the given locator component with a specified new set of children `IComponent`s.
    `static ISelector` | ISelectors.`select​(IComponent root)` | Returns the iselector fot the given root context.

    Method parameters in org.zkoss.stateless.ui with type arguments of type IComponent
    Modifier and Type | Method | Description
    --- | --- | ---
    `Locator` | Locator.`closest​(java.lang.Class<? extends IComponent> iClass)` | Traverses the locator and its parents until it finds a widget that matches the provided selector iClass.
    `Locator` | Self.`closest​(java.lang.Class<? extends IComponent> selector)` |
    `Locator` | Locator.`find​(java.lang.Class<? extends IComponent> selector)` | Returns the first locator that is a descendant of the locator on which it is invoked that matches the specified class.
    `Locator` | Self.`find​(java.lang.Class<? extends IComponent> selector)` |
    `Locator` | Locator.`findChild​(java.lang.Class<? extends IComponent> selector)` | Returns the first locator that is a direct child of the locator on which it is invoked that matches the specified class.
    `Locator` | Self.`findChild​(java.lang.Class<? extends IComponent> selector)` |

  - ### Uses of IComponent in org.zkoss.stateless.ui.util

    Classes in org.zkoss.stateless.ui.util with type parameters of type IComponent
    Modifier and Type | Class | Description
    --- | --- | ---
    `class` | `StatelessContentRenderer<I extends IComponent>` | A renderer context to wrap ZK ContentRenderer with Stateless runtime meta.

    Methods in org.zkoss.stateless.ui.util with type parameters of type IComponent
    Modifier and Type | Method | Description
    --- | --- | ---
    `static <T extends IComponent> java.util.List<T>` | Immutables.`createComponents​(java.lang.String uri, java.util.Map<?,​?> arg)` | Creates `IComponent`s from `Component`s that don't belong to any page from a page file specified by an URI.
    `static <T extends IComponent> java.util.List<T>` | Immutables.`createComponents​(PageDefinition pagedef, java.util.Map<?,​?> arg)` | Creates `IComponent`s from `Component`s that don't belong to any page from the specified page definition.
    `static <T extends IComponent> java.util.List<T>` | Immutables.`createComponentsDirectly​(java.lang.String content, java.lang.String extension, java.util.Map<?,​?> arg)` | Creates `IComponent`s from `Component`s that don't belong to any page from the raw content specified by a string.
    `<T extends IComponent> java.util.List<T>` | VolatileIPage.`getAllIComponents()` |
    `static <T extends IComponent> IReplacer<T>` | Immutables.`newReplacer​(T root)` | Constructs a replacer for replacing the descendant of the IComponent tree in a bulk execution for multiple replacements.
    `static <T extends Component,​I extends IComponent> I` | Immutables.`proxyIComponent​(T t)` | Makes a proxy of `Component` into `IComponent`.
    `static <R extends IComponent,​T extends IComponent> R` | Immutables.`replaceDescendant​(R root, T source, T target)` | Replaces the descendant of the given root with the new child from the given source, if any.
    `static <R extends IComponent,​T extends IComponent> R` | Immutables.`replaceDescendant​(R root, T source, T target)` | Replaces the descendant of the given root with the new child from the given source, if any.
    `static <R extends IComponent,​T extends IComponent> R` | Immutables.`replaceDescendantById​(R root, java.lang.String sourceId, CheckedFunction<T,​T> targetFunction)` | Replaces the descendant of the given root with the new child from the given source, if any.
    `static <R extends IComponent,​T extends IComponent> R` | Immutables.`replaceDescendantById​(R root, java.lang.String sourceId, CheckedFunction<T,​T> targetFunction)` | Replaces the descendant of the given root with the new child from the given source, if any.
    `static <R extends IComponent> R` | Immutables.`replaceDescendantById​(R root, java.lang.String sourceId, IComponent<?> target)` | Replaces the descendant of the given root with the new child from the given source, if any.

    Methods in org.zkoss.stateless.ui.util that return IComponent
    Modifier and Type | Method | Description
    --- | --- | ---
    `static IComponent` | Immutables.`proxyIChild​(Component instance)` |
    `static IComponent` | Immutables.`proxyIChild​(Component instance, java.lang.Class<? extends Component> skipClass)` |

    Methods in org.zkoss.stateless.ui.util that return types with arguments of type IComponent
    Modifier and Type | Method | Description
    --- | --- | ---
    `static java.util.List<? extends IComponent>` | Immutables.`proxyIChildren​(Component instance)` |

    Methods in org.zkoss.stateless.ui.util with parameters of type IComponent
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | VolatileIPage.`addAction​(IComponent owner, java.lang.String name, ActionHandler handler)` |
    `static StatelessEventListenerMap` | VolatileIPage.`removeVolatileEventListenerMap​(Page page, IComponent icmp)` |
    `static <R extends IComponent> R` | Immutables.`replaceDescendantById​(R root, java.lang.String sourceId, IComponent<?> target)` | Replaces the descendant of the given root with the new child from the given source, if any.