From 0e6353cd35fc68755b25b82d72b9da5bf4e38eb7 Mon Sep 17 00:00:00 2001 From: Val Erastov Date: Thu, 8 Sep 2016 23:31:38 -0700 Subject: [PATCH] localStorage listener to refresh sketches --- web/app/3d/modeler-app.js | 41 ++++++++++++++------------------------- 1 file changed, 15 insertions(+), 26 deletions(-) diff --git a/web/app/3d/modeler-app.js b/web/app/3d/modeler-app.js index d71f3f4a..fe84e7a7 100644 --- a/web/app/3d/modeler-app.js +++ b/web/app/3d/modeler-app.js @@ -33,29 +33,14 @@ function App() { var viewer = this.viewer; var app = this; function storage_handler(evt) { -// console.log('The modified key was '+evt.key); -// console.log('The original value was '+evt.oldValue); -// console.log('The new value is '+evt.newValue); -// console.log('The URL of the page that made the change was '+evt.url); -// console.log('The window where the change was made was '+evt.source); - var prefix = "TCAD.projects."+app.id+".sketch."; if (evt.key.indexOf(prefix) < 0) return; var sketchFaceId = evt.key.substring(prefix.length); - - for (var oi = 0; oi < viewer.scene.children.length; ++oi) { - var obj = viewer.scene.children[oi]; - if (obj.geometry !== undefined && obj.geometry.polyFaces !== undefined) { - for (var i = 0; i < obj.geometry.polyFaces.length; i++) { - var sketchFace = obj.geometry.polyFaces[i]; - if (sketchFace.id == sketchFaceId) { - var geom = workbench.readSketchGeom(JSON.parse(evt.newValue)); - sketchFace.syncSketches(geom); - viewer.render(); - break; - } - } - } + var sketchFace = app.findFace(sketchFaceId); + if (sketchFace != null) { + app.refreshSketchOnFace(sketchFace); + app.bus.notify('refreshSketch'); + app.viewer.render(); } } @@ -349,16 +334,20 @@ App.prototype._refreshSketches = function() { var obj = allSolids[oi]; for (var i = 0; i < obj.polyFaces.length; i++) { var sketchFace = obj.polyFaces[i]; - var faceStorageKey = this.faceStorageKey(sketchFace.id); - var savedFace = localStorage.getItem(faceStorageKey); - if (savedFace != null) { - var geom = workbench.readSketchGeom(JSON.parse(savedFace)); - sketchFace.syncSketches(geom); - } + this.refreshSketchOnFace(sketchFace); } } }; +App.prototype.refreshSketchOnFace = function(sketchFace) { + var faceStorageKey = this.faceStorageKey(sketchFace.id); + var savedFace = localStorage.getItem(faceStorageKey); + if (savedFace != null) { + var geom = workbench.readSketchGeom(JSON.parse(savedFace)); + sketchFace.syncSketches(geom); + } +}; + App.prototype.save = function() { var data = {}; data.history = this.craft.history;