From 91fab9bfd0c3956a9b289757a0cf5a6e1837351d Mon Sep 17 00:00:00 2001 From: schneefux Date: Sat, 2 Apr 2016 17:46:00 +0200 Subject: add mocked net vizs --- code/weightviswrapper.js | 74 ++++++++++++++++++++++++++++-------------------- 1 file changed, 44 insertions(+), 30 deletions(-) (limited to 'code/weightviswrapper.js') diff --git a/code/weightviswrapper.js b/code/weightviswrapper.js index ad33092..c1586d1 100644 --- a/code/weightviswrapper.js +++ b/code/weightviswrapper.js @@ -26,6 +26,7 @@ var WeightVisWrapper = (function() { .style("top", "50%"); componentHandler.upgradeElement(this.spinner.node()); + // TODO move controlContainer out of weightVisWrapper this.controlContainer .style("margin-left", "auto") .style("margin-right", "auto") @@ -56,10 +57,22 @@ var WeightVisWrapper = (function() { WeightVisWrapper.prototype.load = function(url, callback) { var self = this; - this.netVisualizer.load(url, function(){ - var inputNodes = self.svg.selectAll(".layer-1")[0]; + this.netVisualizer.load(url, function() { self.loaded(callback); }); + }; + + WeightVisWrapper.prototype.mock = function(shape, callback) { + var self = this; + this.controlContainer.style("display", "none"); + this.netVisualizer.mock(shape, function() { self.loaded(callback); }); + }; + + WeightVisWrapper.prototype.loaded = function(callback) { + var self = this; + var inputNodes = this.svg.selectAll(".layer-1")[0]; + if (inputNodes.length == attributeNames.length) { + // TODO too specialized to be abstract for (node=0; node= self.slider.node().max * 0.95) { + self.slider.node().MaterialSlider.change(0); // wrap at right end + } + }); + this.slider.attr("max", this.netVisualizer.getSteps() - 1); + this.slider.node().addEventListener("input", function() { self.netVisualizer.showStep(self.value); }); + this.button.node().addEventListener("click", function toggle() { + if (self.button.attr("data-pressed") != "true") { + var step = self.slider.node().value; + self.netVisualizer.animate(15, 10, step); + self.button.attr("data-pressed", "true"); + self.button.select(".play").style("display", "none"); + self.button.select(".pause").style("display", ""); + } else { + self.netVisualizer.stopAnimation(); self.button.attr("data-pressed", "false"); self.button.select(".play").style("display", ""); self.button.select(".pause").style("display", "none"); - if (self.slider.node().value >= self.slider.node().max * 0.95) { - self.slider.node().MaterialSlider.change(0); // wrap at right end - } - }); - self.slider.attr("max", self.netVisualizer.getSteps() - 1); - self.slider.node().addEventListener("input", function() { self.netVisualizer.showStep(this.value); }); - self.button.node().addEventListener("click", function toggle() { - if (self.button.attr("data-pressed") != "true") { - var step = self.slider.node().value; - self.netVisualizer.animate(15, 10, step); - self.button.attr("data-pressed", "true"); - self.button.select(".play").style("display", "none"); - self.button.select(".pause").style("display", ""); - } else { - self.netVisualizer.stopAnimation(); - self.button.attr("data-pressed", "false"); - self.button.select(".play").style("display", ""); - self.button.select(".pause").style("display", "none"); - } - }); - self.ready = true; - callback(); - self.readyHooks.forEach(function(hook) { hook(); }); + } }); + this.ready = true; + callback(); + this.readyHooks.forEach(function(hook) { hook(); }); }; WeightVisWrapper.prototype.afterLoad = function(cb) { @@ -160,6 +173,7 @@ var WeightVisWrapper = (function() { })(); /* helps with impress.js' stepenter/stepleave events */ +// TODO move into its own file var VisIntegrater = (function() { function VisIntegrater(enterCb, leaveCb, selector) { var self = this; -- cgit v1.3.1