diff -r a7b54105f74e -r ae86ecebb1be client/js/main.js --- a/client/js/main.js Mon Jul 30 18:44:59 2012 +0200 +++ b/client/js/main.js Tue Jul 31 18:00:13 2012 +0200 @@ -69,21 +69,10 @@ Rkns.Serializers._Base.prototype.save = function() {} -Rkns.Renderers = {}; - -Rkns.Renderers._Base = function(_project) { - if (typeof _project !== "undefined") { - this._project = _project; - } -} - Rkns.Project = function(_opts) { if (typeof _opts.serializer == "undefined") { _opts.serializer = "BasicJson"; } - if (typeof _opts.renderer == "undefined") { - _opts.renderer = "Paper"; - } if (typeof _opts.language == "undefined" || typeof Rkns.i18n[_opts.language] == "undefined") { _opts.language = "en"; } @@ -96,7 +85,7 @@ this.current_user = this.addUser(this._opts.user) } this.serializer = new Rkns.Serializers[_opts.serializer](this); - this.renderer = new Rkns.Renderers[_opts.renderer](this); + this.renderer = new Rkns.Renderer.Scene(this); var _this = this; this.serializer.onLoad(function() { if (typeof _this.current_user === "undefined") { @@ -143,7 +132,6 @@ _element[_k] = _v; }); if (typeof _render_save !== "undefined" && (_render_save&Rkns._RENDER)) { - console.log("Shall redraw"); if (typeof _element.__controller !== "undefined") { _element.__controller.redraw(); } else { @@ -155,6 +143,31 @@ } } +Rkns.Project.prototype.removeNode = function(_node, _render_save) { + this.nodes.removeId(_node.id); + if (typeof _node.__controller !== "undefined") { + console.log("Controllers", this.renderer.controllers.length); + this.renderer.removeController(_node.__controller); + console.log("Controllers", this.renderer.controllers.length); + } + console.log(this.edges.length); + var _this = this; + this.edges = this.edges.filter(function(_edge) { + var _keep = _edge.from !== _node && _edge.to !== _node; + if (!_keep && typeof _edge.__controller !== "undefined") { + _this.renderer.removeController(_edge.__controller); + } + return _keep; + }); + if (typeof _render_save !== "undefined" && (_render_save&Rkns._RENDER)) { + this.renderer.redraw(); + } + if (typeof _render_save !== "undefined" && (_render_save&Rkns._SAVE)) { + this.serializer.save(); + } + return _node; +} + /* Utility functions */ Rkns.Utils = {