<!doctype html>
							 | 
						|
								<html>
							 | 
						|
								<head>
							 | 
						|
								  <title>Network | 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;
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    #network {
							 | 
						|
								      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="../../dist/vis.js"></script>
							 | 
						|
								  <link href="../../dist/vis.css" rel="stylesheet" type="text/css" />
							 | 
						|
								
							 | 
						|
								  <script type="text/javascript">
							 | 
						|
								    var nodes, edges, network;
							 | 
						|
								
							 | 
						|
								    // 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 network
							 | 
						|
								      var container = $('#network').get(0);
							 | 
						|
								      var data = {
							 | 
						|
								        nodes: nodes,
							 | 
						|
								        edges: edges
							 | 
						|
								      };
							 | 
						|
								      var options = {};
							 | 
						|
								      network = new vis.Network(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>Network</h2>
							 | 
						|
								      <div id="network"></div>
							 | 
						|
								    </td>
							 | 
						|
								  </tr>
							 | 
						|
								</table>
							 | 
						|
								
							 | 
						|
								</body>
							 | 
						|
								</html>
							 |