<html> <head> <script type="text/javascript" src="js/raphael-min.js"></script> <script type="text/javascript" src="js/dracula_graffle.js"></script> <script type="text/javascript" src="js/dracula_graph.js"></script> <script type="text/javascript"> <!-- var redraw; var width; var height; var layouter = null; var renderer = null; var json = []; window.onload = function() { var req = new XMLHttpRequest(); if ( navigator.appName.indexOf('Microsoft') != -1 ) { width = (document.body.offsetWidth > 50) ? document.body.offsetWidth - 50 : 50; height = (document.body.offsetHeight > 50 ) ? document.body.offsetHeight - 50 : 50; } else { width = (window.innerWidth > 50) ? window.innerWidth - 50 : 50; height = (window.innerHeight > 50) ? window.innerHeight- 50 : 50; } req.open ( 'GET', 'http://' + window.location.host + '/correlation_graph.json', true ); req.onreadystatechange = function() { if ( req.readyState == 4 && req.status == 200 ) { var g = new Graph(); var connections = []; json = JSON.parse ( req.responseText ); for ( var i=0; i < json.length; i++ ) { g.addNode ( json[i].id, { label: json[i].label }); if ( json[i].connectedTo ) { for ( var j=0; j < json[i].connectedTo.length; j++ ) { connections.push ({ "from": json[i].id, "to" : json[i].connectedTo[j].id }); } } } for ( var i=0; i < connections.length; i++ ) { g.addEdge ( connections[i].from, connections[i].to, { directed: true }); } var layouter = new Graph.Layout.Spring ( g ); layouter.layout(); var renderer = new Graph.Renderer.Raphael ( 'canvas', g, width, height ); renderer.draw(); redraw = function() { layouter.layout(); renderer.draw(); }; } }; req.send ( null ); }; --> </script> </head> <body> <div id="canvas" style="border: 1px"></div> <button id="redraw" onclick="redraw();">redraw</button> </body> </html>