client/js/main.js
changeset 7 ae86ecebb1be
parent 5 67085e6281e5
child 15 de8528eb3662
--- 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 = {