public class Tree extends MeshElement
Event:
SelectEvent
is sent when user changes
the selection.Default getZclass()
: z-tree. (since 3.5.0)
Custom Attributes:
isCheckmark()
) is enabled.
Notice that you could specify this attribute in any of its ancestor's attributes.
It will be inherited.setModel(org.zkoss.zul.TreeModel<?>)
is called and Treecol.setSortDirection(java.lang.String)
is set.Treecol.setSortDirection(java.lang.String)
is called.TreeDataEvent
and Treecol.setSortDirection(java.lang.String)
is set.TreeDataEvent
,
you can specifies the value as "ignore.change".
Notice that you could specify this attribute in any of its ancestor's attributes.
It will be inherited.To retrieve what are selected in Tree with a TreeSelectableModel
,
you shall use TreeSelectableModel.isPathSelected(int[])
to check whether the current path is selected in TreeSelectableModel
rather than using getSelectedItems()
. That is, you shall operate on
the item of the TreeSelectableModel
rather than on the Treeitem
of the Tree
if you use the TreeSelectableModel
and TreeModel
.
TreeSelectableModel selModel = ((TreeSelectableModel)getModel());
int[][] paths = selModel.getSelectionPaths();
List selected = new ArrayList();
AbstractTreeModel model = (AbstractTreeModel) selModel;
for (int i = 0; i < paths.length; i++) {
selected.add(model.getChild(paths[i]));
}
If the TreeModel in Tree implements a TreeSelectableModel
, the
multiple selections status is applied from the method of
TreeSelectableModel.isMultiple()
DefaultTreeModel selModel = new DefaultTreeModel(treeNode);
selModel.setMultiple(true);
tree.setModel(selModel);
To retrieve what are opened nodes in Tree with a TreeOpenableModel
,
you shall use TreeOpenableModel.isPathOpened(int[])
to check whether the current path is opened in TreeOpenableModel
rather than using Treeitem.isOpen()
. That is, you shall operate on
the item of the TreeOpenableModel
rather than on the Treeitem
of the Tree
if you use the TreeOpenableModel
and TreeModel
.
TreeOpenableModel openModel = ((TreeOpenableModel)getModel());
int[][] paths = openModel.getOpenPaths();
List opened = new ArrayList();
AbstractTreeModel model = (AbstractTreeModel) openModel;
for (int i = 0; i < paths.length; i++) {
opened.add(model.getChild(paths[i]));
}
It is used only if live data (setModel(TreeModel)
and
not paging (getPagingChild()
).
MeshElement.InternalPaging
HtmlBasedComponent.ExtraCtrl
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 |
---|
Tree() |
Modifier and Type | Method and Description |
---|---|
void |
addItemToSelection(Treeitem item)
Selects the given item, without deselecting any other items
that are already selected..
|
void |
beforeChildAdded(Component newChild,
Component refChild)
Default: does nothing.
|
void |
clear()
Clears all child tree items (
Treeitem . |
void |
clearSelection()
Clears the selection.
|
java.lang.Object |
clone()
Clones the component.
|
int |
getActivePage()
Returns the active page (starting from 0).
|
protected java.lang.Object |
getAssociatedNode(Treeitem ti,
Tree t)
Return a node which is an associated Treeitem ti in a Tree tree
|
protected Component |
getChildByNode(java.lang.Object node)
Return the Tree or Treeitem component by a given associated node in model,
or null if the treeitem is not instantiated (i.e., rendered) yet.
|
protected Component |
getChildByPath(int[] path)
Return the Tree or Treeitem component by a path, or null if corresponding
Treeitem is not instantiated (i.e., rendered) yet.
|
Frozen |
getFrozen()
Returns the frozen child.
|
java.util.Collection<Component> |
getHeads()
Returns a collection of heads, including
getTreecols()
and auxiliary heads (Auxhead ) (never null). |
java.lang.String |
getInnerWidth()
Returns the inner width of this component.
|
int |
getItemCount()
Returns the number of child
Treeitem . |
<T> TreeitemRenderer<T> |
getItemRenderer()
Returns the renderer to render each item, or null if the default
renderer is used.
|
java.util.Collection<Treeitem> |
getItems()
Returns a readonly list of all descending
Treeitem
(children's children and so on). |
<T> TreeModel<T> |
getModel()
Returns the list model associated with this tree, or null
if this tree is not associated with any tree data model.
|
java.lang.String |
getName()
Returns the name of this component.
|
java.lang.String |
getNonselectableTags()
Returns a list of HTML tag names that shall not cause the tree item
being selected if they are clicked.
|
int |
getPageSize()
Returns the page size, a.k.a., the number items per page.
|
Paginal |
getPaginal()
Returns the paging controller, or null if not available.
|
Paging |
getPagingChild()
Returns the child paging controller that is created automatically,
or null if mold is not "paging", or the controller is specified externally
by
setPaginal(org.zkoss.zul.ext.Paginal) . |
int |
getRows()
Returns the rows.
|
int |
getSelectedCount()
Returns the number of items being selected.
|
Treeitem |
getSelectedItem()
Returns the selected item.
|
java.util.Set<Treeitem> |
getSelectedItems()
Returns all selected items.
|
java.lang.String |
getSeltype()
Returns the seltype.
|
Treechildren |
getTreechildren()
Returns the treechildren that this tree owns (might null).
|
Treecols |
getTreecols()
Returns the treecols that this tree owns (might null).
|
Treefoot |
getTreefoot()
Returns the treefoot that this tree owns (might null).
|
<T> TreeitemRenderer<T> |
getTreeitemRenderer()
Deprecated.
As of release 5.0.6, replaced with
getItemRenderer() .
/** Returns the renderer to render each item, or null if the default
renderer is used. |
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.
|
protected boolean |
isAutohidePaging() |
boolean |
isCheckmark()
Returns whether the check mark shall be displayed in front
of each item.
|
boolean |
isFixedLayout()
Deprecated.
since 5.0.0, use !
MeshElement.isSizedByContent() instead |
boolean |
isMultiple()
Returns whether multiple selections are allowed.
|
protected boolean |
isSelectOnHighlightDisabled() |
boolean |
isVflex()
Returns whether to grow and shrink vertical to fit their given space,
so called vertical flexibility.
|
void |
onAfterRender() |
void |
onChildAdded(Component child)
Default: handles special event listeners.
|
void |
onChildRemoved(Component child)
Default: handles special event listeners.
|
void |
onInitRender()
Handles a private event, onInitRender.
|
void |
onPageAttached(Page newpage,
Page oldpage)
Default: handles special event listeners.
|
protected Paginal |
pgi()
Returns the instance of the @{link Paginal}
|
protected void |
redrawChildren(java.io.Writer out)
Redraws children (and then recursively descendants).
|
void |
removeItemFromSelection(Treeitem item)
Deselects the given item without deselecting other items.
|
void |
renderItem(Treeitem item)
Renders the specified
Treeitem , if not loaded yet,
with getItemRenderer() . |
void |
renderItem(Treeitem item,
java.lang.Object node)
Renders the specified
Treeitem , if not loaded yet,
with getItemRenderer() . |
Treeitem |
renderItemByNode(java.lang.Object node)
Load the treeitems by the given node.
|
Treeitem |
renderItemByPath(int[] path)
Load the treeitems by giving a path of the treeitems top open.
|
void |
renderItems(java.util.Set<? extends Treeitem> items)
Renders the specified
Treeitem if not loaded yet,
with getItemRenderer() . |
protected void |
renderProperties(ContentRenderer renderer)
Renders the content of this component, excluding the enclosing
tags and children.
|
void |
selectAll()
Selects all items.
|
void |
selectItem(Treeitem item)
Deselects all of the currently selected items and selects
the given item.
|
void |
service(AuRequest request,
boolean everError)
Processes an AU request.
|
void |
sessionDidActivate(Page page)
Notification that the session, which owns this component,
has just been activated (a.k.a., deserialized).
|
void |
sessionWillPassivate(Page page)
Notification that the session, which owns this component,
is about to be passivated (a.k.a., serialized).
|
void |
setActivePage(int pg)
Sets the active page (starting from 0).
|
void |
setActivePage(Treeitem item)
Sets the active page in which the specified item is.
|
void |
setCheckmark(boolean checkmark)
Sets whether the check mark shall be displayed in front
of each item.
|
void |
setFixedLayout(boolean fixedLayout)
Deprecated.
since 5.0.0, use
MeshElement.setSizedByContent(boolean) (!fixedLayout) instead |
void |
setInnerWidth(java.lang.String innerWidth)
Sets the inner width of this component.
|
void |
setItemRenderer(java.lang.String clsnm)
Sets the renderer by use of a class name.
|
void |
setItemRenderer(TreeitemRenderer<?> renderer)
Sets the renderer which is used to render each item
if
getModel() is not null. |
void |
setModel(TreeModel<?> model)
Sets the tree model associated with this tree.
|
void |
setMold(java.lang.String mold)
Sets the mold to render this component.
|
void |
setMultiple(boolean multiple)
Sets whether multiple selections are allowed.
|
void |
setName(java.lang.String name)
Sets the name of this component.
|
void |
setNonselectableTags(java.lang.String tags)
Sets a list of HTML tag names that shall not cause the tree item
being selected if they are clicked.
|
void |
setPageSize(int pgsz)
Sets the page size, a.k.a., the number items per page.
|
void |
setPaginal(Paginal pgi) |
void |
setRows(int rows)
Sets the rows.
|
void |
setSelectedItem(Treeitem item)
Deselects all of the currently selected items and selects
the given item.
|
void |
setSeltype(java.lang.String seltype)
Sets the seltype.
|
void |
setTreeitemRenderer(TreeitemRenderer<?> renderer)
Deprecated.
As of release 5.0.6, replaced with
setItemRenderer(org.zkoss.zul.TreeitemRenderer<?>) .
Sets the renderer which is used to render each item
if getModel() is not null.
Note: changing a render will not cause the tree to re-render.
If you want it to re-render, you could assign the same model again
(i.e., setModel(getModel())), or fire an |
void |
setVflex(boolean vflex)
Sets whether to grow and shrink vertical to fit their given space,
so called vertical flexibility.
|
void |
smartUpdate(java.lang.String attr,
java.lang.Object value)
Smart-updates a property of the peer widget associated with
the component, running at the client, with the given value.
|
void |
toggleItemSelection(Treeitem item)
If the specified item is selected, it is deselected.
|
getPageCount, getPagingPosition, getSpan, isAutopaging, isPagingDisabled, isSizedByContent, isSpan, setAutopaging, setPagingDisabled, setPagingPosition, setSizedByContent, setSpan, setSpan
getContext, getCtrlKeys, getPopup, getPropertyAccess, getTooltip, setContext, setContext, setContextAttributes, setCtrlKeys, setPopup, setPopup, setPopupAttributes, setTooltip, setTooltip, setTooltipAttributes
focus, getAction, getDraggable, getDroppable, getExtraCtrl, getHeight, getHflex, getLeft, getRenderdefer, getSclass, getStyle, getTabindex, getTabindexInteger, getTooltiptext, getTop, getVflex, getWidth, getZindex, getZIndex, setAction, setClass, setDraggable, setDroppable, setFocus, setHeight, setHeight0, setHeightDirectly, setHflex, setHflex0, setHflexDirectly, setLeft, setLeftDirectly, setRenderdefer, setSclass, setStyle, setTabindex, setTabindex, setTooltiptext, setTop, setTopDirectly, setVflex, setVflex0, setVflexDirectly, setWidth, 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, beforeParentChanged, detach, didActivate, didActivate, didDeserialize, didDeserialize, disableBindingAnnotation, disableClientUpdate, enableBindingAnnotation, equals, 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, isChildable, 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, setAttribute, setAttribute, setAttribute, setAuService, setAutag, setClientAttribute, setClientDataAttribute, setDefinition, setDefinition, setId, setPage, setPageBefore, setParent, 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
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)
public void setMold(java.lang.String mold)
setMold
in interface Component
setMold
in class AbstractComponent
mold
- the mold. If null or empty, "default" is assumed.
Allowed values: default, pagingComponentDefinition
public Paginal getPaginal()
AbstractComponent.getMold()
is "paging".
If mold is "paging", this method never returns null, because
a child paging controller is created automatically (if not specified
by developers with setPaginal(org.zkoss.zul.ext.Paginal)
).
If a paging controller is specified (either by setPaginal(org.zkoss.zul.ext.Paginal)
,
or by setMold(java.lang.String)
with "paging"),
the tree will rely on the paging controller to handle long-content
instead of scrolling.
public void setPaginal(Paginal pgi)
public Paging getPagingChild()
setPaginal(org.zkoss.zul.ext.Paginal)
.public int getPageSize()
getPageSize
in class MeshElement
java.lang.IllegalStateException
- if getPaginal()
returns null,
i.e., mold is not "paging" and no external controller is specified.public void setPageSize(int pgsz) throws WrongValueException
Note: mold is "paging" and no external controller is specified.
setPageSize
in class MeshElement
WrongValueException
protected Paginal pgi()
MeshElement
pgi
in class MeshElement
public void setFixedLayout(boolean fixedLayout)
MeshElement.setSizedByContent(boolean)
(!fixedLayout) insteadfixedLayout
- true to outline this grid by browserpublic boolean isFixedLayout()
MeshElement.isSizedByContent()
insteadpublic Treecols getTreecols()
public Treefoot getTreefoot()
public Frozen getFrozen()
public Treechildren getTreechildren()
public java.util.Collection<Component> getHeads()
getTreecols()
and auxiliary heads (Auxhead
) (never null).public int getRows()
Default: 0.
public void setRows(int rows) throws WrongValueException
Note: if both HtmlBasedComponent.setHeight(java.lang.String)
is specified with non-empty,
setRows(int)
is ignored
WrongValueException
public java.lang.String getName()
Default: null.
The name is used only to work with "legacy" Web application that handles user's request by servlets. It works only with HTTP/HTML-based browsers. It doesn't work with other kind of clients.
Don't use this method if your application is purely based on ZK's event-driven model.
public void setName(java.lang.String name)
The name is used only to work with "legacy" Web application that handles user's request by servlets. It works only with HTTP/HTML-based browsers. It doesn't work with other kind of clients.
Don't use this method if your application is purely based on ZK's event-driven model.
name
- the name of this component.public void setNonselectableTags(java.lang.String tags)
Default: null (it means button, input, textarea and a). If you want to select no matter which tag is clicked, please specify an empty string.
tags
- a list of HTML tag names that will not cause the tree item
being selected if clicked. Specify null to use the default and "" to
indicate none.public java.lang.String getNonselectableTags()
Refer to setNonselectableTags(java.lang.String)
for details.
public boolean isCheckmark()
Default: false.
public void setCheckmark(boolean checkmark)
The check mark is a checkbox if isMultiple()
returns
true. It is a radio button if isMultiple()
returns false.
public boolean isVflex()
Note: this attribute is ignored if setRows(int)
is specified
Default: false.
public void setVflex(boolean vflex)
Note: this attribute is ignored if setRows(int)
is specified
public void setInnerWidth(java.lang.String innerWidth)
Application developers rarely call this method, unless
they want to preserve the widths of sizable columns
changed by the user.
To preserve the widths, the developer have to store the widths of
all columns and the inner width (getInnerWidth()
),
and then restore them when re-creating this component.
innerWidth
- the inner width. If null, "100%" is assumed.public java.lang.String getInnerWidth()
Default: "100%"
setInnerWidth(java.lang.String)
public java.lang.String getSeltype()
Default: "single".
public void setSeltype(java.lang.String seltype) throws WrongValueException
WrongValueException
public boolean isMultiple()
Default: false.
public void setMultiple(boolean multiple)
Notice that, if a model is assigned, it will change the model's
state (by TreeSelectableModel.setMultiple(boolean)
).
public void setActivePage(Treeitem item)
item
- the item to show. If the item is null, invisible, or doesn't belong
to the same tree, nothing happens.public void setActivePage(int pg) throws WrongValueException
MeshElement
setActivePage
in class MeshElement
WrongValueException
public void smartUpdate(java.lang.String attr, 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 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
.
The same as getItems()
.size().
Note: the performance of this method is no good.
public void selectItem(Treeitem item)
It is the same as setSelectedItem(org.zkoss.zul.Treeitem)
.
item
- the item to select. If null, all items are deselected.public void addItemToSelection(Treeitem item)
public void removeItemFromSelection(Treeitem item)
public void toggleItemSelection(Treeitem item)
public void clearSelection()
public void selectAll()
public Treeitem getSelectedItem()
public void setSelectedItem(Treeitem item)
It is the same as selectItem(org.zkoss.zul.Treeitem)
.
public java.util.Set<Treeitem> getSelectedItems()
public int getSelectedCount()
public void clear()
Treeitem
.
Note: after clear, getTreechildren()
won't be null, but
it has no child
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()
public void beforeChildAdded(Component newChild, Component refChild)
AbstractComponent
beforeChildAdded
in interface ComponentCtrl
beforeChildAdded
in class AbstractComponent
newChild
- 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 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 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 java.lang.Object clone()
Component
clone
in interface Component
clone
in class XulElement
public void sessionWillPassivate(Page page)
ComponentCtrl
Note: only root components are notified by this method.
sessionWillPassivate
in interface ComponentCtrl
sessionWillPassivate
in class AbstractComponent
public void sessionDidActivate(Page page)
ComponentCtrl
Note: only root components are notified by this method.
sessionDidActivate
in interface ComponentCtrl
sessionDidActivate
in class AbstractComponent
protected Component getChildByNode(java.lang.Object node)
TreeModel.getRoot()
).java.lang.IllegalStateException
- if no model is assigned (setModel(org.zkoss.zul.TreeModel<?>)
).renderItemByNode(java.lang.Object)
protected Component getChildByPath(int[] path)
TreeModel.getRoot()
).public void setModel(TreeModel<?> model)
Note: changing a render will not cause the tree to re-render.
If you want it to re-render, you could assign the same model again
(i.e., setModel(getModel())), or fire an TreeDataEvent
event.
model
- the tree model to associate, or null to dissociate
any previous model.UiException
- if failed to initialize with the modelpublic void onInitRender()
public <T> TreeModel<T> getModel()
public void setItemRenderer(TreeitemRenderer<?> renderer)
getModel()
is not null.
Note: changing a render will not cause the tree to re-render.
If you want it to re-render, you could assign the same model again
(i.e., setModel(getModel())), or fire an TreeDataEvent
event.
renderer
- the renderer, or null to use the default.UiException
- if failed to initialize with the modelpublic void setItemRenderer(java.lang.String clsnm) throws java.lang.ClassNotFoundException, java.lang.NoSuchMethodException, java.lang.IllegalAccessException, java.lang.InstantiationException, java.lang.reflect.InvocationTargetException
java.lang.ClassNotFoundException
java.lang.NoSuchMethodException
java.lang.IllegalAccessException
java.lang.InstantiationException
java.lang.reflect.InvocationTargetException
public <T> TreeitemRenderer<T> getItemRenderer()
public void setTreeitemRenderer(TreeitemRenderer<?> renderer)
setItemRenderer(org.zkoss.zul.TreeitemRenderer<?>)
.
Sets the renderer which is used to render each item
if getModel()
is not null.
Note: changing a render will not cause the tree to re-render.
If you want it to re-render, you could assign the same model again
(i.e., setModel(getModel())), or fire an TreeDataEvent
event.
renderer
- the renderer, or null to use the default.UiException
- if failed to initialize with the modelpublic <T> TreeitemRenderer<T> getTreeitemRenderer()
getItemRenderer()
.
/** Returns the renderer to render each item, or null if the default
renderer is used.public void renderItem(Treeitem item)
Treeitem
, if not loaded yet,
with getItemRenderer()
.
It does nothing if getModel()
returns null.
To unload treeitem, use Treeitem.unload()
.
renderItems(java.util.Set<? extends org.zkoss.zul.Treeitem>)
public void renderItem(Treeitem item, java.lang.Object node)
Treeitem
, if not loaded yet,
with getItemRenderer()
.
It does nothing if getModel()
returns null.
Note: Since the corresponding node is given, This method has better performance than renderItem(Treeitem item) due to not searching for its corresponding node.
To unload treeitem, use Treeitem.unload()
.
renderItems(java.util.Set<? extends org.zkoss.zul.Treeitem>)
public void renderItems(java.util.Set<? extends Treeitem> items)
Treeitem
if not loaded yet,
with getItemRenderer()
.
It does nothing if getModel()
returns null.
To unload treeitem, with Treeitem.unload()
.
renderItem(org.zkoss.zul.Treeitem)
protected java.lang.Object getAssociatedNode(Treeitem ti, Tree t)
public Treeitem renderItemByNode(java.lang.Object node)
TreeModel.getChild(E, int)
.
Notice that this method has to search the model one-by-one.
The performance might not be good, so use renderItemByPath(int[])
if possible.
java.lang.IllegalStateException
- if no model is assigned (setModel(org.zkoss.zul.TreeModel<?>)
).public Treeitem renderItemByPath(int[] path)
Treeitem.setOpen(boolean)
). If you want to visit the rendered
item in paging mold, please invoke setActivePage(Treeitem)
.path
- - an index path. The first element is the index at the first level
of the tree structure.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)
protected void renderProperties(ContentRenderer renderer) throws java.io.IOException
HtmlBasedComponent
renderProperties
in class MeshElement
java.io.IOException
protected boolean isAutohidePaging()
isAutohidePaging
in class MeshElement
protected boolean isSelectOnHighlightDisabled()
public void service(AuRequest request, boolean everError)
Default: in addition to what are handled by HtmlBasedComponent.service(org.zkoss.zk.au.AuRequest, boolean)
,
it also handles onSelect.
service
in interface ComponentCtrl
service
in class HtmlBasedComponent
everError
- whether any error ever occurred before
processing this request.AbstractComponent.setAuService(org.zkoss.zk.au.AuService)
public int getActivePage()
MeshElement
getActivePage
in class MeshElement
public void onAfterRender()
Copyright © 2005-2018 Potix Corporation. All Rights Reserved.