diff options
| author | Pliable Pixels <pliablepixels@gmail.com> | 2017-09-21 12:49:18 -0400 |
|---|---|---|
| committer | Pliable Pixels <pliablepixels@gmail.com> | 2017-09-21 12:49:18 -0400 |
| commit | b28028ac4082842143b0f528d6bc539da6ccb419 (patch) | |
| tree | 1e26ea969a781ed8e323fca4e3c76345113fc694 /www/lib/vis/examples/network/other/manipulation.html | |
| parent | 676270d21beed31d767a06c89522198c77d5d865 (diff) | |
mega changes, including updates and X
Diffstat (limited to 'www/lib/vis/examples/network/other/manipulation.html')
| -rw-r--r-- | www/lib/vis/examples/network/other/manipulation.html | 193 |
1 files changed, 193 insertions, 0 deletions
diff --git a/www/lib/vis/examples/network/other/manipulation.html b/www/lib/vis/examples/network/other/manipulation.html new file mode 100644 index 00000000..b399c098 --- /dev/null +++ b/www/lib/vis/examples/network/other/manipulation.html @@ -0,0 +1,193 @@ +<!doctype html> +<html> +<head> + <meta charset="utf-8"/> + <title>Network | Manipulation</title> + + <style type="text/css"> + body, select { + font: 10pt sans; + } + #mynetwork { + position:relative; + width: 800px; + height: 600px; + border: 1px solid lightgray; + } + table.legend_table { + font-size: 11px; + border-width:1px; + border-color:#d3d3d3; + border-style:solid; + } + table.legend_table,td { + border-width:1px; + border-color:#d3d3d3; + border-style:solid; + padding: 2px; + } + div.table_content { + width:80px; + text-align:center; + } + div.table_description { + width:100px; + } + + #operation { + font-size:28px; + } + #network-popUp { + display:none; + position:absolute; + top:350px; + left:170px; + z-index:299; + width:250px; + height:120px; + background-color: #f9f9f9; + border-style:solid; + border-width:3px; + border-color: #5394ed; + padding:10px; + text-align: center; + } + </style> + <script type="text/javascript" src="../exampleUtil.js"></script> + <script type="text/javascript" src="../../../dist/vis.js"></script> + <link href="../../../dist/vis-network.min.css" rel="stylesheet" type="text/css" /> + + <script type="text/javascript"> + var nodes = null; + var edges = null; + var network = null; + // randomly create some nodes and edges + var data = getScaleFreeNetwork(25); + var seed = 2; + + function setDefaultLocale() { + var defaultLocal = navigator.language; + var select = document.getElementById('locale'); + select.selectedIndex = 0; // set fallback value + for (var i = 0, j = select.options.length; i < j; ++i) { + if (select.options[i].getAttribute('value') === defaultLocal) { + select.selectedIndex = i; + break; + } + } + } + + function destroy() { + if (network !== null) { + network.destroy(); + network = null; + } + } + + function draw() { + destroy(); + nodes = []; + edges = []; + + // create a network + var container = document.getElementById('mynetwork'); + var options = { + layout: {randomSeed:seed}, // just to make sure the layout is the same when the locale is changed + locale: document.getElementById('locale').value, + manipulation: { + addNode: function (data, callback) { + // filling in the popup DOM elements + document.getElementById('operation').innerHTML = "Add Node"; + document.getElementById('node-id').value = data.id; + document.getElementById('node-label').value = data.label; + document.getElementById('saveButton').onclick = saveData.bind(this, data, callback); + document.getElementById('cancelButton').onclick = clearPopUp.bind(); + document.getElementById('network-popUp').style.display = 'block'; + }, + editNode: function (data, callback) { + // filling in the popup DOM elements + document.getElementById('operation').innerHTML = "Edit Node"; + document.getElementById('node-id').value = data.id; + document.getElementById('node-label').value = data.label; + document.getElementById('saveButton').onclick = saveData.bind(this, data, callback); + document.getElementById('cancelButton').onclick = cancelEdit.bind(this,callback); + document.getElementById('network-popUp').style.display = 'block'; + }, + addEdge: function (data, callback) { + if (data.from == data.to) { + var r = confirm("Do you want to connect the node to itself?"); + if (r == true) { + callback(data); + } + } + else { + callback(data); + } + } + } + }; + network = new vis.Network(container, data, options); + } + + function clearPopUp() { + document.getElementById('saveButton').onclick = null; + document.getElementById('cancelButton').onclick = null; + document.getElementById('network-popUp').style.display = 'none'; + } + + function cancelEdit(callback) { + clearPopUp(); + callback(null); + } + + function saveData(data,callback) { + data.id = document.getElementById('node-id').value; + data.label = document.getElementById('node-label').value; + clearPopUp(); + callback(data); + } + + function init() { + setDefaultLocale(); + draw(); + } + + </script> + <script src="../../googleAnalytics.js"></script> +</head> + +<body onload="init();"> +<h2>Editing the nodes and edges (localized)</h2> +<p style="width: 700px; font-size:14px; text-align: justify;"> + The localization is only relevant to the manipulation buttons. +</p> + +<p> + <label for="locale">Select a locale:</label> + <select id="locale" onchange="draw();"> + <option value="en">en</option> + <option value="de">de</option> + <option value="es">es</option> + <option value="it">it</option> + <option value="nl">nl</option> + <option value="pt-br">pt</option> + <option value="ru">ru</option> + </select> +</p> + +<div id="network-popUp"> + <span id="operation">node</span> <br> + <table style="margin:auto;"><tr> + <td>id</td><td><input id="node-id" value="new value" /></td> + </tr> + <tr> + <td>label</td><td><input id="node-label" value="new value" /></td> + </tr></table> + <input type="button" value="save" id="saveButton" /> + <input type="button" value="cancel" id="cancelButton" /> +</div> +<br /> +<div id="mynetwork"></div> + +</body> +</html> |
