client/js/renderer/viewrepr.js
changeset 510 a8f02d66bf02
parent 508 dd526b1b283a
child 511 4a48a1a9fd1e
--- a/client/js/renderer/viewrepr.js	Wed Jun 24 17:15:51 2015 +0200
+++ b/client/js/renderer/viewrepr.js	Thu Jun 25 18:09:49 2015 +0200
@@ -18,6 +18,17 @@
             this.scale = 1;
             this.initialScale = 1;
             this.offset = paper.view.center;
+            this.params = {};
+            
+            if (this.model){
+                this.params = {
+                    "zoom_level": _this.model.get("zoom_level"),
+                    "offset": _this.model.get("offset"),
+                    "hidden_nodes": _this.model.get("hidden_nodes")
+                };
+            }
+                
+            this.init();
             
             var bindClick = function(selector, fname) {
                 _this.$.find(selector).click(function(evt) {
@@ -31,20 +42,29 @@
             bindClick(".Rk-ZoomFit", "autoScale");
             
             this.$.find(".Rk-ZoomSave").click( function() {
-                var offset = {};
-                offset.x = _this.offset.x;
-                offset.y = _this.offset.y;
-                _this.model.set( { zoom_level:_this.scale, offset:offset, hidden_nodes: _this.hiddenNodes.concat() } );
+                var offset = {
+                    "x": _this.offset.x,
+                    "y": _this.offset.y
+                };
+                //TODO: make the if else the same function
+                if (_this.model){
+                    _this.model.set( { zoom_level:_this.scale, offset:offset, hidden_nodes: _this.hiddenNodes.concat() } );
+                }else{
+                    _this.model = _this.renkan.project.addView( { zoom_level:_this.scale, offset:offset, hidden_nodes: _this.hiddenNodes.concat() } );
+                }
+                _this.params = {
+                        "zoom_level": _this.model.get("zoom_level"),
+                        "offset": _this.model.get("offset"),
+                        "hidden_nodes": _this.model.get("hidden_nodes")
+                };
             });
             
             this.$.find(".Rk-ZoomSetSaved").click( function() {
-                if(_this.model){
-                    _this.setScale(_this.model.get("zoom_level"), new paper.Point(_this.model.get("offset")));
-                    _this.showNodes(false);
-                    if (_this.options.hide_nodes){
-                        _this.hiddenNodes = (_this.model.get("hidden_nodes") || []).concat();
-                        _this.hideNodes();
-                    }
+                _this.setScale(_this.params.zoom_level, new paper.Point(_this.params.offset));
+                _this.showNodes(false);
+                if (_this.options.hide_nodes){
+                    _this.hiddenNodes = (_this.params.hidden_nodes || []).concat();
+                    _this.hideNodes();
                 }
             });
             
@@ -63,7 +83,16 @@
             }
         },
         redraw: function(options) {
-            //console.log("redraw view repr");
+            //console.log("view : ", this.model.toJSON());
+        },
+        init: function(){
+            var _this = this;
+            _this.setScale(_this.params.zoom_level, new paper.Point(_this.params.offset));
+            _this.showNodes(false);
+            if (_this.options.hide_nodes){
+                _this.hiddenNodes = (_this.params.hidden_nodes || []).concat();
+                _this.hideNodes();
+            }
         },
         addHiddenNode: function(_model){
             this.hideNode(_model);
@@ -99,10 +128,8 @@
         setScale: function(_newScale, _offset) {
             if ((_newScale/this.initialScale) > Utils._MIN_SCALE && (_newScale/this.initialScale) < Utils._MAX_SCALE) {
                 this.scale = _newScale;
-                this.renderer.scale = _newScale;
                 if (_offset) {
                     this.offset = _offset;
-                    this.renderer.offset = _offset;
                 }
                 this.renderer.redraw();
             }