From 6685da4ffdb979b4433e1169024ccdf7d723beee Mon Sep 17 00:00:00 2001 From: "Chris L. Barnes" Date: Wed, 18 Aug 2021 13:53:38 +0100 Subject: [PATCH] circuit sim: load units from JSON --- .../static/js/widgets/circuit-simulation.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/django/applications/catmaid/static/js/widgets/circuit-simulation.js b/django/applications/catmaid/static/js/widgets/circuit-simulation.js index 3c3c2250b7..3b2796f4fd 100644 --- a/django/applications/catmaid/static/js/widgets/circuit-simulation.js +++ b/django/applications/catmaid/static/js/widgets/circuit-simulation.js @@ -38,6 +38,13 @@ var CS = this; var tabs = CATMAID.DOM.addTabGroup(controls, CS.widgetID, ['Main', 'Export']); + const fileButton = controls.appendChild(CATMAID.DOM.createFileButton( + 'load-json-dialog-' + this.widgetID, false, (event) => CS.loadJson(event.target.files) + )); + const openButton = document.createElement('input'); + openButton.setAttribute('type', 'button'); + openButton.setAttribute('value', 'Load JSON'); + openButton.onclick = () => fileButton.click(); CATMAID.DOM.appendToTab(tabs['Main'], [[document.createTextNode('From')], [CATMAID.skeletonListSources.createSelect(CS)], @@ -45,6 +52,7 @@ ['Clear', CS.clear.bind(CS)], ['Show/Hide parameters', CS.toggleParametersUI.bind(CS)], ['Run', CS.run.bind(CS)], + [openButton], [CATMAID.DOM.createNumericField('cs_time' + CS.widgetID, 'Time:', 'Amount of simulated time, in arbitrary units', '10000', '(a.u.)', CS.run.bind(CS), 6)], ]); @@ -66,6 +74,16 @@ }; }; + CircuitSimulation.prototype.loadJson = function (files) { + if (!CATMAID.containsSingleValidFile(files, 'json')) { + return; + } + + const reader = new FileReader(); + reader.onload = (event) => { this.units = JSON.parse(event.target.result); }; + reader.readAsText(files[0]); + }; + CircuitSimulation.prototype.clear = function() { this.units = []; this.redraw();