Mega Code Archive

 
Categories / Java / GWT
 

Create Tree With Pending Item

package com.rntsoft.gwt.client; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.user.client.Window; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.ClickListener; import com.google.gwt.user.client.ui.RootPanel; import com.google.gwt.user.client.ui.Widget; import com.google.gwt.user.client.ui.Tree; import com.google.gwt.user.client.ui.TreeItem; import com.google.gwt.user.client.ui.TreeListener; public class GWTClient implements EntryPoint,TreeListener {   class PendingItem extends TreeItem {     public PendingItem() {       super("Please wait...");     }   }   class TreeNode {     public TreeNode[] children;     public TreeItem item;     public String text;     public TreeNode(String text) {       this.text = text;     }     public TreeNode(String text, TreeNode[] children) {       this(text);       this.children = children;     }   }   TreeNode[] fTreeNode = new TreeNode[]{     new TreeNode("A", new TreeNode[]{       new TreeNode("B", new TreeNode[]{         new TreeNode("1"),          new TreeNode("2"),         new TreeNode("3"),          new TreeNode("4"),         new TreeNode("5"),}),       new TreeNode("B", new TreeNode[]{         new TreeNode("B1"),          new TreeNode("B2"),         new TreeNode("B3"),}),       new TreeNode("C", new TreeNode[]{         new TreeNode("C1"),          new TreeNode("C2"),}),       new TreeNode("D", new TreeNode[]{         new TreeNode("1"),          new TreeNode("2"),         new TreeNode("3"),}),}),     new TreeNode("AA", new TreeNode[]{       new TreeNode("A", new TreeNode[]{         new TreeNode("A1"),          new TreeNode("A2"),         new TreeNode("A3"),         new TreeNode("A4"),}),       new TreeNode("B", new TreeNode[]{         new TreeNode("1"),         new TreeNode("2"),         new TreeNode("3"),         new TreeNode("4"),}),       new TreeNode("C", new TreeNode[]{         new TreeNode("F"),         new TreeNode("E"),}),       new TreeNode("G", new TreeNode[]{         new TreeNode("C"),          new TreeNode("2"),         new TreeNode("F"),          new TreeNode("E"),}),}),     new TreeNode("M", new TreeNode[]{         new TreeNode("C", new TreeNode[]{       new TreeNode("P"),        new TreeNode("V"),}),}),};   public void onModuleLoad() {     Tree tree = new Tree();     for (int i = 0; i < fTreeNode.length; ++i) {       createItem(fTreeNode[i]);       tree.addItem(fTreeNode[i].item);     }     tree.addTreeListener(this);     tree.setWidth("20em");     RootPanel.get().add(tree);   }   private void createItem(TreeNode TreeNode) {     TreeNode.item = new TreeItem(TreeNode.text);     TreeNode.item.setUserObject(TreeNode);     if (TreeNode.children != null) {       TreeNode.item.addItem(new PendingItem());     }   }   public void onTreeItemSelected(TreeItem item) {     Window.alert(((TreeNode) item.getUserObject()).text);   }   public void onTreeItemStateChanged(TreeItem item) {     TreeItem child = item.getChild(0);     if (child instanceof PendingItem) {       item.removeItem(child);       TreeNode tn = (TreeNode) item.getUserObject();       for (int i = 0; i < tn.children.length; ++i) {         createItem(tn.children[i]);         item.addItem(tn.children[i].item);       }     }   }    }                               GWT-createTreeWithPendingItem.zip( 3 k)