From 03b895050a4b02cc5656df1eea3553c7e37993f4 Mon Sep 17 00:00:00 2001 From: Anthony Garcia Date: Fri, 6 Dec 2013 17:40:20 +0100 Subject: [PATCH] refactor selected nodes --- plugins/senslabmap/static/js/map.js | 21 +++++++++++---------- plugins/senslabmap/static/js/senslabmap.js | 10 ++++------ 2 files changed, 15 insertions(+), 16 deletions(-) diff --git a/plugins/senslabmap/static/js/map.js b/plugins/senslabmap/static/js/map.js index 5fa8085f..a3589c2e 100644 --- a/plugins/senslabmap/static/js/map.js +++ b/plugins/senslabmap/static/js/map.js @@ -16,11 +16,12 @@ var Senslab = { node.x = parseFloat(node.x); node.y = parseFloat(node.y); node.z = parseFloat(node.z); + node.selected = false; node.normalized = true; } }, notify: function(node) { - console.log("[Notify] node " + node.id + " is " + node.boot_state); + console.log("[Notify] node " + node.id + " is " + node.selected); }, createMaps: function($container, sites, nodes) { var maps = {}; @@ -122,7 +123,7 @@ Senslab.Map = function() { if (intersects.length > 0) { var particle = intersects[0].object; if (particle.data.boot_state != "Suspected") { - setState(particle, particle.data.boot_state == "Alive" ? "Selected" : "Alive"); + setSelected(particle, !particle.data.selected); var $nodeInput = self.$nodeInputs[particle.data.arch]; $nodeInput.val(factorize(self.getNodesId(particle.data.arch))); self.update(); @@ -158,7 +159,7 @@ Senslab.Map = function() { var particles = this.scene.children; var nodes = []; for (var i = 0; i < particles.length; ++i) { - if (particles[i].data && particles[i].data.arch == arch && particles[i].data.boot_state == "Selected") { + if (particles[i].data && particles[i].data.arch == arch && particles[i].data.selected) { nodes.push(particles[i].id); } } @@ -187,14 +188,14 @@ Senslab.Map = function() { this.update(); }; - Map.prototype.updateSelected = function(arch, selected) { + Map.prototype.updateSelected = function(arch, selectedNodes) { var particles = this.scene.children; for (var i = 0; i < particles.length; ++i) { if (particles[i].data && particles[i].data.arch == arch && particles[i].data.boot_state != "Suspected") { var particle = particles[i]; - var state = $.inArray(particle.id, selected) == -1 ? "Alive" : "Selected"; - if (particle.data.boot_state != state) { - setState(particle, state); + var selected = $.inArray(particle.id, selectedNodes) != -1; + if (particle.data.selected != selected) { + setSelected(particle, selected); } } } @@ -216,14 +217,14 @@ Senslab.Map = function() { this.renderer.render(this.scene, this.camera); }; - function setState(particle, state) { - particle.data.boot_state = state; + function setSelected(particle, selected) { + particle.data.selected = selected; setColor(particle); Senslab.notify(particle.data); } function setColor(particle) { - var color = colors[particle.data.boot_state] || colors["Selected"]; + var color = particle.data.selected ? colors["Selected"] : colors[particle.data.boot_state]; particle.material.color.setHex(color); } diff --git a/plugins/senslabmap/static/js/senslabmap.js b/plugins/senslabmap/static/js/senslabmap.js index a3062193..fbdf849a 100644 --- a/plugins/senslabmap/static/js/senslabmap.js +++ b/plugins/senslabmap/static/js/senslabmap.js @@ -37,14 +37,12 @@ }, on_all_query_done: function() { - var self = this; + var uuid = this.options.query_uuid; + var key = this.key - Senslab.createMaps($('#maps-container'), this.sites, this.nodes); + Senslab.createMaps($("#maps-container"), this.sites, this.nodes); Senslab.notify = function(node) { - manifold.raise_event(self.options.query_uuid, - node.boot_state == "Alive" ? SET_REMOVED : SET_ADD, - node[self.key] - ); + manifold.raise_event(uuid, node.selected ? SET_ADD : SET_REMOVED, node[key]); } } }); -- 2.43.0