aboutsummaryrefslogtreecommitdiff
path: root/js/panels/css-panel/style.reel/style.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/panels/css-panel/style.reel/style.js')
-rw-r--r--js/panels/css-panel/style.reel/style.js83
1 files changed, 60 insertions, 23 deletions
diff --git a/js/panels/css-panel/style.reel/style.js b/js/panels/css-panel/style.reel/style.js
index c73da6e5..1d5a11a5 100644
--- a/js/panels/css-panel/style.reel/style.js
+++ b/js/panels/css-panel/style.reel/style.js
@@ -8,27 +8,14 @@ var Montage = require("montage/core/core").Montage,
8 TreeNode = require("js/components/treeview/tree-node").TreeNode; 8 TreeNode = require("js/components/treeview/tree-node").TreeNode;
9 9
10exports.Style = Montage.create(TreeNode, { 10exports.Style = Montage.create(TreeNode, {
11 delegate : { 11 delegate : { value: null },
12 value: null 12 disabledClass : { value: 'style-item-disabled' },
13 }, 13 editingStyleClass : { value: 'edit-style-item' },
14 disabledClass : { 14 editNewEmptyClass : { value: 'edit-empty-style' },
15 value: 'style-item-disabled' 15 invalidStyleClass : { value: "style-item-invalid" },
16 }, 16
17 editingStyleClass : { 17 propertyText : { value: "property" },
18 value: 'edit-style-item' 18 _valueText : { value: "value" },
19 },
20 editNewEmptyClass : {
21 value: 'edit-empty-style'
22 },
23 invalidStyleClass : {
24 value: "style-item-invalid"
25 },
26 propertyText : {
27 value: "property"
28 },
29 _valueText : {
30 value: "value"
31 },
32 valueText : { 19 valueText : {
33 get: function() { 20 get: function() {
34 return this._valueText; 21 return this._valueText;
@@ -158,6 +145,27 @@ exports.Style = Montage.create(TreeNode, {
158 } 145 }
159 }, 146 },
160 147
148 getSiblingStyle : {
149 value: function(which) {
150 var styles = this.parentComponent.parentComponent.childComponents.map(function(sub){
151 return sub.childComponents[0];
152 }),
153 index = styles.indexOf(this);
154
155 switch (which) {
156 case "first":
157 return styles[0];
158 case "last":
159 return styles[styles.length-1];
160 case "next":
161 return (index+1 < styles.length) ? styles[index+1] : null;
162 case "prev":
163 return (index-1 >= 0) ? styles[index-1] : null;
164 }
165 }
166 },
167
168
161 handleEvent : { 169 handleEvent : {
162 value: function(e) { 170 value: function(e) {
163 console.log(e); 171 console.log(e);
@@ -206,11 +214,40 @@ exports.Style = Montage.create(TreeNode, {
206 handleStart : { 214 handleStart : {
207 value: function(e) { 215 value: function(e) {
208 this.editing = true; 216 this.editing = true;
217
218 if(this.empty) {
219 this.editingNewStyle = true;
220 }
209 } 221 }
210 }, 222 },
211 223
212 //// Handler for both hintable components 224 //// Handler for both hintable components
213 handleStop : { 225 handlePropertyStop : {
226 value: function(e) {
227 var event = e;
228 ///// Function to determine if an empty (new) style should return
229 ///// to showing the add button, i.e. the fields were not clicked
230 function fieldsClicked() {
231 var clicked;
232 if(e._event.detail.originalEventType === 'mousedown') {
233 clicked = e._event.detail.originalEvent.target;
234 return clicked === this.propertyField.element || clicked === this.valueField.element;
235 }
236 return false;
237 }
238
239 this.editing = false;
240
241 if(this.sourceObject.isEmpty && !this.dirty && !fieldsClicked.bind(this)()) {
242 ///// Show add button
243 this.editingNewStyle = false;
244 }
245
246 this.delegate.handlePropertyStop(e, this);
247 }
248 },
249 //// Handler for both hintable components
250 handleValueStop : {
214 value: function(e) { 251 value: function(e) {
215 var event = e; 252 var event = e;
216 ///// Function to determine if an empty (new) style should return 253 ///// Function to determine if an empty (new) style should return
@@ -231,7 +268,7 @@ exports.Style = Montage.create(TreeNode, {
231 this.editingNewStyle = false; 268 this.editingNewStyle = false;
232 } 269 }
233 270
234 this.delegate.handleStyleStop(e); 271 this.delegate.handleValueStop(e, this);
235 } 272 }
236 }, 273 },
237 274