|
@ -0,0 +1,156 @@ |
|
|
|
|
|
<!DOCTYPE html> |
|
|
|
|
|
<!-- saved from url=(0046)http://visjs.org/examples/graph/03_images.html --> |
|
|
|
|
|
<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> |
|
|
|
|
|
<title>Graph | Images</title> |
|
|
|
|
|
|
|
|
|
|
|
<style type="text/css"> |
|
|
|
|
|
body { |
|
|
|
|
|
font: 10pt arial; |
|
|
|
|
|
padding: 0; |
|
|
|
|
|
margin: 0; |
|
|
|
|
|
overflow: hidden; |
|
|
|
|
|
} |
|
|
|
|
|
#mygraph { |
|
|
|
|
|
width: 100%; |
|
|
|
|
|
height: 100%; |
|
|
|
|
|
box-sizing: border-box; |
|
|
|
|
|
} |
|
|
|
|
|
</style> |
|
|
|
|
|
|
|
|
|
|
|
<script type="text/javascript" src="../../vis.min.js"></script> |
|
|
|
|
|
|
|
|
|
|
|
<script type="text/javascript"> |
|
|
|
|
|
var nodes = null; |
|
|
|
|
|
var edges = null; |
|
|
|
|
|
var graph = null; |
|
|
|
|
|
|
|
|
|
|
|
var DIR = 'img/refresh-cl/', |
|
|
|
|
|
SWITCH = DIR + 'Network-Pipe-icon.png', |
|
|
|
|
|
COMPUTER = DIR + 'Hardware-My-Computer-3-icon.png', |
|
|
|
|
|
PRINTER = DIR + 'Hardware-Printer-Blue-icon.png', |
|
|
|
|
|
LENGTH_MAIN = 350, |
|
|
|
|
|
LENGTH_SERVER = 150, |
|
|
|
|
|
LENGTH_SUB = 50, |
|
|
|
|
|
GREEN = 'green', |
|
|
|
|
|
RED = '#FA0A10', |
|
|
|
|
|
ORANGE = 'orange', |
|
|
|
|
|
GRAY = 'gray', |
|
|
|
|
|
BLACK = '#2B1B17'; |
|
|
|
|
|
|
|
|
|
|
|
// Called when the Visualization API is loaded. |
|
|
|
|
|
function draw() { |
|
|
|
|
|
// Create a data table with nodes. |
|
|
|
|
|
nodes = []; |
|
|
|
|
|
|
|
|
|
|
|
// Create a data table with links. |
|
|
|
|
|
edges = []; |
|
|
|
|
|
|
|
|
|
|
|
nodes.push({id: 1, label: '192.168.0.1', group: 'switch', value: 10}); |
|
|
|
|
|
nodes.push({id: 2, label: '192.168.0.2', group: 'switch', value: 8}); |
|
|
|
|
|
nodes.push({id: 3, label: '192.168.0.3', group: 'switch', value: 6}); |
|
|
|
|
|
edges.push({from: 1, to: 2, length: LENGTH_MAIN, width: 6, label: '0.71 mbps'}); |
|
|
|
|
|
edges.push({from: 1, to: 3, length: LENGTH_MAIN, width: 4, label: '0.55 mbps'}); |
|
|
|
|
|
|
|
|
|
|
|
// group around 2 |
|
|
|
|
|
for (var i = 100; i <= 104; i++) { |
|
|
|
|
|
var value = 1; |
|
|
|
|
|
var width = 1; |
|
|
|
|
|
var color = GRAY; |
|
|
|
|
|
var label = null; |
|
|
|
|
|
|
|
|
|
|
|
if (i === 103) { |
|
|
|
|
|
value = 5; |
|
|
|
|
|
width = 3; |
|
|
|
|
|
} |
|
|
|
|
|
if (i === 102) { |
|
|
|
|
|
color = RED; |
|
|
|
|
|
label = 'error'; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
nodes.push({id: i, label: '192.168.0.' + i, group: 'desktop', value: value}); |
|
|
|
|
|
edges.push({from: 2, to: i, length: LENGTH_SUB, color: color, fontColor: color, width: width, label: label}); |
|
|
|
|
|
} |
|
|
|
|
|
nodes.push({id: 201, label: '192.168.0.201', group: 'desktop', value: 1}); |
|
|
|
|
|
edges.push({from: 2, to: 201, length: LENGTH_SUB, color: GRAY}); |
|
|
|
|
|
|
|
|
|
|
|
// group around 3 |
|
|
|
|
|
nodes.push({id: 202, label: '192.168.0.202', group: 'desktop', value: 4}); |
|
|
|
|
|
edges.push({from: 3, to: 202, length: LENGTH_SUB, color: GRAY, width: 2}); |
|
|
|
|
|
for (var i = 230; i <= 231; i++ ) { |
|
|
|
|
|
nodes.push({id: i, label: '192.168.0.' + i, group: 'mobile', value: 2}); |
|
|
|
|
|
edges.push({from: 3, to: i, length: LENGTH_SUB, color: GRAY, fontColor: GRAY, width: 1}); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// group around 1 |
|
|
|
|
|
nodes.push({id: 10, label: '192.168.0.10', group: 'server', value: 10}); |
|
|
|
|
|
edges.push({from: 1, to: 10, length: LENGTH_SERVER, color: GRAY, width: 6, label: '0.92 mbps'}); |
|
|
|
|
|
nodes.push({id: 11, label: '192.168.0.11', group: 'server', value: 7}); |
|
|
|
|
|
edges.push({from: 1, to: 11, length: LENGTH_SERVER, color: GRAY, width: 3, label: '0.68 mbps'}); |
|
|
|
|
|
nodes.push({id: 12, label: '192.168.0.12', group: 'server', value: 3}); |
|
|
|
|
|
edges.push({from: 1, to: 12, length: LENGTH_SERVER, color: GRAY, label: '0.3 mbps'}); |
|
|
|
|
|
|
|
|
|
|
|
nodes.push({id: 204, label: 'Internet', group: 'internet', value: 10}); |
|
|
|
|
|
edges.push({from: 1, to: 204, length: 200, width: 3, label: '0.63 mbps'}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// legend |
|
|
|
|
|
var mygraph = document.getElementById('mygraph'); |
|
|
|
|
|
var x = - mygraph.clientWidth / 2 + 50; |
|
|
|
|
|
var y = - mygraph.clientHeight / 2 + 20; |
|
|
|
|
|
nodes.push({id: 1000, x: x, y: y + 0, label: 'Internet', group: 'internet'}); |
|
|
|
|
|
nodes.push({id: 1001, x: x, y: y + 50, label: 'Switch', group: 'switch'}); |
|
|
|
|
|
nodes.push({id: 1002, x: x, y: y + 100, label: 'Server', group: 'server'}); |
|
|
|
|
|
nodes.push({id: 1003, x: x, y: y + 150, label: 'Computer', group: 'desktop'}); |
|
|
|
|
|
nodes.push({id: 1004, x: x, y: y + 200, label: 'Smartphone', group: 'mobile'}); |
|
|
|
|
|
|
|
|
|
|
|
// create a graph |
|
|
|
|
|
var container = document.getElementById('mygraph'); |
|
|
|
|
|
var data = { |
|
|
|
|
|
nodes: nodes, |
|
|
|
|
|
edges: edges |
|
|
|
|
|
}; |
|
|
|
|
|
var options = { |
|
|
|
|
|
stabilize: false, // stabilize positions before displaying |
|
|
|
|
|
nodes: { |
|
|
|
|
|
widthMin: 24, |
|
|
|
|
|
maxWidth: 64, |
|
|
|
|
|
fontColor: BLACK |
|
|
|
|
|
}, |
|
|
|
|
|
edges: { |
|
|
|
|
|
color: GRAY |
|
|
|
|
|
}, |
|
|
|
|
|
groups: { |
|
|
|
|
|
'switch': { |
|
|
|
|
|
shape: 'triangle', |
|
|
|
|
|
color: vis.graph.Groups.DEFAULT[1] // yellow |
|
|
|
|
|
}, |
|
|
|
|
|
desktop: { |
|
|
|
|
|
shape: 'dot', |
|
|
|
|
|
color: vis.graph.Groups.DEFAULT[0] // blue |
|
|
|
|
|
}, |
|
|
|
|
|
mobile: { |
|
|
|
|
|
shape: 'dot', |
|
|
|
|
|
color: vis.graph.Groups.DEFAULT[4] // purple |
|
|
|
|
|
}, |
|
|
|
|
|
server: { |
|
|
|
|
|
shape: 'square', |
|
|
|
|
|
color: vis.graph.Groups.DEFAULT[2] // red |
|
|
|
|
|
}, |
|
|
|
|
|
internet: { |
|
|
|
|
|
shape: 'square', |
|
|
|
|
|
color: vis.graph.Groups.DEFAULT[3] // green |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
}; |
|
|
|
|
|
graph = new vis.Graph(container, data, options); |
|
|
|
|
|
} |
|
|
|
|
|
</script> |
|
|
|
|
|
</head> |
|
|
|
|
|
|
|
|
|
|
|
<body onload="draw()"> |
|
|
|
|
|
|
|
|
|
|
|
<div id="mygraph"><div class="graph-frame" style="position: relative; overflow: hidden; width: 100%; height: 100%;"><canvas style="position: relative; width: 100%; height: 100%;"></canvas></div></div> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</body></html> |