<!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>
|