141 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			141 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| <!doctype html>
 | |
| <html>
 | |
| <head>
 | |
|     <title>Network | Dynamic Data</title>
 | |
| 
 | |
|     <script type="text/javascript" src="../../../dist/vis.js"></script>
 | |
|     <link href="../../../dist/vis.css" rel="stylesheet" type="text/css" />
 | |
| 
 | |
|     <style type="text/css">
 | |
|         #mynetwork {
 | |
|             width: 600px;
 | |
|             height: 400px;
 | |
|             border: 1px solid lightgray;
 | |
|         }
 | |
| 
 | |
|         p {
 | |
|             max-width:600px;
 | |
|         }
 | |
| 
 | |
|         h4 {
 | |
|             margin-bottom:3px;
 | |
|         }
 | |
|     </style>
 | |
| </head>
 | |
| 
 | |
| <p>
 | |
|     You can change any settings you want while the network is initialized using the vis Dataset, setOptions and setData. Finally you can destroy the network and completely reinitialize it.
 | |
| </p>
 | |
| 
 | |
| <h4>DataSet (change the data while it's loaded and initialzed):</h4>
 | |
| <input type="button" onclick="addNode()" value="add node dynamically"> <br />
 | |
| <input type="button" onclick="changeNode1()" value="change node 1's color dynamically"> <br />
 | |
| <input type="button" onclick="removeRandomNode()" value="remove a random Node"> <br />
 | |
| <input type="button" onclick="resetAllNodes()" value="reload all nodes"> <br />
 | |
| <input type="button" onclick="resetAllNodesStabilize()" value="reload all nodes and stabilize"> <br />
 | |
| 
 | |
| <h4>setOptions (change the global options):</h4>
 | |
| <input type="button" onclick="changeOptions()" value="change the global options"><br />
 | |
| 
 | |
| <h4>setData (reinitialize the data): </h4>
 | |
| <input type="button" onclick="setTheData()" value="setData. This stabilizes again if stabilization is true."><br />
 | |
| 
 | |
| <h4>Cleanly destroy the network and restart it:</h4>
 | |
| <input type="button" onclick="resetAll()" value="Destroy the network and restart it."><br />
 | |
| <div id="mynetwork"></div>
 | |
| 
 | |
| <script type="text/javascript">
 | |
|     var nodeIds, shadowState, nodesArray, nodes, edgesArray, edges, network;
 | |
| 
 | |
|     function startNetwork() {
 | |
|         // this list is kept to remove a random node.. we do not add node 1 here because it's used for changes
 | |
|         nodeIds = [2, 3, 4, 5];
 | |
|         shadowState = false;
 | |
| 
 | |
| 
 | |
|         // create an array with nodes
 | |
|         nodesArray = [
 | |
|             {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'}
 | |
|         ];
 | |
|         nodes = new vis.DataSet(nodesArray);
 | |
| 
 | |
|         // create an array with edges
 | |
|         edgesArray = [
 | |
|             {from: 1, to: 3},
 | |
|             {from: 1, to: 2},
 | |
|             {from: 2, to: 4},
 | |
|             {from: 2, to: 5}
 | |
|         ];
 | |
|         edges = new vis.DataSet(edgesArray);
 | |
| 
 | |
|         // create a network
 | |
|         var container = document.getElementById('mynetwork');
 | |
|         var data = {
 | |
|             nodes: nodes,
 | |
|             edges: edges
 | |
|         };
 | |
|         var options = {};
 | |
|         network = new vis.Network(container, data, options);
 | |
|     }
 | |
| 
 | |
|     function addNode() {
 | |
|         var newId = (Math.random() * 1e7).toString(32);
 | |
|         nodes.add({id:newId, label:"I'm new!"});
 | |
|         nodeIds.push(newId);
 | |
|     }
 | |
| 
 | |
|     function changeNode1() {
 | |
|         var newColor = '#' + Math.floor((Math.random() * 255 * 255 * 255)).toString(16);
 | |
|         nodes.update([{id:1, color:{background:newColor}}]);
 | |
|     }
 | |
| 
 | |
|     function removeRandomNode() {
 | |
|         var randomNodeId = nodeIds[Math.floor(Math.random() * nodeIds.length)];
 | |
|         nodes.remove({id:randomNodeId});
 | |
| 
 | |
|         var index = nodeIds.indexOf(randomNodeId);
 | |
|         nodeIds.splice(index,1);
 | |
|     }
 | |
| 
 | |
|     function changeOptions() {
 | |
|         shadowState = !shadowState;
 | |
|         network.setOptions({nodes:{shadow:shadowState},edges:{shadow:shadowState}});
 | |
|     }
 | |
| 
 | |
|     function resetAllNodes() {
 | |
|         nodes.clear();
 | |
|         edges.clear();
 | |
|         nodes.add(nodesArray);
 | |
|         edges.add(edgesArray);
 | |
|     }
 | |
| 
 | |
|     function resetAllNodesStabilize() {
 | |
|         resetAllNodes();
 | |
|         network.stabilize();
 | |
|     }
 | |
| 
 | |
|     function setTheData() {
 | |
|         nodes = new vis.DataSet(nodesArray);
 | |
|         edges = new vis.DataSet(edgesArray);
 | |
|         network.setData({nodes:nodes, edges:edges})
 | |
|     }
 | |
| 
 | |
|     function resetAll() {
 | |
|         if (network !== null) {
 | |
|             network.destroy();
 | |
|             network = null;
 | |
|         }
 | |
|         startNetwork();
 | |
|     }
 | |
| 
 | |
|     startNetwork();
 | |
| </script>
 | |
| 
 | |
| <script src="../../googleAnalytics.js"></script>
 | |
| </body>
 | |
| </html>
 |