client/js/paper-renderer.js
changeset 1 45cca39b00ac
child 2 3360c3f7fb18
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/client/js/paper-renderer.js	Wed Jul 25 19:36:31 2012 +0200
@@ -0,0 +1,47 @@
+Rkns.Renderers.Paper = Rkns.Utils.inherit(Rkns.Renderers._Base);
+
+Rkns.Renderers.Paper__Controllers = {}
+
+Rkns.Renderers.Paper__Controllers._Base = function(_renderer, _element) {
+    if (typeof _renderer !== "undefined") {
+        this._renderer = _renderer;
+        this._element = _element;
+        this._element._renderer_controller = this;
+    }
+}
+
+Rkns.Renderers.Paper__Controllers.Node = Rkns.Utils.inherit(Rkns.Renderers.Paper__Controllers._Base);
+
+Rkns.Renderers.Paper__Controllers.Node.prototype._init = function() {
+    this.node_circle = new paper.Path.Circle([0, 0], 20);
+    this.redraw();
+}
+
+Rkns.Renderers.Paper__Controllers.Node.prototype.redraw = function() {
+    var _centerPoint = paper.view.center.add([this._element.position.x, this._element.position.y]);
+    this.node_circle.position = _centerPoint;
+    this.node_circle.strokeColor = this._element.created_by.color;
+}
+
+Rkns.Renderers.Paper__Controllers.Edge = Rkns.Utils.inherit(Rkns.Renderers._Base);
+
+Rkns.Renderers.Paper.prototype._init = function() {
+    paper.setup(document.getElementById(this._project._opts.canvas_id));
+}
+
+Rkns.Renderers.Paper.prototype.draw = function() {
+    var _this = this;
+    this.nodes = this._project.nodes.map(function(_node) {
+        return new Rkns.Renderers.Paper__Controllers.Node(_this, _node);
+    });
+    paper.view.draw();
+    paper.view.onResize = function() {
+        _this.redraw();
+    }
+}
+
+Rkns.Renderers.Paper.prototype.redraw = function() {
+    Rkns._(this.nodes).each(function(_node) {
+        _node.redraw();
+    })
+}