aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorValerio Virgillito2012-03-13 18:12:48 -0700
committerValerio Virgillito2012-03-13 18:12:48 -0700
commitb4d3bf155e38e6554f05bb3cbaddd2f3bf799e90 (patch)
treedb8c19ddd19e2b87549b64ede97760b12e65ac9e
parentca985ed7031af3f4e76d26fd5b99846620fc5733 (diff)
downloadninja-b4d3bf155e38e6554f05bb3cbaddd2f3bf799e90.tar.gz
Fixing the layout to only draw one level and stage resize when the panels are collapsed.
Fixing the following bugs: IKNINJA-1068 Signed-off-by: Valerio Virgillito <valerio@motorola.com>
-rwxr-xr-xjs/panels/Splitter.js11
-rwxr-xr-xjs/stage/layout.js41
2 files changed, 27 insertions, 25 deletions
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