| @ -0,0 +1,265 @@ | |||
| <!doctype html> | |||
| <html> | |||
| <head> | |||
| <title>Graph | DataSet</title> | |||
| <style type="text/css"> | |||
| html, body { | |||
| font: 11pt arial; | |||
| } | |||
| h1 { | |||
| font-size: 150%; | |||
| margin: 5px 0; | |||
| } | |||
| h2 { | |||
| font-size: 100%; | |||
| margin: 5px 0; | |||
| } | |||
| table.view { | |||
| width: 100%; | |||
| } | |||
| table td { | |||
| vertical-align: top; | |||
| } | |||
| table table { | |||
| background-color: #f5f5f5; | |||
| border: 1px solid #e5e5e5; | |||
| } | |||
| table table td { | |||
| vertical-align: middle; | |||
| } | |||
| input[type=text], pre { | |||
| border: 1px solid lightgray; | |||
| } | |||
| pre { | |||
| margin: 0; | |||
| padding: 5px; | |||
| font-size: 10pt; | |||
| } | |||
| #graph { | |||
| width: 100%; | |||
| height: 400px; | |||
| border: 1px solid lightgray; | |||
| } | |||
| </style> | |||
| <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script> | |||
| <script type="text/javascript" src="../../vis.js"></script> | |||
| <script type="text/javascript"> | |||
| var nodes, edges, graph; | |||
| // convenience method to stringify a JSON object | |||
| function toJSON (obj) { | |||
| return JSON.stringify(obj, null, 4); | |||
| } | |||
| $(window).load(function () { | |||
| // attach actions to the node buttons | |||
| $('#node-add').click(function () { | |||
| try { | |||
| nodes.add({ | |||
| id: $('#node-id').val(), | |||
| label: $('#node-label').val() | |||
| }); | |||
| } | |||
| catch (err) { | |||
| alert(err); | |||
| } | |||
| }); | |||
| $('#node-update').click(function () { | |||
| try { | |||
| nodes.update({ | |||
| id: $('#node-id').val(), | |||
| label: $('#node-label').val() | |||
| }); | |||
| } | |||
| catch (err) { | |||
| alert(err); | |||
| } | |||
| }); | |||
| $('#node-remove').click(function () { | |||
| try { | |||
| var id = $('#node-id').val(); | |||
| nodes.remove(id); | |||
| } | |||
| catch (err) { | |||
| alert(err); | |||
| } | |||
| }); | |||
| // attach actions to the edge buttons | |||
| $('#edge-add').click(function () { | |||
| try { | |||
| edges.add({ | |||
| id: $('#edge-id').val(), | |||
| from: $('#edge-from').val(), | |||
| to: $('#edge-to').val() | |||
| }); | |||
| } | |||
| catch (err) { | |||
| alert(err); | |||
| } | |||
| }); | |||
| $('#edge-update').click(function () { | |||
| try { | |||
| edges.update({ | |||
| id: $('#edge-id').val(), | |||
| from: $('#edge-from').val(), | |||
| to: $('#edge-to').val() | |||
| }); | |||
| } | |||
| catch (err) { | |||
| alert(err); | |||
| } | |||
| }); | |||
| $('#edge-remove').click(function () { | |||
| try { | |||
| var id = $('#edge-id').val(); | |||
| edges.remove(id); | |||
| } | |||
| catch (err) { | |||
| alert(err); | |||
| } | |||
| }); | |||
| // create an array with nodes | |||
| nodes = new vis.DataSet(); | |||
| nodes.subscribe('*', function () { | |||
| $('#nodes').html(toJSON(nodes.get())); | |||
| }); | |||
| nodes.add([ | |||
| {id: '1', label: 'Node 1'}, | |||
| {id: '2', label: 'Node 2'}, | |||
| {id: '3', label: 'Node 3'}, | |||
| {id: '4', label: 'Node 4'}, | |||
| {id: '5', label: 'Node 5'} | |||
| ]); | |||
| // create an array with edges | |||
| edges = new vis.DataSet(); | |||
| edges.subscribe('*', function () { | |||
| $('#edges').html(toJSON(edges.get())); | |||
| }); | |||
| edges.add([ | |||
| {id: '1', from: '1', to: '2'}, | |||
| {id: '2', from: '1', to: '3'}, | |||
| {id: '3', from: '2', to: '4'}, | |||
| {id: '4', from: '2', to: '5'} | |||
| ]); | |||
| // create a graph | |||
| var container = $('#graph').get(0); | |||
| var data = { | |||
| nodes: nodes, | |||
| edges: edges | |||
| }; | |||
| var options = {}; | |||
| graph = new vis.Graph(container, data, options); | |||
| }); | |||
| </script> | |||
| </head> | |||
| <body> | |||
| <p> | |||
| This example demonstrates dynamically adding, updating and removing nodes | |||
| and edges using a DataSet. | |||
| </p> | |||
| <h1>Adjust</h1> | |||
| <table> | |||
| <tr> | |||
| <td> | |||
| <h2>Node</h2> | |||
| <table> | |||
| <tr> | |||
| <td></td> | |||
| <td><label for="node-id">Id</label></td> | |||
| <td><input id="node-id" type="text" value="6"></td> | |||
| </tr> | |||
| <tr> | |||
| <td></td> | |||
| <td><label for="node-label">Label</label></td> | |||
| <td><input id="node-label" type="text" value="Node 6"></td> | |||
| </tr> | |||
| <tr> | |||
| <td></td> | |||
| <td>Action</td> | |||
| <td> | |||
| <button id="node-add">Add</button> | |||
| <button id="node-update">Update</button> | |||
| <button id="node-remove">Remove</button> | |||
| </td> | |||
| </tr> | |||
| </table> | |||
| </td> | |||
| <td> | |||
| <h2>Edge</h2> | |||
| <table> | |||
| <tr> | |||
| <td></td> | |||
| <td><label for="edge-id">Id</label></td> | |||
| <td><input id="edge-id" type="text" value="5"></td> | |||
| </tr> | |||
| <tr> | |||
| <td></td> | |||
| <td><label for="edge-from">From</label></td> | |||
| <td><input id="edge-from" type="text" value="3"></td> | |||
| </tr> | |||
| <tr> | |||
| <td></td> | |||
| <td><label for="edge-to">To</label></td> | |||
| <td><input id="edge-to" type="text" value="4"></td> | |||
| </tr> | |||
| <tr> | |||
| <td></td> | |||
| <td>Action</td> | |||
| <td> | |||
| <button id="edge-add">Add</button> | |||
| <button id="edge-update">Update</button> | |||
| <button id="edge-remove">Remove</button> | |||
| </td> | |||
| </tr> | |||
| </table> | |||
| </td> | |||
| </tr> | |||
| </table> | |||
| <h1>View</h1> | |||
| <table class="view"> | |||
| <colgroup> | |||
| <col width="25%"> | |||
| <col width="25%"> | |||
| <col width="50%"> | |||
| </colgroup> | |||
| <tr> | |||
| <td> | |||
| <h2>Nodes</h2> | |||
| <pre id="nodes"></pre> | |||
| </td> | |||
| <td> | |||
| <h2>Edges</h2> | |||
| <pre id="edges"></pre> | |||
| </td> | |||
| <td> | |||
| <h2>Graph</h2> | |||
| <div id="graph"></div> | |||
| </td> | |||
| </tr> | |||
| </table> | |||
| </body> | |||
| </html> | |||