Hai..
I am very new to GWT .When I developing Tree  filling application ,I
unable to set data to TreeNodes(I used RPC )

Here My Code:


----------------------------Client
Side---------------------------------------------------------------------------
package org.karishma.client;

import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.rpc.ServiceDefTarget;
import com.google.gwt.user.client.ui.FocusListener;
import com.google.gwt.user.client.ui.RootPanel;
import com.google.gwt.user.client.ui.Tree;
import com.google.gwt.user.client.ui.TreeItem;
import com.google.gwt.user.client.ui.TreeListener;
import com.google.gwt.user.client.ui.Widget;
import com.gwtext.client.widgets.Panel;
import java.util.ArrayList;

public class TreeMainEntryPoint  implements
EntryPoint,TreeListener,FocusListener {
   public Tree tree ;

  class PendingItem extends TreeItem {
    public PendingItem() {
      super("Please wait...");
    }
  }
    class TreeNode {
    public TreeNode[] children;
    public TreeItem item;

    public String text;
    public String value;
    public String pgCode;
    public String level;
    public TreeNode(String text,String value,String pgCode,String
level) {
      this.text = text;
      this.value=value;
      this.pgCode=pgCode;
      this.level=level;
    }

    public TreeNode(String text,String value,String  pgCode,String
level, TreeNode[] children) {
      this(text,value,pgCode,level);
      this.children = children;
    }
  }
     TreeNode[] fTreeNode = new TreeNode[]{
    new TreeNode("group1","10","","0", new TreeNode[]{
      new TreeNode("A","20","10","1", new TreeNode[]{
        new TreeNode("1","30","20","2"),
        new TreeNode("2","40","20","2"),
        new TreeNode("3","50","20","2"),
        new TreeNode("4","60","20","2"),
        new TreeNode("5","70","20","2"),}),
      new TreeNode("B","80","10","1", new TreeNode[]{
        new TreeNode("B1","90","80","2"),
        new TreeNode("B2","100","80","2"),
        new TreeNode("B3","110","80","2"),}),
      new TreeNode("C","120","10","1", new TreeNode[]{
        new TreeNode("C1","130","120","2"),
        new TreeNode("C2","140","120","2"),}),
      new TreeNode("D","150","10","1", new TreeNode[]{
        new TreeNode("1","160","150","2"),
        new TreeNode("2","170","150","2"),
        new TreeNode("3","180","150","2"),}),}),
    new TreeNode("group2","190","","0", new TreeNode[]{
      new TreeNode("A","200","190","1", new TreeNode[]{
        new TreeNode("A1","210","200","2"),
        new TreeNode("A2","220","200","2"),
        new TreeNode("A3","230","200","2"),
        new TreeNode("A4","250","200","2"),}),
      new TreeNode("B","260","190","1",new TreeNode[]{
        new TreeNode("1","240","260","2"),
        new TreeNode("2","270","260","2"),
        new TreeNode("3","280","260","2")
        }),

      }),
    };

    /**
        The entry point method, called automatically by loading a
module
        that declares an implementing class as an entry-point
    */
    public void onModuleLoad() {
     tree = new Tree();
     for (int i = 0; i < fTreeNode.length; ++i) {
      createItem(fTreeNode[i]);
      tree.addItem(fTreeNode[i].item);
    }

   tree.addTreeListener(this);
   tree.addFocusListener(this);
    tree.setWidth("10px");
         Panel p1=new Panel();
         p1.add(tree);
         p1.setTitle("Tree Structure");
         p1.setBorder(true);
         p1.setPaddings(5);
         p1.setSize(250,500);
         p1.setAutoScroll(true);
         RootPanel.get().add(p1);
        // Create an asynchronous callback to handle the result.
       final AsyncCallback callback = new AsyncCallback() {
            public void onSuccess(Object result) {
            Window.alert(result.toString());
            ArrayList al1=(ArrayList )result;

            }
            public void onFailure(Throwable caught) {
             Window.alert("Communication failed....");
            }
        };

       getService().getTree(callback);

    }

      private void createItem(TreeNode TreeNode) {
    TreeNode.item = new TreeItem(TreeNode.text);
    TreeNode.item.setUserObject(TreeNode);
    TreeNode.item.setSelected(true);
    if (TreeNode.children != null) {
      TreeNode.item.addItem(new PendingItem());
    }
  }
  public void onTreeItemSelected(TreeItem item) {
    Window.alert("code:"+((TreeNode) item.getUserObject()).value
+";desc:"+((TreeNode) item.getUserObject()).text+";pgcode:"+
((TreeNode) item.getUserObject()).pgCode+";level:"+((TreeNode)
item.getUserObject()).level);
  }

  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);
      }
    }
  }


    public static TreeServiceAsync getService(){
        // Create the client proxy. Note that although you are
creating the
        // service interface proper, you cast the result to the
asynchronous
        // version of
        // the interface. The cast is always safe because the
generated proxy
        // implements the asynchronous interface automatically.
        TreeServiceAsync service = (TreeServiceAsync) GWT.create
(TreeService.class);
        // Specify the URL at which our service implementation is
running.
        // Note that the target URL must reside on the same domain and
port from
        // which the host page was served.
        //
        ServiceDefTarget endpoint = (ServiceDefTarget) service;
        String moduleRelativeURL = GWT.getModuleBaseURL() +
"treeservice";
        endpoint.setServiceEntryPoint(moduleRelativeURL);
        return service;
    }


    public void onLostFocus(Widget tree1) {
       this.tree=(Tree)tree1;


    }

    public void onFocus(Widget tree1) {
        throw new UnsupportedOperationException("Not supported yet.");
    }
