<!DOCTYPE html>
							 | 
						|
								<html lang="en">
							 | 
						|
								<head>
							 | 
						|
								    <meta charset="UTF-8">
							 | 
						|
								    <title>Cluster Test</title>
							 | 
						|
								    <script type="text/javascript" src="../../../dist/vis.js"></script>
							 | 
						|
								    <link href="../../../dist/vis.css" rel="stylesheet" type="text/css"/>
							 | 
						|
								    <style type="text/css">
							 | 
						|
								        #network_graph {
							 | 
						|
								            width: 1000px;
							 | 
						|
								            height: 800px;
							 | 
						|
								            border: 1px solid lightgray;
							 | 
						|
								        }
							 | 
						|
								    </style>
							 | 
						|
								</head>
							 | 
						|
								<body onload="draw()">
							 | 
						|
								<p>
							 | 
						|
								    Clusters can contain other clusters, but clusters of a single node is only possible by adding
							 | 
						|
								<pre>allowSingleNodeCluster: true</pre>
							 | 
						|
								to clusterNodeProperties<br/>
							 | 
						|
								In this example repeatedly clicking on the node with open the Clusters.
							 | 
						|
								</p>
							 | 
						|
								<div id="network_graph"></div>
							 | 
						|
								<div id="info"></div>
							 | 
						|
								<script type="text/javascript">
							 | 
						|
								    var network;
							 | 
						|
								
							 | 
						|
								    var node_color = ['orange', 'green', 'red', 'yellow', 'cyan'];
							 | 
						|
								    var node_shape = ['star', 'database', 'diamond', 'square', 'triangle'];
							 | 
						|
								    var nodes = new vis.DataSet([
							 | 
						|
								        {id: 'x', label: 'Node X'},
							 | 
						|
								        {id: 'y', label: 'Node Y'},
							 | 
						|
								    ]);
							 | 
						|
								    var network_options = {};
							 | 
						|
								    var edges = new vis.DataSet([
							 | 
						|
								        {from: 'x', to: 'y'}
							 | 
						|
								    ]);
							 | 
						|
								
							 | 
						|
								    var cluster_id = 1;
							 | 
						|
								
							 | 
						|
								    function draw() {
							 | 
						|
								        network = new vis.Network(
							 | 
						|
								                document.getElementById('network_graph'),
							 | 
						|
								                {
							 | 
						|
								                    nodes: nodes,
							 | 
						|
								                    edges: edges
							 | 
						|
								                },
							 | 
						|
								                network_options
							 | 
						|
								        );
							 | 
						|
								        network.on('click', function (params) {
							 | 
						|
								            if (params.nodes.length == 1) {
							 | 
						|
								                if (network.isCluster(params.nodes[0]) == true) {
							 | 
						|
								                    network.openCluster(params.nodes[0]);
							 | 
						|
								                }
							 | 
						|
								            }
							 | 
						|
								        });
							 | 
						|
								        cluster();
							 | 
						|
								        cluster();
							 | 
						|
								        cluster();
							 | 
						|
								    }
							 | 
						|
								
							 | 
						|
								    function cluster() {
							 | 
						|
								        var clusterOptions = {
							 | 
						|
								            joinCondition: function (childOptions) {
							 | 
						|
								                console.log(childOptions);
							 | 
						|
								                return true;
							 | 
						|
								            },
							 | 
						|
								            clusterNodeProperties: {id: cluster_id, label: "Cluster " + cluster_id, color: node_color[cluster_id - 1], shape: node_shape[cluster_id - 1], allowSingleNodeCluster: true}
							 | 
						|
								        };
							 | 
						|
								        cluster_id++;
							 | 
						|
								        network.cluster(clusterOptions);
							 | 
						|
								    }
							 | 
						|
								</script>
							 | 
						|
								</body>
							 | 
						|
								</html>
							 |