<!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>