/* B50_ZK_564_Composer.java {{IS_NOTE Purpose: Description: History: Nov 21, 2011 11:14:29 AM , Created by jumperchen }}IS_NOTE Copyright (C) 2011 Potix Corporation. All Rights Reserved. {{IS_RIGHT }}IS_RIGHT */ package org.zkoss.zktest.test2; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.util.GenericForwardComposer; import org.zkoss.zul.Button; import org.zkoss.zul.DefaultTreeModel; import org.zkoss.zul.DefaultTreeNode; import org.zkoss.zul.Tree; import org.zkoss.zul.TreeModel; import org.zkoss.zul.Treeitem; import org.zkoss.zul.TreeitemRenderer; import org.zkoss.zul.event.TreeDataEvent; import org.zkoss.zul.event.TreeDataListener; /** * @author jumperchen * */ public class B50_ZK_564_Composer extends GenericForwardComposer { private Tree tree; private Button add, insert; DefaultTreeNode root; public void doAfterCompose(Component comp) throws Exception { super.doAfterCompose(comp); root = new DefaultTreeNode("", new DefaultTreeNode[0]); TreeModel model = new DefaultTreeModel(root); TreeDataListener listener = new TreeDataListener() { public void onChange(TreeDataEvent event) { switch(event.getType()) { case TreeDataEvent.INTERVAL_ADDED: alert("INTERVAL_ADDED"); break; case TreeDataEvent.INTERVAL_REMOVED: alert("INTERVAL_REMOVED"); break; } } }; model.addTreeDataListener(listener); TreeitemRenderer renderer = new TreeitemRenderer() { public void render(Treeitem item, Object data, int index) { item.setValue(data); item.setLabel("" + ((DefaultTreeNode) data).getData()); } }; tree.setModel(model); tree.setItemRenderer(renderer); } int i = 0; public void onClick$add(Event event) { Treeitem item = tree.getSelectedItem(); DefaultTreeNode parent = item == null ? root : (DefaultTreeNode) item.getValue(); if (parent.isLeaf()) { alert("Leaf"); return; } String s = "TN-" + i++; DefaultTreeNode newNode = new DefaultTreeNode(s, new DefaultTreeNode[0]); parent.add(newNode); } }