<!doctype html>
|
|
<html>
|
|
<head>
|
|
<title>Network | DOT edge styles</title>
|
|
|
|
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
|
|
<script src="../../../../dist/vis.js"></script>
|
|
<link href="../../../../dist/vis-network.min.css" rel="stylesheet" type="text/css" />
|
|
|
|
<style type="text/css">
|
|
body, html {
|
|
font: 10pt sans;
|
|
line-height: 1.5em;;
|
|
width: 100%;
|
|
height: 100%;
|
|
padding: 0;
|
|
margin: 0;
|
|
color: #4d4d4d;
|
|
box-sizing: border-box;
|
|
overflow: hidden;
|
|
}
|
|
|
|
#header {
|
|
margin: 0;
|
|
padding: 10px;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
#contents {
|
|
height: 100%;
|
|
margin: 0;
|
|
padding: 0;
|
|
box-sizing: border-box;
|
|
position: relative;
|
|
}
|
|
|
|
#left, #right {
|
|
position: absolute;
|
|
width: 50%;
|
|
height: 100%;
|
|
margin: 0;
|
|
padding: 10px;
|
|
box-sizing: border-box;
|
|
display: inline-block;
|
|
}
|
|
|
|
#left {
|
|
top: 0;
|
|
left: 0;
|
|
}
|
|
|
|
#right {
|
|
top: 0;
|
|
right: 0;
|
|
}
|
|
|
|
#error {
|
|
color: red;
|
|
}
|
|
|
|
#data {
|
|
width: 100%;
|
|
height: 100%;
|
|
border: 1px solid #d3d3d3;
|
|
box-sizing: border-box;
|
|
resize: none;
|
|
}
|
|
|
|
#draw, #reset {
|
|
padding: 5px 15px;
|
|
}
|
|
|
|
#mynetwork {
|
|
width: 100%;
|
|
height: 100%;
|
|
border: 1px solid #d3d3d3;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
a:hover {
|
|
color: red;
|
|
}
|
|
|
|
</style>
|
|
|
|
</head>
|
|
<body>
|
|
|
|
<div id="header">
|
|
<h1>DOT edge styles</h1>
|
|
|
|
<div>
|
|
<p>
|
|
Example of edge styles support
|
|
</p>
|
|
|
|
<ul>
|
|
<li> label: text displayed on the edge</li>
|
|
<li> color: edge color</li>
|
|
<li> style: edge style is solid(default), dashed or dotted</li>
|
|
</ul>
|
|
</div>
|
|
|
|
<div>
|
|
<button id="draw" title="Draw the DOT graph (Ctrl+Enter)">Draw</button>
|
|
<button id="reset" title="Reset the DOT graph">Reset</button>
|
|
<span id="error"></span>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="contents">
|
|
<div id="left">
|
|
<textarea id="data">
|
|
</textarea>
|
|
</div>
|
|
<div id="right">
|
|
<div id="mynetwork"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<script type="text/javascript">
|
|
var dotDefault = "digraph {\n" +
|
|
" Parent -> C1[label=\"default\"]; // Default style is solid \n" +
|
|
" Parent -> C2[label=\"solid pink\", color=\"pink\"];\n" +
|
|
" Parent -> C3[label=\"dashed green\", style=\"dashed\", color=\"green\"];\n" +
|
|
" Parent -> C4[label=\"dotted purple\", style=\"dotted\", color=\"purple\"];\n" +
|
|
"}";
|
|
|
|
// create a network
|
|
var container = document.getElementById('mynetwork');
|
|
var options = {
|
|
physics: {
|
|
stabilization: false,
|
|
barnesHut: {
|
|
springLength: 200
|
|
}
|
|
}
|
|
};
|
|
var data = {};
|
|
var network = new vis.Network(container, data, options);
|
|
|
|
$('#draw').click(draw);
|
|
$('#reset').click(reset);
|
|
|
|
$(window).resize(resize);
|
|
$(window).load(draw);
|
|
|
|
$('#data').keydown(function (event) {
|
|
if (event.ctrlKey && event.keyCode === 13) { // Ctrl+Enter
|
|
draw();
|
|
event.stopPropagation();
|
|
event.preventDefault();
|
|
}
|
|
});
|
|
|
|
function resize() {
|
|
$('#contents').height($('body').height() - $('#header').height() - 30);
|
|
}
|
|
|
|
function draw () {
|
|
try {
|
|
resize();
|
|
$('#error').html('');
|
|
|
|
// Provide a string with data in DOT language
|
|
data = vis.network.convertDot($('#data').val());
|
|
|
|
network.setData(data);
|
|
}
|
|
catch (err) {
|
|
// set the cursor at the position where the error occurred
|
|
var match = /\(char (.*)\)/.exec(err);
|
|
if (match) {
|
|
var pos = Number(match[1]);
|
|
var textarea = $('#data')[0];
|
|
if(textarea.setSelectionRange) {
|
|
textarea.focus();
|
|
textarea.setSelectionRange(pos, pos);
|
|
}
|
|
}
|
|
|
|
// show an error message
|
|
$('#error').html(err.toString());
|
|
}
|
|
}
|
|
|
|
function reset() {
|
|
$('#data').val(dotDefault);
|
|
draw();
|
|
}
|
|
|
|
window.onload = function() {
|
|
reset();
|
|
}
|
|
</script>
|
|
</body>
|
|
</html>
|