public class Treechildren extends XulElement
Modifier and Type | Class and Description |
---|---|
protected class |
Treechildren.ExtraCtrl
A utility class to implement
HtmlBasedComponent.getExtraCtrl() . |
AbstractComponent.Children
_zclass
APPLICATION_SCOPE, COMPONENT_SCOPE, DESKTOP_SCOPE, PAGE_SCOPE, REQUEST_SCOPE, SESSION_SCOPE, SPACE_SCOPE
AFTER_CHILD_ADDED, AFTER_CHILD_REMOVED, AFTER_PAGE_ATTACHED, AFTER_PAGE_DETACHED, CE_BUSY_IGNORE, CE_DUPLICATE_IGNORE, CE_IMPORTANT, CE_NON_DEFERRABLE, CE_REPEAT_IGNORE
Constructor and Description |
---|
Treechildren() |
Modifier and Type | Method and 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 child
Treeitem
including all descendants. |
java.util.Collection<Treeitem> |
getItems()
Returns a readonly list of all descending
Treeitem
(children's children and so on). |
Treerow |
getLinkedTreerow()
Returns the
Treerow that is associated with
this treechildren, or null if no such treerow. |
Tree |
getTree()
Returns the
Tree instance containing this element. |
int |
getVisibleItemCount()
Returns the number of visible descendant
Treeitem . |
java.lang.String |
getZclass()
Returns the ZK Cascading Style class(es) 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)
|
void |
setParent(Component parent)
Sets the parent component.
|
void |
setWidth(java.lang.String width)
|
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.
|
clone, getContext, getCtrlKeys, getPopup, getPropertyAccess, getTooltip, renderProperties, setContext, setContext, setContextAttributes, setCtrlKeys, setPopup, setPopup, setPopupAttributes, setTooltip, setTooltip, setTooltipAttributes
addSclass, evalCSSFlex, focus, getAction, getDraggable, getDroppable, getHeight, getHflex, getLeft, getRenderdefer, getSclass, getStyle, getTabindex, getTabindexInteger, getTooltiptext, getTop, getVflex, getWidth, getZindex, getZIndex, removeSclass, removeSclass, service, setAction, setClass, 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
addAnnotation, addAnnotation, addCallback, addClientEvent, addEventHandler, addEventListener, addEventListener, addForward, addForward, addForward, addForward, addMoved, addRedrawCallback, addScopeListener, addShadowRoot, addShadowRootBefore, addSharedEventHandlerMap, appendChild, applyProperties, beforeChildRemoved, detach, didActivate, didActivate, didDeserialize, didDeserialize, disableBindingAnnotation, disableClientUpdate, enableBindingAnnotation, getAnnotatedProperties, getAnnotatedPropertiesBy, getAnnotation, getAnnotation, getAnnotations, 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, getId, getLastChild, getListenerIterator, getMold, getNextSibling, getPage, getParent, getPreviousSibling, getRedrawCallback, getRoot, getShadowFellowIfAny, getShadowRoots, getShadowVariable, getShadowVariable, getShadowVariable0, getSpaceOwner, getSpecialRendererOutput, getStubonly, getSubBindingAnnotationCount, getTemplate, getTemplateNames, getUuid, getWidgetAttribute, getWidgetAttributeNames, getWidgetClass, getWidgetListener, getWidgetListenerNames, getWidgetOverride, getWidgetOverrideNames, hasAttribute, hasAttribute, hasAttribute, hasAttributeOrFellow, hasBindingAnnotation, hasFellow, hasFellow, hasSubBindingAnnotation, invalidate, invalidatePartial, isChildable, isInitialized, isInvalidated, isListenerAvailable, isVisible, onPageDetached, onWrongValue, query, queryAll, redraw, removeAttribute, removeAttribute, removeAttribute, removeCallback, removeChild, removeEventListener, removeForward, removeForward, removeRedrawCallback, removeScopeListener, removeShadowRoot, render, render, render, 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, setWidgetAttribute, setWidgetClass, setWidgetListener, setWidgetOverride, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdate, smartUpdateWidgetListener, smartUpdateWidgetOverride, toString, updateByClient, updateSubBindingAnnotationCount, willPassivate, willPassivate, willSerialize, willSerialize
equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
invalidatePartial
public Treerow getLinkedTreerow()
Treerow
that is associated with
this treechildren, or null if no such treerow.
In other words, it is Treeitem.getTreerow()
of
AbstractComponent.getParent()
.Treerow.getLinkedTreechildren()
public java.util.Collection<Treeitem> getItems()
Treeitem
(children's children and so on).
Note: the performance of the size method of returned collection is no good.
public int getItemCount()
Treeitem
including all descendants. The same as getItems()
.size().
Note: the performance is no good.
public int getVisibleItemCount()
Treeitem
.
Descendants include direct children, grand children and so on.public void onChildAdded(Component child)
AbstractComponent
onChildAdded
in interface ComponentCtrl
onChildAdded
in class AbstractComponent
ComponentCtrl.onChildAdded(org.zkoss.zk.ui.Component)
public void onChildRemoved(Component child)
AbstractComponent
onChildRemoved
in interface ComponentCtrl
onChildRemoved
in class AbstractComponent
ComponentCtrl.onChildRemoved(org.zkoss.zk.ui.Component)
public boolean insertBefore(Component newChild, Component refChild)
Component
You could use Component.setParent(org.zkoss.zk.ui.Component)
or Component.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 back Component.insertBefore(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component)
and/or Component.removeChild(org.zkoss.zk.ui.Component)
,
while Component.insertBefore(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component)
and Component.removeChild(org.zkoss.zk.ui.Component)
always calls back Component.setParent(org.zkoss.zk.ui.Component)
,
if the parent is changed. Thus, you don't need to override
both Component.insertBefore(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component)
and Component.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
.
insertBefore
in interface Component
insertBefore
in class AbstractComponent
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.public void setWidth(java.lang.String width)
Tree
and Treecol
instead.HtmlBasedComponent
setWidth
in class HtmlBasedComponent
HtmlBasedComponent.setWidthDirectly(java.lang.String)
,
AbstractComponent.disableClientUpdate(boolean)
public void setHflex(java.lang.String flex)
Tree
and Treecol
instead.HtmlBasedComponent
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.
setHflex
in class HtmlBasedComponent
flex
- horizontal flex hint of this component.HtmlBasedComponent.setVflex(java.lang.String)
,
HtmlBasedComponent.getHflex()
public void beforeParentChanged(Component parent)
AbstractComponent
beforeParentChanged
in interface ComponentCtrl
beforeParentChanged
in class AbstractComponent
parent
- the new parent. If null, it means detachment.ComponentCtrl.beforeParentChanged(org.zkoss.zk.ui.Component)
public void setParent(Component parent)
Component
Note: Component.setParent(org.zkoss.zk.ui.Component)
always calls back Component.insertBefore(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component)
and/or Component.removeChild(org.zkoss.zk.ui.Component)
,
while Component.insertBefore(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component)
and Component.removeChild(org.zkoss.zk.ui.Component)
always calls back Component.setParent(org.zkoss.zk.ui.Component)
,
if the parent is changed. Thus, you don't need to override
both Component.insertBefore(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component)
and Component.setParent(org.zkoss.zk.ui.Component)
, if you want
to customize the behavior.
setParent
in interface Component
setParent
in class AbstractComponent
public void beforeChildAdded(Component child, Component refChild)
AbstractComponent
beforeChildAdded
in interface ComponentCtrl
beforeChildAdded
in class AbstractComponent
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.ComponentCtrl.beforeChildAdded(org.zkoss.zk.ui.Component, org.zkoss.zk.ui.Component)
public java.lang.String getZclass()
HtmlBasedComponent
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 of HtmlBasedComponent.getZclass()
.
Once it is changed, the default style won't be applied at all.
If you want to perform small adjustments, use HtmlBasedComponent.setSclass(java.lang.String)
instead.
getZclass
in class HtmlBasedComponent
HtmlBasedComponent.getSclass()
protected void smartUpdate(java.lang.String name, java.lang.Object value)
AbstractComponent
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), since AbstractComponent.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 to AbstractComponent.smartUpdate(String, Object)
will then be ignored, and AbstractComponent.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 is AbstractComponent.smartUpdate(String, Object)
.
While Component.invalidate()
causes the whole content to redraw,
AbstractComponent.smartUpdate(String, Object)
let component developer control which part
to redraw.
smartUpdate
in class AbstractComponent
value
- the new value.
If it is DeferredValue
, the value
will be retrieved (by calling DeferredValue.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 use DeferredValue
or disable the use of the event processing thread
(by use of disable-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
as TimeZones.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
).
AbstractComponent.updateByClient(java.lang.String, java.lang.Object)
,
AbstractComponent.smartUpdate(String, Object, boolean)
public void onPageAttached(Page newpage, Page oldpage)
AbstractComponent
onPageAttached
in interface ComponentCtrl
onPageAttached
in class AbstractComponent
newpage
- the new page (never null).oldpage
- the previous page, if any, or null if it didn't
belong to any page.ComponentCtrl.onPageAttached(org.zkoss.zk.ui.Page, org.zkoss.zk.ui.Page)
protected void redrawChildren(java.io.Writer out) throws java.io.IOException
AbstractComponent
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)
.
redrawChildren
in class AbstractComponent
java.io.IOException
AbstractComponent.redraw(java.io.Writer)
public java.lang.Object getExtraCtrl()
HtmlBasedComponent
Default: creates an instance of HtmlBasedComponent.ExtraCtrl
.
getExtraCtrl
in interface ComponentCtrl
getExtraCtrl
in class HtmlBasedComponent
Cropper
.ComponentCtrl.getExtraCtrl()
Copyright © 2005-2021 Potix Corporation. All Rights Reserved.