0

bug for ZK 5.0.4 PE 2010083112 the treeitem can't open

asked 2010-10-31 22:33:55 +0800

yuzexu_zk gravatar image yuzexu_zk
240 2

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

delete flag offensive retag edit
Be the first one to reply this discussion!
Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!

[hide preview]

Question tools

Follow

RSS

Stats

Asked: 2010-10-31 22:33:55 +0800

Seen: 155 times

Last updated: Oct 31 '10

Support Options
  • Email Support
  • Training
  • Consulting
  • Outsourcing
Learn More