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