----------------------------------------------------------------------------------------------------
package org.karishma.client;
import com.google.gwt.user.client.rpc.RemoteService;
import java.util.ArrayList;

public interface TreeService extends RemoteService{
    public ArrayList getTree();
}

}
-----------------------------------------------------------------------------------------------------------
package org.karishma.client;
import com.google.gwt.user.client.rpc.AsyncCallback;

public interface TreeServiceAsync {
    public void getTree(AsyncCallback callback);
}
--------------------------------------------------Server
Side------------------------------------------

package org.karishma.server;
import com.google.gwt.user.server.rpc.RemoteServiceServlet;
import java.sql.*;

import java.util.ArrayList;
import org.karishma.client.TreeService;

public class TreeServiceImpl extends RemoteServiceServlet implements
    TreeService {
    private Connection con;

    public ArrayList getTree() {
        // Do something interesting with 's' here on the server.
       ArrayList treeDada = new ArrayList();
        try {
             Class.forName("com.ibm.db2.jcc.DB2Driver");
            con=DriverManager.getConnection
("jdbc:db2://192.9.200.124:50000/LIMS","db2admin","db2admin"); //
ACCOUNTTABLE1,GROUPTABLE1
            System.out.println("---connected---");
             //getting data from   GROUPTABLE1
            String vsql="select * from GROUPTABLE1";
            Statement stmt=con.createStatement();
            ResultSet rs=stmt.executeQuery(vsql);
            while(rs.next()){
            ArrayList data = new ArrayList();
            data.add(rs.getString(1));
            data.add(rs.getString(2));
            data.add(rs.getString(3));
            data.add(rs.getString(4));
            System.out.println(rs.getString(1)+"\t"+rs.getString
(2)+"\t"+"\t"+rs.getString(3)+"\t"+rs.getString(4));
             treeDada.add(data);

            }

            System.out.print("-----------------------");
            //getting data from   ACCOUNTTABLE1
            String vsql1="select * from ACCOUNTTABLE1";

            rs=stmt.executeQuery(vsql1);
            while(rs.next()){
            ArrayList accData = new ArrayList();

            accData.add(rs.getString(1));
            accData.add(rs.getString(2));
            accData.add(rs.getString(3));
            accData.add(rs.getString(4));
            System.out.println(rs.getString(1)+"\t"+rs.getString
(2)+"\t"+"\t"+rs.getString(3)+"\t"+rs.getString(4));
             treeDada.add(accData);
            }

        }catch(Exception e){
        e.printStackTrace();
        }
       return  treeDada;
    }
}
 -----------------------------------------------------
ACCOUNTTABLE1:

---------------------------------------
---------------------------------
ACODE      ANAME           PGCODE       LEVEL
----------------------------------------------------------------------------
30                 1                         20            2
100             B2                         80           2  (Like that
same as hardcoded in EntryPoint Class  )
-----------------------------------------------------------------------------
Note Account table Records nothing but the final leafs which have no
childs
GroupTable1:
------------------------------------------------------------------------
GCOCE        GNAME     PGCODE          LEVEL(same as hard coded in EP
class)
-----------------------------------------------------------------------
Group1          10                                      0
20                 A                   10                 1
80                 B                     10                1
--------------------------------------------------------------------



Any body can help me .....I need building tree logic too..

Thanks in advance.....
Raju.........




--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"GWT-Ext Developer Forum" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/gwt-ext?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to