<html>
							 | 
						|
								<head>
							 | 
						|
								    <meta charset="utf-8">
							 | 
						|
								    <title>Hierarchical Layout without Physics</title>
							 | 
						|
								    <script type="text/javascript" src="../../../dist/vis.js"></script>
							 | 
						|
								    <script type="text/javascript" src="../datasources/largeHierarchicalDataset.js"></script>
							 | 
						|
								    <link href="../../../dist/vis.css" rel="stylesheet" type="text/css" />
							 | 
						|
								    <style type="text/css">
							 | 
						|
								        #network{
							 | 
						|
								            width: 1000px;
							 | 
						|
								            height: 400px;
							 | 
						|
								            border: 1px solid lightgray;
							 | 
						|
								        }
							 | 
						|
								
							 | 
						|
								        td {
							 | 
						|
								            vertical-align:top;
							 | 
						|
								        }
							 | 
						|
								        table {
							 | 
						|
								            width:800px;
							 | 
						|
								        }
							 | 
						|
								    </style>
							 | 
						|
								</head>
							 | 
						|
								<body>
							 | 
						|
								<h1>Hierarchical Layout without Physics</h1>
							 | 
						|
								The hierarchical layout can now be controlled without the use of physics. This is much quicker. The options for this are: <br /><br />
							 | 
						|
								
							 | 
						|
								<table>
							 | 
						|
								    <tr>
							 | 
						|
								        <td width="150px"><code>levelSeparation</code></td>
							 | 
						|
								        <td width="400px">Distance between levels.</td>
							 | 
						|
								    </tr>
							 | 
						|
								    <tr>
							 | 
						|
								        <td><code>nodeSpacing</code></td>
							 | 
						|
								        <td>Minimum distance between nodes on the free axis.</td>
							 | 
						|
								    </tr>
							 | 
						|
								    <tr>
							 | 
						|
								        <td><code>treeSpacing</code></td>
							 | 
						|
								        <td>Distance between different trees (independent networks).</td>
							 | 
						|
								    </tr>
							 | 
						|
								    <tr>
							 | 
						|
								        <td><code>blockShifting</code></td>
							 | 
						|
								        <td>Method for reducing whitespace. Can be used alone or together with edge minimization. Each node will check for whitespace and will shift
							 | 
						|
								            it's branch along with it for as far as it can, respecting the nodeSpacing on any level.</td>
							 | 
						|
								    </tr>
							 | 
						|
								    <tr>
							 | 
						|
								        <td><code>edgeMinimization</code></td>
							 | 
						|
								        <td>Method for reducing whitespace. Can be used alone or together with block shifting. Enabling block shifting will usually speed up the layout process.
							 | 
						|
								            Each node will try to move along its free axis to reduce the total length of it's edges.</td>
							 | 
						|
								    </tr>
							 | 
						|
								    <tr>
							 | 
						|
								        <td><code>parentCentralization</code></td>
							 | 
						|
								        <td>When true, the parents nodes will be centered again after the the layout algorithm has been finished.</td>
							 | 
						|
								    </tr>
							 | 
						|
								</table>
							 | 
						|
								<br /><br />
							 | 
						|
								Play with the settings below the network and see how the layout changes!
							 | 
						|
								<div id="network"></div>
							 | 
						|
								<script>
							 | 
						|
								    var data = {
							 | 
						|
								        nodes: nodes,
							 | 
						|
								        edges: edges
							 | 
						|
								    };
							 | 
						|
								    // create a network
							 | 
						|
								    var container = document.getElementById('network');
							 | 
						|
								    var options = {
							 | 
						|
								        layout: {
							 | 
						|
								            hierarchical: {
							 | 
						|
								                direction: "UD",
							 | 
						|
								                sortMethod: "directed"
							 | 
						|
								            }
							 | 
						|
								        },
							 | 
						|
								        interaction: {dragNodes :false},
							 | 
						|
								        physics: {
							 | 
						|
								            enabled: false
							 | 
						|
								        },
							 | 
						|
								        configure: {
							 | 
						|
								          filter: function (option, path) {
							 | 
						|
								              if (path.indexOf('hierarchical') !== -1) {
							 | 
						|
								                  return true;
							 | 
						|
								              }
							 | 
						|
								              return false;
							 | 
						|
								          },
							 | 
						|
								          showButton:false
							 | 
						|
								        }
							 | 
						|
								    };
							 | 
						|
								    var network = new vis.Network(container, data, options);
							 | 
						|
								</script>
							 | 
						|
								</body>
							 | 
						|
								</html>
							 |