diff options
author | Valerio Virgillito | 2012-06-04 10:20:57 -0700 |
---|---|---|
committer | Valerio Virgillito | 2012-06-04 10:20:57 -0700 |
commit | c1ec69879028220b0c3f11ad6e24035bf527802c (patch) | |
tree | 043bfe4ec9e08f4f598a4845ae5fbcddacc7c8fb /js/panels/css-panel | |
parent | 3abba04025dbc0daadb08184833a2558c442b8e1 (diff) | |
parent | 266460e52831c5b3a3473be420756fd88bb8aced (diff) | |
download | ninja-c1ec69879028220b0c3f11ad6e24035bf527802c.tar.gz |
Merge pull request #264 from mencio/document-bindings-fix
Document bindings fix - Changing the documents architecture to use bindings instead of events
Diffstat (limited to 'js/panels/css-panel')
5 files changed, 49 insertions, 13 deletions
diff --git a/js/panels/css-panel/css-panel.reel/css-panel.html b/js/panels/css-panel/css-panel.reel/css-panel.html index 42dca8a2..789635a0 100644 --- a/js/panels/css-panel/css-panel.reel/css-panel.html +++ b/js/panels/css-panel/css-panel.reel/css-panel.html | |||
@@ -31,6 +31,9 @@ No rights, expressed or implied, whatsoever to this software are provided by Mot | |||
31 | "properties": { | 31 | "properties": { |
32 | "element": {"#": "styles-view-container" }, | 32 | "element": {"#": "styles-view-container" }, |
33 | "selectionName": {"@": "selectionName" } | 33 | "selectionName": {"@": "selectionName" } |
34 | }, | ||
35 | "bindings": { | ||
36 | "currentDocument" : {"<-": "@owner.currentDocument" } | ||
34 | } | 37 | } |
35 | }, | 38 | }, |
36 | "selectionName" : { | 39 | "selectionName" : { |
diff --git a/js/panels/css-panel/css-panel.reel/css-panel.js b/js/panels/css-panel/css-panel.reel/css-panel.js index a117787e..96d94b36 100644 --- a/js/panels/css-panel/css-panel.reel/css-panel.js +++ b/js/panels/css-panel/css-panel.reel/css-panel.js | |||
@@ -8,6 +8,24 @@ var Montage = require("montage/core/core").Montage, | |||
8 | Component = require("montage/ui/component").Component; | 8 | Component = require("montage/ui/component").Component; |
9 | 9 | ||
10 | exports.CssPanel = Montage.create(Component, { | 10 | exports.CssPanel = Montage.create(Component, { |
11 | |||
12 | _currentDocument: { | ||
13 | value : null | ||
14 | }, | ||
15 | |||
16 | currentDocument : { | ||
17 | get : function() { | ||
18 | return this._currentDocument; | ||
19 | }, | ||
20 | set : function(value) { | ||
21 | if (value === this._currentDocument) { | ||
22 | return; | ||
23 | } | ||
24 | |||
25 | this._currentDocument = value; | ||
26 | } | ||
27 | }, | ||
28 | |||
11 | prepareForDraw : { | 29 | prepareForDraw : { |
12 | value: function() { | 30 | value: function() { |
13 | } | 31 | } |
diff --git a/js/panels/css-panel/style-sheets-view.reel/style-sheets-view.js b/js/panels/css-panel/style-sheets-view.reel/style-sheets-view.js index 5081a124..9e3b4a49 100644 --- a/js/panels/css-panel/style-sheets-view.reel/style-sheets-view.js +++ b/js/panels/css-panel/style-sheets-view.reel/style-sheets-view.js | |||
@@ -63,10 +63,10 @@ exports.StyleSheetsView = Montage.create(Component, { | |||
63 | if(this.styleSheetList) { | 63 | if(this.styleSheetList) { |
64 | sheetComponent = this.styleSheetList.childComponents[this.styleSheets.indexOf(sheet)]; | 64 | sheetComponent = this.styleSheetList.childComponents[this.styleSheets.indexOf(sheet)]; |
65 | if(sheetComponent) { | 65 | if(sheetComponent) { |
66 | sheetComponent.default = true; | 66 | sheetComponent['default'] = true; |
67 | if(this._defaultStyleSheet) { | 67 | if(this._defaultStyleSheet) { |
68 | oldDefaultSheet = this.styleSheetList.childComponents[this.styleSheets.indexOf(this._defaultStyleSheet)]; | 68 | oldDefaultSheet = this.styleSheetList.childComponents[this.styleSheets.indexOf(this._defaultStyleSheet)]; |
69 | oldDefaultSheet.default = false; | 69 | oldDefaultSheet['default'] = false; |
70 | } | 70 | } |
71 | } | 71 | } |
72 | } | 72 | } |
@@ -115,12 +115,12 @@ exports.StyleSheetsView = Montage.create(Component, { | |||
115 | 115 | ||
116 | handleStyleSheetsReady : { | 116 | handleStyleSheetsReady : { |
117 | value: function(e) { | 117 | value: function(e) { |
118 | this.documentName = this.stylesController.activeDocument.name; | 118 | this.documentName = this.stylesController.currentDocument.name; |
119 | this.styleSheets = this.stylesController.userStyleSheets; | 119 | this.styleSheets = this.stylesController.userStyleSheets; |
120 | 120 | ||
121 | Object.defineBinding(this, 'activeDocument', { | 121 | Object.defineBinding(this, 'activeDocument', { |
122 | 'boundObject': this.stylesController, | 122 | 'boundObject': this.stylesController, |
123 | 'boundObjectPropertyPath': 'activeDocument', | 123 | 'boundObjectPropertyPath': 'currentDocument', |
124 | 'oneway': true | 124 | 'oneway': true |
125 | }); | 125 | }); |
126 | 126 | ||
diff --git a/js/panels/css-panel/styles-view-container.reel/styles-view-container.js b/js/panels/css-panel/styles-view-container.reel/styles-view-container.js index 4a391421..157d99de 100644 --- a/js/panels/css-panel/styles-view-container.reel/styles-view-container.js +++ b/js/panels/css-panel/styles-view-container.reel/styles-view-container.js | |||
@@ -8,6 +8,29 @@ var Montage = require("montage/core/core").Montage, | |||
8 | Component = require("montage/ui/component").Component; | 8 | Component = require("montage/ui/component").Component; |
9 | 9 | ||
10 | exports.StylesViewContainer = Montage.create(Component, { | 10 | exports.StylesViewContainer = Montage.create(Component, { |
11 | |||
12 | _currentDocument: { | ||
13 | value : null | ||
14 | }, | ||
15 | |||
16 | currentDocument : { | ||
17 | get : function() { | ||
18 | return this._currentDocument; | ||
19 | }, | ||
20 | set : function(value) { | ||
21 | if (value === this._currentDocument) { | ||
22 | return; | ||
23 | } | ||
24 | |||
25 | this._currentDocument = value; | ||
26 | |||
27 | if(!value) { | ||
28 | this.hasStyles = false; | ||
29 | this.needsDraw = true; | ||
30 | } | ||
31 | } | ||
32 | }, | ||
33 | |||
11 | contentController : { | 34 | contentController : { |
12 | value: null | 35 | value: null |
13 | }, | 36 | }, |
@@ -74,7 +97,6 @@ exports.StylesViewContainer = Montage.create(Component, { | |||
74 | value: function() { | 97 | value: function() { |
75 | this.eventManager.addEventListener('styleSheetsReady', this, false); | 98 | this.eventManager.addEventListener('styleSheetsReady', this, false); |
76 | this.eventManager.addEventListener('elementChange', this, false); | 99 | this.eventManager.addEventListener('elementChange', this, false); |
77 | this.eventManager.addEventListener("closeDocument", this, false); | ||
78 | } | 100 | } |
79 | }, | 101 | }, |
80 | handleStyleSheetsReady: { | 102 | handleStyleSheetsReady: { |
@@ -150,13 +172,6 @@ exports.StylesViewContainer = Montage.create(Component, { | |||
150 | } | 172 | } |
151 | }, | 173 | }, |
152 | 174 | ||
153 | handleCloseDocument: { | ||
154 | value: function(e) { | ||
155 | this.hasStyles = false; | ||
156 | this.needsDraw = true; | ||
157 | } | ||
158 | }, | ||
159 | |||
160 | draw : { | 175 | draw : { |
161 | value: function() { | 176 | value: function() { |
162 | if(this.hasStyles) { | 177 | if(this.hasStyles) { |
diff --git a/js/panels/css-panel/styles-view-delegate.js b/js/panels/css-panel/styles-view-delegate.js index 078bd521..87686826 100644 --- a/js/panels/css-panel/styles-view-delegate.js +++ b/js/panels/css-panel/styles-view-delegate.js | |||
@@ -30,7 +30,7 @@ exports.StylesViewDelegate = Montage.create(Component, { | |||
30 | value: function(selector, direction) { | 30 | value: function(selector, direction) { |
31 | if(!selector) { return false; } | 31 | if(!selector) { return false; } |
32 | 32 | ||
33 | var elements = this.stylesController._activeDocument.model.views.design.document.querySelectorAll(selector), | 33 | var elements = this.stylesController.currentDocument.model.views.design.document.querySelectorAll(selector), |
34 | method = (direction === "out") ? "remove" : "add"; | 34 | method = (direction === "out") ? "remove" : "add"; |
35 | 35 | ||
36 | Array.prototype.slice.call(elements).forEach(function(el) { | 36 | Array.prototype.slice.call(elements).forEach(function(el) { |