Hi
The problem in the below code is even though i set checkmark = true and multiple = true, but still shows like radio button only. i,e single selection.
I want to make as per the demo
http://www.zkoss.org/zkdemo/tree/multiple_selection
Here is the code.
Zul File
composer
package mypack;
import java.util.ArrayList;
import java.util.List;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zul.DefaultTreeModel;
import org.zkoss.zul.DefaultTreeNode;
import org.zkoss.zul.Div;
import org.zkoss.zul.Label;
import org.zkoss.zul.Tree;
import org.zkoss.zul.Treecell;
import org.zkoss.zul.Treeitem;
import org.zkoss.zul.TreeitemRenderer;
import org.zkoss.zul.Treerow;
public class TreeComposer extends GenericForwardComposer
{
private Label lbl;
public void doAfterCompose(Div comp) throws Exception {
super.doAfterCompose(comp);
}
public void onInitModel$treeGrid() {
lbl.setValue(lbl.getValue() + "onInitModel/");
}
public void onInitRender$treeGrid() {
lbl.setValue(lbl.getValue() + "onInitRender/");
}
public DefaultTreeModel getTreeModel() {
return new DefaultTreeModel(getFileInfoTreeData());
}
public FileInfoRenderer getTreeRenderer() {
return new FileInfoRenderer();
}
private DefaultTreeNode getFileInfoTreeData() {
List> inner3 = new ArrayList>();
inner3.add(new DefaultTreeNode(new FileInfo("zcommon.jar", "ZK Common Library")));
inner3.add(new DefaultTreeNode(new FileInfo("zk.jar", "ZK Core Library")));
List> inner2 = new ArrayList>();
inner2.add(new DefaultTreeNode(new FileInfo("/lib", "ZK Libraries"), inner3));
inner2.add(new DefaultTreeNode(new FileInfo("/src", "Source Code")));
inner2.add(new DefaultTreeNode(new FileInfo("/xsd", "XSD Files")));
List> inner1 = new ArrayList>();
inner1.add(new DefaultTreeNode(new FileInfo("/doc", "Release and License Notes")));
inner1.add(new DefaultTreeNode(new FileInfo("/dist", "Distribution"), inner2));
return new DefaultTreeNode(null, inner1);
}
public class FileInfoRenderer implements TreeitemRenderer> {
public void render(final Treeitem item, DefaultTreeNode data, int index) throws Exception {
item.setValue(data);
final FileInfo fi = data.getData();
item.setOpen(true);
//for update treeNode data
Treerow tr = item.getTreerow();
if(tr == null) {
tr = new Treerow();
} else {
tr.getChildren().clear();
}
item.appendChild(tr);
//render file path cell
item.setCheckable(true);
Treecell pathCell = new Treecell();
pathCell.setLabel(fi.getPath());
pathCell.setParent(tr);
//render file description cell
Treecell descriptionCell = new Treecell();
descriptionCell.setLabel(fi.getDescription());
descriptionCell.setParent(tr);
}
}
public class FileInfo {
private String path;
private String description;
public FileInfo() {}
public FileInfo(String path, String description) {
this.path = path;
this.description = description;
}
public String getPath() {
return path;
}
public void setPath(String path) {
this.path = path;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
}
}