client/js/main.js
changeset 7 ae86ecebb1be
parent 5 67085e6281e5
child 15 de8528eb3662
equal deleted inserted replaced
6:a7b54105f74e 7:ae86ecebb1be
    67     }
    67     }
    68 }
    68 }
    69 
    69 
    70 Rkns.Serializers._Base.prototype.save = function() {}
    70 Rkns.Serializers._Base.prototype.save = function() {}
    71 
    71 
    72 Rkns.Renderers = {};
       
    73 
       
    74 Rkns.Renderers._Base = function(_project) {
       
    75     if (typeof _project !== "undefined") {
       
    76         this._project = _project;
       
    77     }
       
    78 }
       
    79 
       
    80 Rkns.Project = function(_opts) {
    72 Rkns.Project = function(_opts) {
    81     if (typeof _opts.serializer == "undefined") {
    73     if (typeof _opts.serializer == "undefined") {
    82         _opts.serializer = "BasicJson";
    74         _opts.serializer = "BasicJson";
    83     }
       
    84     if (typeof _opts.renderer == "undefined") {
       
    85         _opts.renderer = "Paper";
       
    86     }
    75     }
    87     if (typeof _opts.language == "undefined" || typeof Rkns.i18n[_opts.language] == "undefined") {
    76     if (typeof _opts.language == "undefined" || typeof Rkns.i18n[_opts.language] == "undefined") {
    88         _opts.language = "en";
    77         _opts.language = "en";
    89     }
    78     }
    90     this.l10n = Rkns.i18n[_opts.language];
    79     this.l10n = Rkns.i18n[_opts.language];
    94     this.edges = new Rkns.Model.List();
    83     this.edges = new Rkns.Model.List();
    95     if (typeof this._opts.user === "object") {
    84     if (typeof this._opts.user === "object") {
    96         this.current_user = this.addUser(this._opts.user)
    85         this.current_user = this.addUser(this._opts.user)
    97     }
    86     }
    98     this.serializer = new Rkns.Serializers[_opts.serializer](this);
    87     this.serializer = new Rkns.Serializers[_opts.serializer](this);
    99     this.renderer = new Rkns.Renderers[_opts.renderer](this);
    88     this.renderer = new Rkns.Renderer.Scene(this);
   100     var _this = this;
    89     var _this = this;
   101     this.serializer.onLoad(function() {
    90     this.serializer.onLoad(function() {
   102         if (typeof _this.current_user === "undefined") {
    91         if (typeof _this.current_user === "undefined") {
   103             _this.current_user = _proj.users[0];
    92             _this.current_user = _proj.users[0];
   104         }
    93         }
   141 Rkns.Project.prototype.updateElement = function(_element, _props, _render_save) {
   130 Rkns.Project.prototype.updateElement = function(_element, _props, _render_save) {
   142     Rkns._(_props).each(function(_v, _k) {
   131     Rkns._(_props).each(function(_v, _k) {
   143         _element[_k] = _v;
   132         _element[_k] = _v;
   144     });
   133     });
   145     if (typeof _render_save !== "undefined" && (_render_save&Rkns._RENDER)) {
   134     if (typeof _render_save !== "undefined" && (_render_save&Rkns._RENDER)) {
   146         console.log("Shall redraw");
       
   147         if (typeof _element.__controller !== "undefined") {
   135         if (typeof _element.__controller !== "undefined") {
   148             _element.__controller.redraw();
   136             _element.__controller.redraw();
   149         } else {
   137         } else {
   150             this._renderer.redraw();
   138             this._renderer.redraw();
   151         }
   139         }
   152     }
   140     }
   153     if (typeof _render_save !== "undefined" && (_render_save&Rkns._SAVE)) {
   141     if (typeof _render_save !== "undefined" && (_render_save&Rkns._SAVE)) {
   154         this.serializer.save();
   142         this.serializer.save();
   155     }
   143     }
       
   144 }
       
   145 
       
   146 Rkns.Project.prototype.removeNode = function(_node, _render_save) {
       
   147     this.nodes.removeId(_node.id);
       
   148     if (typeof _node.__controller !== "undefined") {
       
   149         console.log("Controllers", this.renderer.controllers.length);
       
   150         this.renderer.removeController(_node.__controller);
       
   151         console.log("Controllers", this.renderer.controllers.length);
       
   152     }
       
   153     console.log(this.edges.length);
       
   154     var _this = this;
       
   155     this.edges = this.edges.filter(function(_edge) {
       
   156         var _keep = _edge.from !== _node && _edge.to !== _node;
       
   157         if (!_keep && typeof _edge.__controller !== "undefined") {
       
   158             _this.renderer.removeController(_edge.__controller);
       
   159         }
       
   160         return _keep;
       
   161     });
       
   162     if (typeof _render_save !== "undefined" && (_render_save&Rkns._RENDER)) {
       
   163         this.renderer.redraw();
       
   164     }
       
   165     if (typeof _render_save !== "undefined" && (_render_save&Rkns._SAVE)) {
       
   166         this.serializer.save();
       
   167     }
       
   168     return _node;
   156 }
   169 }
   157 
   170 
   158 /* Utility functions */
   171 /* Utility functions */
   159 
   172 
   160 Rkns.Utils = {
   173 Rkns.Utils = {