-
FEATURED COMPONENTS
First time here? Check out the FAQ!
test.zul
<?page title="new page title" contentType="text/html;charset=UTF-8"?>
<zk>
<window
use="com.test.TestWindow"
title="new page title" border="normal">
<tree id="tree" height="300px" checkmark="true" multiple="true"/>
<checkbox label="dd" forward="onSelectAll"/>
</window>
</zk>
Test.java
public class TestWindow extends Window implements AfterCompose
{
private Tree tree;
@Override
public void afterCompose()
{
Components.wireVariables(this , this);
tree.setTreeitemRenderer(new MyTreeitemRenderer());
tree.setModel(new MyTreeModel());
}
public void onSelectAll(ForwardEvent event)
{
final Checkbox cb = (Checkbox) event.getOrigin().getTarget();
if(cb.isChecked())
tree.selectAll();
else
tree.clearSelection();
}
class MyTreeitemRenderer implements TreeitemRenderer
{
@Override
public void render(Treeitem treeitem, Object arg1) throws Exception
{
treeitem.setLabel(arg1.toString());
treeitem.setSelected(true);
}
}
class MyTreeModel implements TreeModel
{
@Override
public void addTreeDataListener(TreeDataListener arg0)
{
// TODO Auto-generated method stub
}
@Override
public Object getChild(Object arg0, int arg1)
{
if(arg0.getClass().isArray())
return "tttt";
return "dd";
}
@Override
public int getChildCount(Object arg0)
{
if(arg0.getClass().isArray())
return ((String[]) arg0).length;
// TODO Auto-generated method stub
return "tttt".equals(arg0) ? 5 : 0;
}
@Override
public int[] getPath(Object arg0, Object arg1)
{
// TODO Auto-generated method stub
return null;
}
@Override
public Object getRoot()
{
// TODO Auto-generated method stub
return new String[]{"tttt"};
}
@Override
public boolean isLeaf(Object arg0)
{
if(arg0.getClass().isArray())
return false;
// TODO Auto-generated method stub
return !"tttt".equals(arg0);
}
@Override
public void removeTreeDataListener(TreeDataListener arg0)
{
// TODO Auto-generated method stub
}
}
}
while tree has only one root item
call tree.clearSelection() method can't clear the tree all item select status
but when tree has multi root item
it run fine
or
it can clear all selection when click the "clear all" button
<?page title="new page title" contentType="text/html;charset=UTF-8"?>
<zk>
<window
use="com.test.TestWindow"
title="new page title" border="normal">
<tree id="tree" height="300px" checkmark="true" multiple="true"/>
<checkbox id="cb" label="dd" forward="onSelectAll"/>
<button label="clear all" onClick="clear()"/>
<zscript>
//bug for zk 5.0.4
//当树有多个根节点时不能正确清除所有节点的选择状态
void clear()
{
if(cb.isChecked() == true)
return;
for(Iterator iter = tree.getItems().iterator();iter.hasNext();)
{
final Treeitem treeitem = (Treeitem) iter.next();
treeitem.setSelected(false);
}
}
</zscript>
</window>
</zk>
Asked: 2010-10-18 00:44:47 +0800
Seen: 283 times
Last updated: Oct 20 '10