Dynamically create node in lwuit for tree view

780 views Asked by At
TreeModel model = new TreeModel() {

    Node[] sillyTree =  {

        new Node("X", new Node[] {
           new Node("Child 1", new Node[] {
           }),
           new Node("Child 2", new Node[] {
           }),
           new Node("Child 3", new Node[] {
           }),
       }),
       new Node("Y", new Node[] {
           new Node("A", new Node[] {
           })
       }),
       new Node("Z", new Node[] {
           new Node("A", new Node[] {
           }),
       }),
    };

I want to create a node as dynacially,above sample code for static plz help

2

There are 2 answers

0
bharath On

See the TreeDemo class in UIDemo application. Here dynamically retrieve the values from file root and add that values into vector. See the FileTreeModel inner class from TreeDemo class. You can follow the same thing and add the dynamic values like that.

0
Payal On

This might help -

class Node {
    Vector children;
    String value;   // Name of the nodeā€¦.

    public Node(String value, Vector children) {
        this.children = children;
        this.value = value;
    }

    public String toString() {
        return value;
    }
}

And -

  Node[] nodeArray = generateRootNode(); 

  TreeModel model = new TreeModel() {

  Node[] sillyTree = nodeArray;

                public Vector getChildren(Object parent) {
                    Node n = (Node) parent;
                    Object[] nodes = null;
                    Vector v = new Vector();
                    if (parent == null) {
                        nodes = sillyTree;
                    } else {
                        v = n.children;
                    }
                    if (nodes != null) {
                        for (int iter = 0; iter < nodes.length; iter++) {
                            v.addElement(nodes[iter]);
                        }
                    }
                    return v;
                }

                public boolean isLeaf(Object node) {
                    boolean returnValue = false;
                    try {
                        Node n = (Node) node;
                        returnValue = n.children == null || n.children.size() == 0;
                    } catch (ClassCastException ex) {
                        // It means its a child node or a leaf...
                            returnValue = true;
                    }
                    return returnValue;
                }
            };