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