-
FEATURED COMPONENTS
First time here? Check out the FAQ!
bug1.zul
<?page title="new page title" contentType="text/html;charset=UTF-8"?>
<zk>
<window height="100%" use="com.Bug1Window">
<button
label="load tree"
forward="onLoad"/>
<panel
id="panel"
visible="true"
height="100%">
<toolbar>
<toolbarbutton
label="click this button the treeitem will open"
forward="onBack"/>
</toolbar>
<panelchildren>
<tree
id="tree"
height="100%"
vflex="true">
<treechildren>
</treechildren>
</tree>
</panelchildren>
</panel>
</window>
</zk>
Bug1Window.java
package com;
import org.zkoss.zk.ui.Components;
import org.zkoss.zul.Tree;
import org.zkoss.zul.TreeModel;
import org.zkoss.zul.Treeitem;
import org.zkoss.zul.TreeitemRenderer;
import org.zkoss.zul.Window;
import org.zkoss.zul.event.TreeDataListener;
public class Bug1Window extends Window
{
private Tree tree;
public void onLoad()
{
tree.setTreeitemRenderer(new TreeitemRenderer(){
@Override
public void render(Treeitem treeitem, Object obj) throws Exception
{
treeitem.setLabel(String.valueOf(obj));
}
});
tree.setModel(new TreeModel(){
@Override
public void addTreeDataListener(TreeDataListener arg0)
{
// TODO Auto-generated method stub
}
@Override
public Object getChild(Object arg0, int index)
{
if(arg0 instanceof String[])
return ((String[]) arg0);
else if("a".equals(arg0))
return "a" + index;
else if("b".equals(arg0))
return "b" + index;
return null;
}
@Override
public int getChildCount(Object arg0)
{
if(arg0 instanceof String[])
return ((String[]) arg0).length;
else if("a".equals(arg0))
return 2;
else if("b".equals(arg0))
return 2;
return 0;
}
@Override
public int[] getPath(Object arg0, Object arg1)
{
// TODO Auto-generated method stub
return null;
}
@Override
public Object getRoot()
{
return new String[]{"a" , "b"};
}
@Override
public boolean isLeaf(Object arg0)
{
if(arg0 instanceof String[])
return false;
else if("a".equals(arg0) || "b".equals(arg0))
return false;
return true;
}
@Override
public void removeTreeDataListener(TreeDataListener arg0)
{
// TODO Auto-generated method stub
}
});
}
public void onCreate()
{
Components.wireVariables(this , this);
}
}
first click the load tree button
the tree item will be loaded
then open the a node the child node will not show
but when click the toolbarbutton the a node child nodes will be loaded
Asked: 2010-10-31 22:33:55 +0800
Seen: 155 times
Last updated: Oct 31 '10