| <!doctype html> | |
| <html> | |
| <head> | |
|     <title>Network | Basic usage</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: 1400px; | |
|             height: 1000px; | |
|             border: 1px solid lightgray; | |
|         } | |
|     </style> | |
|     <script type="text/javascript"> | |
|     </script> | |
| </head> | |
| 
 | |
| <body> | |
| <my-toolbar> | |
|     <button id="toggleAddNode">add Nodes</button> | |
|     <button id="btnDelete">delete</button> | |
|     <!-- other Vis manipulation buttons --> | |
|     <button id="togglePhysics">pause Physics</button> | |
|     <button id="togglePin">toggle pin</button> | |
| </my-toolbar> | |
| <div id="mynetwork"></div> | |
| <script> | |
|     document.getElementById("toggleAddNode").onclick = addNode; | |
|     document.getElementById("btnDelete").onclick = visDelete; | |
|     document.getElementById("togglePhysics").onclick = togglePhysics; | |
|     document.getElementById("togglePin").onclick = togglePin; | |
| 
 | |
|     function storePositions() { | |
|         network.storePositions(); | |
|     } | |
| 
 | |
|     var inAddNodeMode = false; | |
| 
 | |
|     function addNode() { | |
|         if (inAddNodeMode) { | |
|             network.disableEditMode(); | |
|             inAddNodeMode = false; | |
|         } else { | |
|             network.addNodeMode(); | |
|             inAddNodeMode = true; | |
|         } | |
|     } | |
| 
 | |
|     function visDelete() { | |
|         network.deleteSelected(); | |
|     } | |
| 
 | |
|     function togglePhysics() { | |
|         isPhysicsEnabled = !isPhysicsEnabled; | |
|         network.setOptions({ | |
|             physics: isPhysicsEnabled | |
|         }); | |
|     } | |
|     var isPhysicsEnabled = true; | |
| 
 | |
|     function togglePin() { | |
|         network.storePositions(); | |
|         // update node.fixed | |
|     } | |
| 
 | |
|     // create an array with nodes | |
|     var nodes = new vis.DataSet([{ | |
|         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 | |
|     var edges = new vis.DataSet([{ | |
|         from: 1, | |
|         to: 3 | |
|     }, { | |
|         from: 1, | |
|         to: 2 | |
|     }, { | |
|         from: 2, | |
|         to: 4 | |
|     }, { | |
|         from: 2, | |
|         to: 5 | |
|     }]); | |
| 
 | |
|     // create a network | |
|     var container = document.getElementById('mynetwork'); | |
|     var data = { | |
|         nodes: nodes, | |
|         edges: edges | |
|     }; | |
|     var options = { | |
|         manipulation: { | |
|             enabled: false, | |
|             initiallyActive: false, | |
|             addNode: false, | |
|             //addEdge: onConnectEdge, | |
|             //editNode: onEditNode, | |
|             //editEdge: true, | |
|             deleteNode: onDelete, | |
|             // this is false, but the manipulation api can still delete edges | |
|             deleteEdge: false | |
|         } | |
|     }; | |
| 
 | |
|     function onAddNode(nodeToBeAdded, callback) { | |
|         //$log.debug('onAdd', nodeToBeAdded); | |
|         console.log('onAdd'); | |
|         // do stuff to the new node | |
|         inAddNodeMode = false; | |
|         callback(nodeToBeAdded); | |
|     } | |
| 
 | |
|     function onDelete(toBeDeletedData, callback) { | |
|         console.log('deleting data', toBeDeletedData); | |
|         // toBeDeletedData is object with nodes: [] and edges: [] | |
|  | |
|         callback(toBeDeletedData); | |
|     } | |
| 
 | |
| 
 | |
|     var network = new vis.Network(container, data, options); | |
| </script> | |
| </body> | |
| </html>
 |