This method adds nodes to the graph dynamically. BirdEye Code Example

  1. =======================
  2.  
  3. /*
  4. * This method adds nodes to the graph dynamically.
  5. */
  6. private function addNodesToGraph(newNodes:XML):void {
  7. vgraph.newNodesDefaultVisible = true;
  8.  
  9. var nodes:XMLList = newNodes.child("Node");
  10. var edges:XMLList = newNodes.child("Edge");
  11.  
  12. //Keep track of root node.
  13. var root:IVisualNode=vgraph.currentRootVNode;
  14.  
  15. for (var i:Number = 0; i < nodes.length(); i++) {
  16. if (graphData.children().contains(nodes[i])) {
  17. //trace("Node "+nodes[i].@id+" exists. ");
  18. } else {
  19. graphData.appendChild(nodes[i]);
  20. var newNode:IVisualNode = vgraph.createNode(nodes
  21. [i].@id, nodes[i]);
  22. }
  23. }
  24.  
  25. for (var j:Number = 0; j < edges.length(); j++) {
  26. if (graphData.children().contains(edges[j])) {
  27. //trace("Edge '"+XML(edges[j]).toXMLString()+"'
  28. exists. ");
  29. } else {
  30.  
  31. graphData.appendChild(edges[j]);
  32. var fromNode:INode = graph.nodeByStringId(edges
  33. [j].@fromID);
  34. var toNode:INode = graph.nodeByStringId(edges
  35. [j].@toID);
  36.  
  37. var newEdge:IVisualEdge = vgraph.linkNodes
  38. (fromNode.vnode, toNode.vnode);
  39. newEdge.data = edges[j];
  40.  
  41. }
  42. }
  43. /* the following kicks it off .... */
  44. vgraph.currentRootVNode = graph.nodeByStringId(XML
  45. (newNodes).@rootID).vnode;
  46. vgraph.draw();
  47. }