When we click on the button, it will refresh the data.
Change-Id: Iedfe64ace1516e921c32f2f52f0caefdbb2666ed
Signed-off-by: Maxime Millette-Coulombe <mmcoulombe@inocybe.com>
(cherry picked from commit
ea133f0554ebc46d567be606d0e7e674f17aa488)
var GraphRenderer = require('./renderer.js');
var topology = null;
+ function _load(nodes, links) {
+ nodes.forEach(function (node) {
+ topology.addNode(node.id, {
+ title:node.title,
+ group:node.group,
+ label:node.label,
+ value:node.value
+ });
+ });
+ links.forEach(function (link) {
+ topology.addLink(link.from, link.to, {
+ id: link.id,
+ title: link.title
+ });
+ });
+ }
+
// public API
return {
start : function(id) {
console.error(e.name, e.message);
}
},
- refresh: function() {
- //TODO : Implement me (:
+ refresh: function(nodes, links) {
+ //tmp
+ topology.beginUpdate();
+ topology.clear();
+ _load(nodes, links);
+ topology.endUpdate();
+ renderer.refresh(topology);
},
loadGraph: function(nodes, links) {
topology = new Graph();
-
- nodes.forEach(function (node) {
- topology.addNode(node.id, {
- title:node.title,
- group:node.group,
- label:node.label,
- value:node.value
- });
- });
-
- links.forEach(function (link) {
- topology.addLink(link.from, link.to, {
- id: link.id,
- title: link.title
- });
- });
+ _load(nodes, links);
}
};
};
}
};
+ function displayGraph() {
+ // step the layout to make a good looking graph
+ // remove after cause it's heavy for nothing
+ for (var i = 0; i < 1000; ++i) {
+ layout.step();
+ }
+ layout.dispose();
+ centerGraph();
+ }
+
// public API
return {
run : function() {
- // step the layout to make a good looking graph
- // remove after cause it's heavy for nothing
- for (var i = 0; i < 1000; ++i) {
- layout.step();
- }
- layout.dispose();
- centerGraph();
+ displayGraph();
+ requestAnimFrame(loop);
+ },
+ refresh: function(topology) {
+ cancelAnimationFrame(loop);
+ stage.removeChildren();
+ topology.forEachNode(initializeNode);
+ topology.forEachLink(initializeLink);
+ displayGraph();
requestAnimFrame(loop);
}
};
var inNodes = data.nodes;
var inEdges = data.links;
- graphRenderer = new GraphRenderer();
- graphRenderer.loadGraph(inNodes, inEdges);
- graphRenderer.start('topology_simple');
+ if (!graphRenderer) {
+ graphRenderer = new GraphRenderer();
+ graphRenderer.loadGraph(inNodes, inEdges);
+ graphRenderer.start('topology_simple');
+ } else {
+ graphRenderer.refresh(inNodes, inEdges);
+ }
});
};