aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorValerio Virgillito2012-03-14 10:29:18 -0700
committerValerio Virgillito2012-03-14 10:29:18 -0700
commit6df430d86c289413fea48f8e2ac37def72fbde46 (patch)
treecc16f59407a85b6c91d372d25fdae2ee1dac88d1
parentf4373594569f77d710eea9a266fe41419c029f85 (diff)
parentb4d3bf155e38e6554f05bb3cbaddd2f3bf799e90 (diff)
downloadninja-6df430d86c289413fea48f8e2ac37def72fbde46.tar.gz
Merge pull request #117 from mencio/layout-fix
Layout Fixes and Canvas sized when panels are collapsed
-rwxr-xr-xjs/components/layout/bread-crumb.reel/bread-crumb.js3
-rwxr-xr-xjs/controllers/selection-controller.js8
-rwxr-xr-xjs/lib/drawing/world.js8
-rwxr-xr-xjs/panels/Splitter.js11
-rwxr-xr-xjs/stage/layout.js41
5 files changed, 33 insertions, 38 deletions
diff --git a/js/components/layout/bread-crumb.reel/bread-crumb.js b/js/components/layout/bread-crumb.reel/bread-crumb.js
index ab390fc6..f35972b6 100755
--- a/js/components/layout/bread-crumb.reel/bread-crumb.js
+++ b/js/components/layout/bread-crumb.reel/bread-crumb.js
@@ -71,8 +71,7 @@ exports.Breadcrumb = Montage.create(Component, {
71 // This is always the top container which is now hardcoded to body 71 // This is always the top container which is now hardcoded to body
72 this.containerElements.unshift({"node": parentNode, "nodeUuid":parentNode.uuid, "label": "Body"}); 72 this.containerElements.unshift({"node": parentNode, "nodeUuid":parentNode.uuid, "label": "Body"});
73 73
74 // This is for the timeline -- Disable it since the timeline should not know about this object 74
75 // NJevent('layerBinding',{selected:false ,element:this.container})
76 75
77 } 76 }
78 }, 77 },
diff --git a/js/controllers/selection-controller.js b/js/controllers/selection-controller.js
index c713b6e5..154fb7f8 100755
--- a/js/controllers/selection-controller.js
+++ b/js/controllers/selection-controller.js
@@ -90,15 +90,11 @@ exports.SelectionController = Montage.create(Component, {
90 } 90 }
91 }, 91 },
92 92
93 handleSwitchDocument: { 93 handleSwitchDocument: {
94 value: function() { 94 value: function() {
95 if(this.application.ninja.documentController.activeDocument.currentView === "design"){ 95 if(this.application.ninja.documentController.activeDocument.currentView === "design"){
96 this._selectedItems = this.application.ninja.selectedElements.slice(0); 96 this._selectedItems = this.application.ninja.selectedElements.slice(0);
97 if(this._selectedItems.length === 0 ){ 97 this._isDocument = this._selectedItems.length === 0;
98 this._isDocument = true;
99 }else{
100 this._isDocument = false;
101 }
102 NJevent("selectionChange", {"elements": this.application.ninja.selectedElements, "isDocument": this._isDocument} ); 98 NJevent("selectionChange", {"elements": this.application.ninja.selectedElements, "isDocument": this._isDocument} );
103 } 99 }
104 } 100 }
diff --git a/js/lib/drawing/world.js b/js/lib/drawing/world.js
index df24f556..049145ce 100755
--- a/js/lib/drawing/world.js
+++ b/js/lib/drawing/world.js
@@ -351,20 +351,18 @@ var World = function GLWorld( canvas, use3D, preserveDrawingBuffer ) {
351 return false; 351 return false;
352 }; 352 };
353 353
354 this.generateUniqueNodeID = function() 354 this.generateUniqueNodeID = function() {
355 {
356 var str = "" + this._nodeCounter; 355 var str = "" + this._nodeCounter;
357 this._nodeCounter++; 356 this._nodeCounter++;
358 return str; 357 return str;
359 } 358 };
360 359
361 360
362 // start RDGE passing your runtime object, and false to indicate we don't need a an initialization state 361 // start RDGE passing your runtime object, and false to indicate we don't need a an initialization state
363 // in the case of a procedurally built scene an init state is not needed for loading data 362 // in the case of a procedurally built scene an init state is not needed for loading data
364 if (this._useWebGL) { 363 if (this._useWebGL) {
365 rdgeStarted = true; 364 rdgeStarted = true;
366 var id = this._canvas.getAttribute( "data-RDGE-id" ); 365 this._canvas.rdgeid = this._canvas.getAttribute( "data-RDGE-id" );
367 this._canvas.rdgeid = id;
368 g_Engine.registerCanvas(this._canvas, this); 366 g_Engine.registerCanvas(this._canvas, this);
369 RDGEStart( this._canvas ); 367 RDGEStart( this._canvas );
370 this._canvas.task.stop() 368 this._canvas.task.stop()
diff --git a/js/panels/Splitter.js b/js/panels/Splitter.js
index 3215e928..a396ea28 100755
--- a/js/panels/Splitter.js
+++ b/js/panels/Splitter.js
@@ -66,6 +66,7 @@ exports.Splitter = Montage.create(Component, {
66 var storedData = this.application.localStorage.getItem(this.element.getAttribute("data-montage-id")); 66 var storedData = this.application.localStorage.getItem(this.element.getAttribute("data-montage-id"));
67 if(storedData && this.element.getAttribute("data-montage-id") !== null) { 67 if(storedData && this.element.getAttribute("data-montage-id") !== null) {
68 this._collapsed = storedData.value; 68 this._collapsed = storedData.value;
69
69 } else { 70 } else {
70 this._collapsed = false; 71 this._collapsed = false;
71 } 72 }
@@ -77,13 +78,11 @@ exports.Splitter = Montage.create(Component, {
77 draw: { 78 draw: {
78 value: function() { 79 value: function() {
79 if(this.collapsed) { 80 if(this.collapsed) {
80
81 if(this.panel.element) this.panel.element.classList.add("collapsed"); 81 if(this.panel.element) this.panel.element.classList.add("collapsed");
82 else this.panel.classList.add("collapsed"); 82 else this.panel.classList.add("collapsed");
83 this.element.classList.add("collapsed"); 83 this.element.classList.add("collapsed");
84 if(this._resizeBar != null) this.resizeBar.classList.add("collapsed"); 84 if(this._resizeBar != null) this.resizeBar.classList.add("collapsed");
85 } 85 } else {
86 else {
87 if(this.panel.element) this.panel.element.classList.remove("collapsed"); 86 if(this.panel.element) this.panel.element.classList.remove("collapsed");
88 else this.panel.classList.remove("collapsed"); 87 else this.panel.classList.remove("collapsed");
89 this.element.classList.remove("collapsed"); 88 this.element.classList.remove("collapsed");
@@ -92,6 +91,12 @@ exports.Splitter = Montage.create(Component, {
92 } 91 }
93 }, 92 },
94 93
94 didDraw: {
95 value: function() {
96 this.application.ninja.stage.resizeCanvases = true;
97 }
98 },
99
95 handleClick : { 100 handleClick : {
96 value: function() { 101 value: function() {
97 if (!this.disabled) { 102 if (!this.disabled) {
diff --git a/js/stage/layout.js b/js/stage/layout.js
index 8a53a08b..6be2df1d 100755
--- a/js/stage/layout.js
+++ b/js/stage/layout.js
@@ -64,31 +64,17 @@ exports.Layout = Montage.create(Component, {
64 64
65 handleOpenDocument: { 65 handleOpenDocument: {
66 value: function() { 66 value: function() {
67 // Initial elements to draw is the entire node list 67 // Initial elements to draw are the childrens of the root element
68 if(this.application.ninja.documentController.activeDocument.currentView === "design"){//only for designer view 68 if(this.application.ninja.documentController.activeDocument.currentView === "design") {
69 this.elementsToDraw = this.application.ninja.documentController.activeDocument._liveNodeList; 69 this.elementsToDraw = this.application.ninja.documentController.activeDocument.documentRoot.childNodes;
70 } 70 }
71
71 // Draw the elements and the 3d info 72 // Draw the elements and the 3d info
72 this.draw(); 73 this.draw();
73 this.draw3DInfo(false); 74 this.draw3DInfo(false);
74 } 75 }
75 }, 76 },
76 77
77 // No need to keep track of the added elements. We now have a live node list of the dom
78 handleElementAdded: {
79 value: function(event) {
80 // this.domTree.push(event.detail);
81 // this.draw();
82 // this.draw3DInfo(false);
83 }
84 },
85
86 handleElementDeleted: {
87 value: function(event) {
88 //this.domTree.splice(this.domTree.indexOf(event.detail), 1);
89 }
90 },
91
92 // Redraw stage only once after all deletion is completed 78 // Redraw stage only once after all deletion is completed
93 handleDeleteSelection: { 79 handleDeleteSelection: {
94 value: function(event) { 80 value: function(event) {
@@ -99,14 +85,25 @@ exports.Layout = Montage.create(Component, {
99 85
100 handleSelectionChange: { 86 handleSelectionChange: {
101 value: function(event) { 87 value: function(event) {
88 var containerIndex;
102 89
103 if(this.application.ninja.documentController.activeDocument === null){ 90 if(this.application.ninja.documentController.activeDocument === null){
104 return; 91 return;
105 } 92 }
106 93
107 // Make an array copy of the line node list which is not an array like object 94 if(this.application.ninja.documentController.activeDocument.currentView === "design"){
108 if(this.application.ninja.documentController.activeDocument.currentView === "design"){//only for designer view 95 // Make an array copy of the line node list which is not an array like object
109 this.domTree = Array.prototype.slice.call(this.application.ninja.documentController.activeDocument._liveNodeList, 0); 96 this.domTree = Array.prototype.slice.call(this.application.ninja.documentController.activeDocument._liveNodeList, 0);
97 // Index of the current container
98 containerIndex = this.domTree.indexOf(this.application.ninja.currentSelectedContainer);
99
100 if(containerIndex < 0) {
101 // Stage is the container.
102 this.domTree = Array.prototype.slice.call(this.application.ninja.currentSelectedContainer.childNodes, 0);
103 } else {
104 // Child nodes of the container
105 this.domTree = Array.prototype.slice.call(this.domTree[containerIndex].childNodes, 0);
106 }
110 } 107 }
111 // Clear the elements to draw 108 // Clear the elements to draw
112 this.elementsToDraw.length = 0; 109 this.elementsToDraw.length = 0;
@@ -119,10 +116,10 @@ exports.Layout = Montage.create(Component, {
119 return (tmp.indexOf(value) === -1); 116 return (tmp.indexOf(value) === -1);
120 }); 117 });
121 } else { 118 } else {
122 this.elementsToDraw = this.domTree; 119 this.elementsToDraw = Array.prototype.slice.call(this.domTree, 0);
123 } 120 }
124 121
125 this.draw(); // Not a reel yet :) 122 this.draw(); // Not a reel yet
126 this.draw3DInfo(false); 123 this.draw3DInfo(false);
127 124
128 // Clear the domTree copy 125 // Clear the domTree copy