Class Treechildren
- java.lang.Object
-
- org.zkoss.zk.ui.AbstractComponent
-
- org.zkoss.zk.ui.HtmlBasedComponent
-
- org.zkoss.zul.impl.XulElement
-
- org.zkoss.zul.Treechildren
-
- All Implemented Interfaces:
java.io.Serializable
,java.lang.Cloneable
,Component
,Scope
,ComponentCtrl
public class Treechildren extends XulElement
A treechildren.- Author:
- tomyeh
- See Also:
- Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
Treechildren.ExtraCtrl
A utility class to implementHtmlBasedComponent.getExtraCtrl()
.-
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.HtmlBasedComponent
_zclass
-
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_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 Treechildren()
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
beforeChildAdded(Component child, Component refChild)
Default: does nothing.void
beforeParentChanged(Component parent)
Default: If parent is null, execute the @Destroy method if any.java.lang.Object
getExtraCtrl()
Returns the client control for this component.int
getItemCount()
Returns the number of childTreeitem
including all descendants.java.util.Collection<Treeitem>
getItems()
Returns a readonly list of all descendingTreeitem
(children's children and so on).Treerow
getLinkedTreerow()
Returns theTreerow
that is associated with this treechildren, or null if no such treerow.Tree
getTree()
Returns theTree
instance containing this element.int
getVisibleItemCount()
Returns the number of visible descendantTreeitem
.java.lang.String
getZclass()
Returns the ZK Cascading Style class for this component.boolean
insertBefore(Component newChild, Component refChild)
Inserts a child before the reference child.void
onChildAdded(Component child)
Default: handles special event listeners.void
onChildRemoved(Component child)
Default: handles special event listeners.void
onPageAttached(Page newpage, Page oldpage)
Default: handles special event listeners.protected void
redrawChildren(java.io.Writer out)
Redraws children (and then recursively descendants).void
setHflex(java.lang.String flex)
Deprecated.as of release 6.0.0.void
setParent(Component parent)
Sets the parent component.void
setWidth(java.lang.String width)
Deprecated.as of release 6.0.0.protected void
smartUpdate(java.lang.String name, java.lang.Object value)
Smart-updates a property of the peer widget associated with the component, running at the client, with the given value.-
Methods inherited from class org.zkoss.zul.impl.XulElement
clone, getContext, getCtrlKeys, getPopup, getPropertyAccess, getTooltip, renderProperties, setContext, setContext, setContextAttributes, setCtrlKeys, setPopup, setPopup, setPopupAttributes, setTooltip, setTooltip, setTooltipAttributes
-
Methods inherited from class org.zkoss.zk.ui.HtmlBasedComponent
addSclass, evalCSSFlex, focus, getAction, getClientAction, getDraggable, getDroppable, getHeight, getHflex, getLeft, getRenderdefer, getSclass, getStyle, getTabindex, getTabindexInteger, getTooltiptext, getTop, getVflex, getWidth, getZindex, getZIndex, removeSclass, removeSclass, service, setAction, setClass, setClientAction, setDraggable, setDroppable, setFocus, setHeight, setHeight0, setHeightDirectly, setHflex0, setHflexDirectly, setLeft, setLeftDirectly, setRenderdefer, setSclass, setStyle, setTabindex, setTabindex, setTooltiptext, setTop, setTopDirectly, setVflex, setVflex0, setVflexDirectly, setWidth0, setWidthDirectly, setZclass, setZindex, setZIndex, setZIndexDirectly
-
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, beforeChildRemoved, 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, getFellow, getFellow, getFellowIfAny, getFellowIfAny, getFellows, getFirstChild, getForwards, getId, getIndexCacheMap, getLastChild, getMold, getNextSibling, getPage, getParent, getPreviousSibling, getRedrawCallback, getRoot, getShadowFellowIfAny, getShadowRoots, getShadowVariable, getShadowVariable, getShadowVariable0, getSpaceOwner, getSpecialRendererOutput, getStubonly, getSubBindingAnnotationCount, getTemplate, getTemplateNames, getUuid, getWidgetAttributeNames, getWidgetClass, getWidgetListener, getWidgetListenerNames, getWidgetOverride, getWidgetOverrideNames, hasAttribute, hasAttribute, hasAttribute, hasAttributeOrFellow, hasBindingAnnotation, hasFellow, hasFellow, hasSubBindingAnnotation, initIndexCacheMap, invalidate, isChildable, isDisabledHostChanged, isInitialized, isInvalidated, isListenerAvailable, isVisible, onPageDetached, onParentChanged, onWrongValue, query, queryAll, redraw, removeAttribute, removeAttribute, removeAttribute, removeCallback, removeChild, removeEventListener, removeForward, removeForward, removeRedrawCallback, removeScopeListener, removeShadowRoot, render, render, render, renderPropertiesOnly, replace, response, response, response, service, sessionDidActivate, sessionWillPassivate, setAttribute, setAttribute, setAttribute, setAuService, setAutag, setClientAttribute, setClientDataAttribute, setDefinition, setDefinition, setId, setMold, setPage, setPageBefore, setStubonly, setStubonly, setSubBindingAnnotationCount, setTemplate, setVisible, setVisibleDirectly, setWidgetClass, setWidgetListener, setWidgetOverride, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdateWidgetListener, smartUpdateWidgetOverride, toString, updateByClient, updateSubBindingAnnotationCount, willPassivate, willPassivate, willSerialize, willSerialize
-
-
-
-
Method Detail
-
getLinkedTreerow
public Treerow getLinkedTreerow()
Returns theTreerow
that is associated with this treechildren, or null if no such treerow. In other words, it isTreeitem.getTreerow()
ofAbstractComponent.getParent()
.- Since:
- 2.4.1
- See Also:
Treerow.getLinkedTreechildren()
-
getItems
public java.util.Collection<Treeitem> getItems()
Returns a readonly list of all descendingTreeitem
(children's children and so on).Note: the performance of the size method of returned collection is no good.
-
getItemCount
public int getItemCount()
Returns the number of childTreeitem
including all descendants. The same asgetItems()
.size().Note: the performance is no good.
-
getVisibleItemCount
public int getVisibleItemCount()
Returns the number of visible descendantTreeitem
. Descendants include direct children, grand children and so on.- Since:
- 3.0.7
-
onChildAdded
public void onChildAdded(Component child)
Description copied from class:AbstractComponent
Default: handles special event listeners.- Specified by:
onChildAdded
in interfaceComponentCtrl
- Overrides:
onChildAdded
in classAbstractComponent
- See Also:
ComponentCtrl.onChildAdded(org.zkoss.zk.ui.Component)
-
onChildRemoved
public void onChildRemoved(Component child)
Description copied from class:AbstractComponent
Default: handles special event listeners.- Specified by:
onChildRemoved
in interfaceComponentCtrl
- Overrides:
onChildRemoved
in classAbstractComponent
- See Also:
ComponentCtrl.onChildRemoved(org.zkoss.zk.ui.Component)
-
insertBefore
public boolean insertBefore(Component newChild, Component refChild)
Description copied from interface:Component
Inserts a child before the reference child.You could use
Component.setParent(org.zkoss.zk.ui.Component)
orComponent.appendChild(org.zkoss.zk.ui.Component)
instead of this method, unless you want to control where to put the child.Note:
Component.setParent(org.zkoss.zk.ui.Component)
always calls backComponent.insertBefore(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component)
and/orComponent.removeChild(org.zkoss.zk.ui.Component)
, whileComponent.insertBefore(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component)
andComponent.removeChild(org.zkoss.zk.ui.Component)
always calls backComponent.setParent(org.zkoss.zk.ui.Component)
, if the parent is changed. Thus, you don't need to override bothComponent.insertBefore(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component)
andComponent.setParent(org.zkoss.zk.ui.Component)
, if you want to customize the behavior.If you would like to monitor if a component is attached or detached from a page, you could register a desktop listener implementing
UiLifeCycle
.- Specified by:
insertBefore
in interfaceComponent
- Overrides:
insertBefore
in classAbstractComponent
- Parameters:
newChild
- the new child to be inserted.refChild
- the child before which you want the new child being inserted. If null, the new child is append to the end.- Returns:
- true if newChild is added successfully or moved; false if it already has the specified child and the order doesn't change.
-
setWidth
public void setWidth(java.lang.String width)
Deprecated.Description copied from class:HtmlBasedComponent
Sets the width. If null, the best fit is used.- Overrides:
setWidth
in classHtmlBasedComponent
- See Also:
HtmlBasedComponent.setWidthDirectly(java.lang.String)
,AbstractComponent.disableClientUpdate(boolean)
-
setHflex
public void setHflex(java.lang.String flex)
Deprecated.Description copied from class:HtmlBasedComponent
Sets horizontal flex hint of this component.Number flex indicates how this component's container distributes remaining empty space among its children horizontally. Flexible component grow and shrink to fit their given space. Flexible components with larger flex values will be made larger than components with lower flex values, at the ratio determined by all flexible components. The actual flex value is not relevant unless there are other flexible components within the same container. Once the default sizes of components in a container are calculated, the remaining space in the container is divided among the flexible components, according to their flex ratios.
Specify a flex value of negative value, 0, or "false" has the same effect as leaving the flex attribute out entirely. Specify a flex value of "true" has the same effect as a flex value of 1.
Special flex hint, "min", indicates that the minimum space shall be given to this flexible component to enclose all of its children components. That is, the flexible component grow and shrink to fit its children components.
- Overrides:
setHflex
in classHtmlBasedComponent
- Parameters:
flex
- horizontal flex hint of this component.- See Also:
HtmlBasedComponent.setVflex(java.lang.String)
,HtmlBasedComponent.getHflex()
-
beforeParentChanged
public void beforeParentChanged(Component parent)
Description copied from class:AbstractComponent
Default: If parent is null, execute the @Destroy method if any.- Specified by:
beforeParentChanged
in interfaceComponentCtrl
- Overrides:
beforeParentChanged
in classAbstractComponent
- Parameters:
parent
- the new parent. If null, it means detachment.- See Also:
ComponentCtrl.beforeParentChanged(org.zkoss.zk.ui.Component)
-
setParent
public void setParent(Component parent)
Description copied from interface:Component
Sets the parent component.Note:
Component.setParent(org.zkoss.zk.ui.Component)
always calls backComponent.insertBefore(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component)
and/orComponent.removeChild(org.zkoss.zk.ui.Component)
, whileComponent.insertBefore(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component)
andComponent.removeChild(org.zkoss.zk.ui.Component)
always calls backComponent.setParent(org.zkoss.zk.ui.Component)
, if the parent is changed. Thus, you don't need to override bothComponent.insertBefore(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component)
andComponent.setParent(org.zkoss.zk.ui.Component)
, if you want to customize the behavior.- Specified by:
setParent
in interfaceComponent
- Overrides:
setParent
in classAbstractComponent
-
beforeChildAdded
public void beforeChildAdded(Component child, Component refChild)
Description copied from class:AbstractComponent
Default: does nothing.- Specified by:
beforeChildAdded
in interfaceComponentCtrl
- Overrides:
beforeChildAdded
in classAbstractComponent
- Parameters:
child
- the child to be added (never null).refChild
- another child component that the new child will be inserted before it. If null, the new child will be the last child.- See Also:
ComponentCtrl.beforeChildAdded(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component)
-
getZclass
public java.lang.String getZclass()
Description copied from class:HtmlBasedComponent
Returns the ZK Cascading Style class for this component. It usually depends on the implementation of the mold (AbstractComponent.getMold()
).Default: null (the default value depends on element).
HtmlBasedComponent.setZclass(java.lang.String)
) will completely replace the default style of a component. In other words, the default style of a component is associated with the default value ofHtmlBasedComponent.getZclass()
. Once it is changed, the default style won't be applied at all. If you want to perform small adjustments, useHtmlBasedComponent.setSclass(java.lang.String)
instead.- Overrides:
getZclass
in classHtmlBasedComponent
- See Also:
HtmlBasedComponent.getSclass()
-
smartUpdate
protected void smartUpdate(java.lang.String name, java.lang.Object value)
Description copied from class:AbstractComponent
Smart-updates a property of the peer widget associated with the component, running at the client, with the given value.The second invocation with the same property will replace the previous call. In other words, the same property will be set only once in each execution. If you prefer to send both updates to the client, use
AbstractComponent.smartUpdate(String, Object, boolean)
instead.This method has no effect if
AbstractComponent.invalidate()
is ever invoked (in the same execution), sinceAbstractComponent.invalidate()
assumes the whole content shall be redrawn and all smart updates to this components can be ignored,Once
AbstractComponent.invalidate()
is called, all invocations toAbstractComponent.smartUpdate(String, Object)
will then be ignored, andAbstractComponent.redraw(java.io.Writer)
will be invoked later.It can be called only in the request-processing and event-processing phases; excluding the redrawing phase.
There are two ways to draw a component, one is to invoke
Component.invalidate()
, and the other isAbstractComponent.smartUpdate(String, Object)
. WhileComponent.invalidate()
causes the whole content to redraw,AbstractComponent.smartUpdate(String, Object)
let component developer control which part to redraw.- Overrides:
smartUpdate
in classAbstractComponent
value
- the new value. If it isDeferredValue
, the value will be retrieved (by callingDeferredValue.getValue()
) in the rendering phase. It is useful if the value can not be determined now.For some old application servers (example, Websphere 5.1),
Execution.encodeURL(java.lang.String)
cannot be called in the event processing thread. So, the developers have to useDeferredValue
or disable the use of the event processing thread (by use ofdisable-event-thread
in zk.xml).If you want to generate the JavaScript code directly (i.e., the value is a valid JavaScript snippet), you can use
JavaScriptValue
. Notice that the JavaScript code will be evaluated before assigning it to the widget.If the value is a Date object, a special pattern will be generated (a.k.a., marshaling) to ensure it can be unmarshalled back correctly at the client. Notice that it is marshalled to a string based on
TimeZones.getCurrent()
, and then unmarshalled back at the client. In other words, if the client is in different time-zone, the value returned by getTime() might be different. However, the value will remain the same if the client marshalled the Date object back. In other words, it assumes the browser's time zone from enduser's perspective (not really browser's setting) shall be the same asTimeZones.getCurrent()
.If the value is a component, a special pattern will be generated to ensure it can be unmarshalled back correctly at the client.
In addition, the value can be any kind of objects that the client accepts (marshaled by JSON) (see also
JSONAware
).- See Also:
AbstractComponent.updateByClient(java.lang.String, java.lang.Object)
,AbstractComponent.smartUpdate(String, Object, boolean)
-
onPageAttached
public void onPageAttached(Page newpage, Page oldpage)
Description copied from class:AbstractComponent
Default: handles special event listeners.- Specified by:
onPageAttached
in interfaceComponentCtrl
- Overrides:
onPageAttached
in classAbstractComponent
- Parameters:
newpage
- the new page (never null).oldpage
- the previous page, if any, or null if it didn't belong to any page.- See Also:
ComponentCtrl.onPageAttached(org.zkoss.zk.ui.Page, org.zkoss.zk.ui.Page)
-
redrawChildren
protected void redrawChildren(java.io.Writer out) throws java.io.IOException
Description copied from class:AbstractComponent
Redraws children (and then recursively descendants).Default: it invokes
AbstractComponent.redraw(java.io.Writer)
for all its children.If a derived class renders only a subset of its children (such as paging/cropping), it could override
AbstractComponent.redrawChildren(java.io.Writer)
.- Overrides:
redrawChildren
in classAbstractComponent
- Throws:
java.io.IOException
- See Also:
AbstractComponent.redraw(java.io.Writer)
-
getExtraCtrl
public java.lang.Object getExtraCtrl()
Description copied from class:HtmlBasedComponent
Returns the client control for this component. It is used only by component developers.Default: creates an instance of
HtmlBasedComponent.ExtraCtrl
.- Specified by:
getExtraCtrl
in interfaceComponentCtrl
- Overrides:
getExtraCtrl
in classHtmlBasedComponent
- Returns:
- null if no special handling required. If the component
requires some special controls, it could return an object that
implements one or several interfaces in the org.zkoss.zk.ui.ext.render
package.
For example,
Cropper
. - See Also:
ComponentCtrl.getExtraCtrl()
-
-