client/js/main.js
changeset 4 f5297dde9053
parent 3 7722ec70c01b
child 5 67085e6281e5
--- a/client/js/main.js	Fri Jul 27 12:22:10 2012 +0200
+++ b/client/js/main.js	Fri Jul 27 19:15:32 2012 +0200
@@ -19,8 +19,13 @@
 /* Declaring the Renkan Namespace Rkns */
 
 Rkns = {
-    _FROM_GRAPHICS: 0,
-    _FROM_DATA: 1
+    _NODE_RADIUS: 20,
+    _NODE_FONT_SIZE: 14,
+    _ARROW_LENGTH: 20,
+    _ARROW_WIDTH: 15,
+    _RENDER: 1,
+    _SAVE: 2,
+    _RENDER_AND_SAVE: 3
 }
 
 Rkns.$ = jQuery;
@@ -61,6 +66,8 @@
     }
 }
 
+Rkns.Serializers._Base.prototype.save = function() {}
+
 Rkns.Renderers = {};
 
 Rkns.Renderers._Base = function(_project) {
@@ -80,14 +87,52 @@
     this.users = new Rkns.Model.List();
     this.nodes = new Rkns.Model.List();
     this.edges = new Rkns.Model.List();
+    if (typeof this._opts.user === "object") {
+        this.current_user = this.addUser(this._opts.user)
+    }
     this.serializer = new Rkns.Serializers[_opts.serializer](this);
     this.renderer = new Rkns.Renderers[_opts.renderer](this);
     var _this = this;
     this.serializer.onLoad(function() {
+        if (typeof _this.current_user === "undefined") {
+            _this.current_user = _proj.users[0];
+        }
         _this.renderer.draw();
     });
 }
 
+Rkns.Project.prototype.addNode = function(_props, _render_save) {
+    var _node = new Rkns.Model.Node(this, _props);
+    this.nodes.push(_node);
+    if (typeof _render_save !== "undefined" && (_render_save&Rkns._RENDER)) {
+        var _controller = this.renderer.addElement("Node", _node);
+        _controller.redraw();
+    }
+    if (typeof _render_save !== "undefined" && (_render_save&Rkns._SAVE)) {
+        this.serializer.save();
+    }
+    return _node;
+}
+
+Rkns.Project.prototype.addEdge = function(_props, _render_save) {
+    var _edge = new Rkns.Model.Edge(this, _props);
+    this.edges.push(_edge);
+    if (typeof _render_save !== "undefined" && (_render_save&Rkns._RENDER)) {
+        var _controller = this.renderer.addElement("Edge", _edge);
+        _controller.redraw();
+    }
+    if (typeof _render_save !== "undefined" && (_render_save&Rkns._SAVE)) {
+        this.serializer.save();
+    }
+    return _edge;
+}
+
+Rkns.Project.prototype.addUser = function(_props, _render_save) {
+    var _user = new Rkns.Model.User(this, _props);
+    this.users.push(_user);
+    return _user;
+}
+
 /* Utility functions */
 
 Rkns.Utils = {