aboutsummaryrefslogtreecommitdiff
path: root/js/stage
diff options
context:
space:
mode:
Diffstat (limited to 'js/stage')
-rwxr-xr-xjs/stage/layout.js41
-rwxr-xr-xjs/stage/stage.reel/stage.html7
-rwxr-xr-xjs/stage/stage.reel/stage.js11
3 files changed, 34 insertions, 25 deletions
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
diff --git a/js/stage/stage.reel/stage.html b/js/stage/stage.reel/stage.html
index 812e3d55..f796303c 100755
--- a/js/stage/stage.reel/stage.html
+++ b/js/stage/stage.reel/stage.html
@@ -50,6 +50,10 @@
50 "element" : {"#": "textToolObject"} 50 "element" : {"#": "textToolObject"}
51 } 51 }
52 }, 52 },
53
54 "focusManager": {
55 "object": "js/components/focus-manager.reel"
56 },
53 57
54 "owner": { 58 "owner": {
55 "module": "js/stage/stage.reel", 59 "module": "js/stage/stage.reel",
@@ -63,7 +67,8 @@
63 "stageDeps": {"@": "StageDeps1"}, 67 "stageDeps": {"@": "StageDeps1"},
64 "layout": {"@": "layout1"}, 68 "layout": {"@": "layout1"},
65 "stageView": {"@": "stageView"}, 69 "stageView": {"@": "stageView"},
66 "textTool": {"@": "textTool"} 70 "textTool": {"@": "textTool"},
71 "focusManager": {"@": "focusManager"}
67 }, 72 },
68 "bindings": { 73 "bindings": {
69 "currentDocumentStageView": { 74 "currentDocumentStageView": {
diff --git a/js/stage/stage.reel/stage.js b/js/stage/stage.reel/stage.js
index 4c1d046b..e139af97 100755
--- a/js/stage/stage.reel/stage.js
+++ b/js/stage/stage.reel/stage.js
@@ -170,8 +170,7 @@ exports.Stage = Montage.create(Component, {
170 170
171 // Hack for now until a full component 171 // Hack for now until a full component
172 this.layout.draw(); 172 this.layout.draw();
173 } 173 } else if(this.updatedStage) {
174 else if(this.updatedStage) {
175 this.layout.draw(); 174 this.layout.draw();
176 this.layout.draw3DInfo(true); 175 this.layout.draw3DInfo(true);
177 } 176 }
@@ -235,6 +234,10 @@ exports.Stage = Montage.create(Component, {
235 234
236 this.hideCanvas(false); 235 this.hideCanvas(false);
237 236
237 // Recalculate the canvas sizes because of splitter resizing
238 this._canvas.width = this._layoutCanvas.width = this._drawingCanvas.width = this.element.offsetWidth - 11 ;
239 this._canvas.height = this._layoutCanvas.height = this._drawingCanvas.height = this.element.offsetHeight - 11;
240
238 this._documentRoot = this.application.ninja.currentDocument.documentRoot; 241 this._documentRoot = this.application.ninja.currentDocument.documentRoot;
239 this._viewport = this.application.ninja.currentDocument.documentRoot.parentNode; 242 this._viewport = this.application.ninja.currentDocument.documentRoot.parentNode;
240 243
@@ -319,6 +322,10 @@ exports.Stage = Montage.create(Component, {
319 322
320 handleMousedown: { 323 handleMousedown: {
321 value: function(event) { 324 value: function(event) {
325 // Call the focus manager to set focus to blur any focus'd elements
326 this.focusManager.setFocus();
327
328
322 var point; 329 var point;
323// event.preventDefault(); // commenting because HTML elements in the IDE are retaining focus 330// event.preventDefault(); // commenting because HTML elements in the IDE are retaining focus
324 // If right click set the context menu to true to prevent a mouse up. 331 // If right click set the context menu to true to prevent a mouse up.