78 } |
85 } |
79 this._opts = _opts; |
86 this._opts = _opts; |
80 this.users = new Rkns.Model.List(); |
87 this.users = new Rkns.Model.List(); |
81 this.nodes = new Rkns.Model.List(); |
88 this.nodes = new Rkns.Model.List(); |
82 this.edges = new Rkns.Model.List(); |
89 this.edges = new Rkns.Model.List(); |
|
90 if (typeof this._opts.user === "object") { |
|
91 this.current_user = this.addUser(this._opts.user) |
|
92 } |
83 this.serializer = new Rkns.Serializers[_opts.serializer](this); |
93 this.serializer = new Rkns.Serializers[_opts.serializer](this); |
84 this.renderer = new Rkns.Renderers[_opts.renderer](this); |
94 this.renderer = new Rkns.Renderers[_opts.renderer](this); |
85 var _this = this; |
95 var _this = this; |
86 this.serializer.onLoad(function() { |
96 this.serializer.onLoad(function() { |
|
97 if (typeof _this.current_user === "undefined") { |
|
98 _this.current_user = _proj.users[0]; |
|
99 } |
87 _this.renderer.draw(); |
100 _this.renderer.draw(); |
88 }); |
101 }); |
|
102 } |
|
103 |
|
104 Rkns.Project.prototype.addNode = function(_props, _render_save) { |
|
105 var _node = new Rkns.Model.Node(this, _props); |
|
106 this.nodes.push(_node); |
|
107 if (typeof _render_save !== "undefined" && (_render_save&Rkns._RENDER)) { |
|
108 var _controller = this.renderer.addElement("Node", _node); |
|
109 _controller.redraw(); |
|
110 } |
|
111 if (typeof _render_save !== "undefined" && (_render_save&Rkns._SAVE)) { |
|
112 this.serializer.save(); |
|
113 } |
|
114 return _node; |
|
115 } |
|
116 |
|
117 Rkns.Project.prototype.addEdge = function(_props, _render_save) { |
|
118 var _edge = new Rkns.Model.Edge(this, _props); |
|
119 this.edges.push(_edge); |
|
120 if (typeof _render_save !== "undefined" && (_render_save&Rkns._RENDER)) { |
|
121 var _controller = this.renderer.addElement("Edge", _edge); |
|
122 _controller.redraw(); |
|
123 } |
|
124 if (typeof _render_save !== "undefined" && (_render_save&Rkns._SAVE)) { |
|
125 this.serializer.save(); |
|
126 } |
|
127 return _edge; |
|
128 } |
|
129 |
|
130 Rkns.Project.prototype.addUser = function(_props, _render_save) { |
|
131 var _user = new Rkns.Model.User(this, _props); |
|
132 this.users.push(_user); |
|
133 return _user; |
89 } |
134 } |
90 |
135 |
91 /* Utility functions */ |
136 /* Utility functions */ |
92 |
137 |
93 Rkns.Utils = { |
138 Rkns.Utils = { |