summaryrefslogtreecommitdiff
path: root/www/lib/vis/examples/network/layout/hierarchicalLayoutUserdefined.html
diff options
context:
space:
mode:
Diffstat (limited to 'www/lib/vis/examples/network/layout/hierarchicalLayoutUserdefined.html')
-rw-r--r--www/lib/vis/examples/network/layout/hierarchicalLayoutUserdefined.html152
1 files changed, 152 insertions, 0 deletions
diff --git a/www/lib/vis/examples/network/layout/hierarchicalLayoutUserdefined.html b/www/lib/vis/examples/network/layout/hierarchicalLayoutUserdefined.html
new file mode 100644
index 00000000..dd77bb6b
--- /dev/null
+++ b/www/lib/vis/examples/network/layout/hierarchicalLayoutUserdefined.html
@@ -0,0 +1,152 @@
+<!doctype html>
+<html>
+<head>
+ <title>Network | Hierarchical Layout, userDefined</title>
+
+ <style type="text/css">
+ body {
+ font: 10pt sans;
+ }
+
+ #mynetwork {
+ width: 600px;
+ height: 600px;
+ border: 1px solid lightgray;
+ }
+ </style>
+ <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 = null;
+ var edges = null;
+ var network = null;
+ var directionInput = document.getElementById("direction");
+
+ function destroy() {
+ if (network !== null) {
+ network.destroy();
+ network = null;
+ }
+ }
+
+ function draw() {
+ destroy();
+ nodes = [];
+ edges = [];
+ var connectionCount = [];
+
+ // randomly create some nodes and edges
+ for (var i = 0; i < 15; i++) {
+ nodes.push({id: i, label: String(i)});
+ }
+ edges.push({from: 0, to: 1});
+ edges.push({from: 0, to: 6});
+ edges.push({from: 0, to: 13});
+ edges.push({from: 0, to: 11});
+ edges.push({from: 1, to: 2});
+ edges.push({from: 2, to: 3});
+ edges.push({from: 2, to: 4});
+ edges.push({from: 3, to: 5});
+ edges.push({from: 1, to: 10});
+ edges.push({from: 1, to: 7});
+ edges.push({from: 2, to: 8});
+ edges.push({from: 2, to: 9});
+ edges.push({from: 3, to: 14});
+ edges.push({from: 1, to: 12});
+ nodes[0]["level"] = 0;
+ nodes[1]["level"] = 1;
+ nodes[2]["level"] = 3;
+ nodes[3]["level"] = 4;
+ nodes[4]["level"] = 4;
+ nodes[5]["level"] = 5;
+ nodes[6]["level"] = 1;
+ nodes[7]["level"] = 2;
+ nodes[8]["level"] = 4;
+ nodes[9]["level"] = 4;
+ nodes[10]["level"] = 2;
+ nodes[11]["level"] = 1;
+ nodes[12]["level"] = 2;
+ nodes[13]["level"] = 1;
+ nodes[14]["level"] = 5;
+
+
+ // create a network
+ var container = document.getElementById('mynetwork');
+ var data = {
+ nodes: nodes,
+ edges: edges
+ };
+
+ var options = {
+ edges: {
+ smooth: {
+ type: 'cubicBezier',
+ forceDirection: (directionInput.value == "UD" || directionInput.value == "DU") ? 'vertical' : 'horizontal',
+ roundness: 0.4
+ }
+ },
+ layout: {
+ hierarchical: {
+ direction: directionInput.value
+ }
+ },
+ physics:false
+ };
+ network = new vis.Network(container, data, options);
+
+ // add event listeners
+ network.on('select', function (params) {
+ document.getElementById('selection').innerHTML = 'Selection: ' + params.nodes;
+ });
+ }
+
+ </script>
+ <script src="../../googleAnalytics.js"></script>
+</head>
+
+<body onload="draw();">
+<h2>Hierarchical Layout - User-defined</h2>
+
+<div style="width:700px; font-size:14px; text-align: justify;">
+ This example shows a user-defined hierarchical layout. If the user defines levels for nodes but does not do so for
+ all nodes, an alert will show up and hierarchical layout will be disabled. Either all or none can be defined.
+ If the smooth curves appear to be inverted, the direction of the edge is not in the same direction as the network.
+</div>
+<p>
+ <input type="button" id="btn-UD" value="Up-Down">
+ <input type="button" id="btn-DU" value="Down-Up">
+ <input type="button" id="btn-LR" value="Left-Right">
+ <input type="button" id="btn-RL" value="Right-Left">
+ <input type="hidden" id='direction' value="UD">
+</p>
+
+<div id="mynetwork"></div>
+
+<p id="selection"></p>
+<script language="JavaScript">
+ var directionInput = document.getElementById("direction");
+ var btnUD = document.getElementById("btn-UD");
+ btnUD.onclick = function () {
+ directionInput.value = "UD";
+ draw();
+ };
+ var btnDU = document.getElementById("btn-DU");
+ btnDU.onclick = function () {
+ directionInput.value = "DU";
+ draw();
+ };
+ var btnLR = document.getElementById("btn-LR");
+ btnLR.onclick = function () {
+ directionInput.value = "LR";
+ draw();
+ };
+ var btnRL = document.getElementById("btn-RL");
+ btnRL.onclick = function () {
+ directionInput.value = "RL";
+ draw();
+ };
+</script>
+</body>
+</html>