| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 cr.define('options', function() { | 5 cr.define('options', function() { |
| 6 | 6 |
| 7 var Preferences = options.Preferences; | 7 var Preferences = options.Preferences; |
| 8 ///////////////////////////////////////////////////////////////////////////// | 8 ///////////////////////////////////////////////////////////////////////////// |
| 9 // PrefCheckbox class: | 9 // PrefCheckbox class: |
| 10 | 10 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 26 Preferences.getInstance().addEventListener(this.pref, | 26 Preferences.getInstance().addEventListener(this.pref, |
| 27 function(event) { | 27 function(event) { |
| 28 self.managed = event.value['managed'] | 28 self.managed = event.value['managed'] |
| 29 self.disabled = self.managed; | 29 self.disabled = self.managed; |
| 30 self.checked = event.value['value']; | 30 self.checked = event.value['value']; |
| 31 }); | 31 }); |
| 32 | 32 |
| 33 // Listen to user events. | 33 // Listen to user events. |
| 34 this.addEventListener('click', | 34 this.addEventListener('click', |
| 35 function(e) { | 35 function(e) { |
| 36 Preferences.setBooleanPref(self.pref, self.checked, self.metric); | 36 Preferences.setBooleanPref(self.pref, self.checked); |
| 37 }); | 37 }); |
| 38 } | 38 } |
| 39 }; | 39 }; |
| 40 | 40 |
| 41 /** | 41 /** |
| 42 * The preference name. | 42 * The preference name. |
| 43 * @type {string} | 43 * @type {string} |
| 44 */ | 44 */ |
| 45 cr.defineProperty(PrefCheckbox, 'pref', cr.PropertyKind.ATTR); | 45 cr.defineProperty(PrefCheckbox, 'pref', cr.PropertyKind.ATTR); |
| 46 | 46 |
| 47 /** | |
| 48 * The user metric string. | |
| 49 * @type {string} | |
| 50 */ | |
| 51 cr.defineProperty(PrefCheckbox, 'metric', cr.PropertyKind.ATTR); | |
| 52 | |
| 53 ///////////////////////////////////////////////////////////////////////////// | 47 ///////////////////////////////////////////////////////////////////////////// |
| 54 // PrefRadio class: | 48 // PrefRadio class: |
| 55 | 49 |
| 56 //Define a constructor that uses an input element as its underlying element. | 50 //Define a constructor that uses an input element as its underlying element. |
| 57 var PrefRadio = cr.ui.define('input'); | 51 var PrefRadio = cr.ui.define('input'); |
| 58 | 52 |
| 59 PrefRadio.prototype = { | 53 PrefRadio.prototype = { |
| 60 // Set up the prototype chain | 54 // Set up the prototype chain |
| 61 __proto__: HTMLInputElement.prototype, | 55 __proto__: HTMLInputElement.prototype, |
| 62 | 56 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 73 self.managed = event.value['managed'] | 67 self.managed = event.value['managed'] |
| 74 self.disabled = self.managed; | 68 self.disabled = self.managed; |
| 75 self.checked = String(event.value['value']) == self.value; | 69 self.checked = String(event.value['value']) == self.value; |
| 76 }); | 70 }); |
| 77 | 71 |
| 78 // Listen to user events. | 72 // Listen to user events. |
| 79 this.addEventListener('change', | 73 this.addEventListener('change', |
| 80 function(e) { | 74 function(e) { |
| 81 if(self.value == 'true' || self.value == 'false') { | 75 if(self.value == 'true' || self.value == 'false') { |
| 82 Preferences.setBooleanPref(self.pref, | 76 Preferences.setBooleanPref(self.pref, |
| 83 self.value == 'true', self.metric); | 77 self.value == 'true'); |
| 84 } else { | 78 } else { |
| 85 Preferences.setIntegerPref(self.pref, | 79 Preferences.setIntegerPref(self.pref, |
| 86 parseInt(self.value, 10), self.metric); | 80 parseInt(self.value, 10)); |
| 87 } | 81 } |
| 88 }); | 82 }); |
| 89 }, | 83 }, |
| 90 | 84 |
| 91 /** | 85 /** |
| 92 * Getter for preference name attribute. | 86 * Getter for preference name attribute. |
| 93 */ | 87 */ |
| 94 get pref() { | 88 get pref() { |
| 95 return this.getAttribute('pref'); | 89 return this.getAttribute('pref'); |
| 96 }, | 90 }, |
| 97 | 91 |
| 98 /** | 92 /** |
| 99 * Setter for preference name attribute. | 93 * Setter for preference name attribute. |
| 100 */ | 94 */ |
| 101 set pref(name) { | 95 set pref(name) { |
| 102 this.setAttribute('pref', name); | 96 this.setAttribute('pref', name); |
| 103 } | 97 } |
| 104 }; | 98 }; |
| 105 | 99 |
| 106 /** | |
| 107 * The user metric string. | |
| 108 * @type {string} | |
| 109 */ | |
| 110 cr.defineProperty(PrefRadio, 'metric', cr.PropertyKind.ATTR); | |
| 111 | 100 |
| 112 ///////////////////////////////////////////////////////////////////////////// | 101 ///////////////////////////////////////////////////////////////////////////// |
| 113 // PrefNumeric class: | 102 // PrefNumeric class: |
| 114 | 103 |
| 115 // Define a constructor that uses an input element as its underlying element. | 104 // Define a constructor that uses an input element as its underlying element. |
| 116 var PrefNumeric = function() {}; | 105 var PrefNumeric = function() {}; |
| 117 PrefNumeric.prototype = { | 106 PrefNumeric.prototype = { |
| 118 // Set up the prototype chain | 107 // Set up the prototype chain |
| 119 __proto__: HTMLInputElement.prototype, | 108 __proto__: HTMLInputElement.prototype, |
| 120 | 109 |
| 121 /** | 110 /** |
| 122 * Initialization function for the cr.ui framework. | 111 * Initialization function for the cr.ui framework. |
| 123 */ | 112 */ |
| 124 decorate: function() { | 113 decorate: function() { |
| 125 var self = this; | 114 var self = this; |
| 126 | 115 |
| 127 // Listen to pref changes. | 116 // Listen to pref changes. |
| 128 Preferences.getInstance().addEventListener(this.pref, | 117 Preferences.getInstance().addEventListener(this.pref, |
| 129 function(event) { | 118 function(event) { |
| 130 self.managed = event.value['managed'] | 119 self.managed = event.value['managed'] |
| 131 self.disabled = self.managed; | 120 self.disabled = self.managed; |
| 132 self.value = event.value['value']; | 121 self.value = event.value['value']; |
| 133 }); | 122 }); |
| 134 | 123 |
| 135 // Listen to user events. | 124 // Listen to user events. |
| 136 this.addEventListener('change', | 125 this.addEventListener('change', |
| 137 function(e) { | 126 function(e) { |
| 138 Preferences.setIntegerPref(self.pref, self.value, self.metric); | 127 Preferences.setIntegerPref(self.pref, self.value); |
| 139 }); | 128 }); |
| 140 } | 129 } |
| 141 }; | 130 }; |
| 142 | 131 |
| 143 /** | 132 /** |
| 144 * The preference name. | 133 * The preference name. |
| 145 * @type {string} | 134 * @type {string} |
| 146 */ | 135 */ |
| 147 cr.defineProperty(PrefNumeric, 'pref', cr.PropertyKind.ATTR); | 136 cr.defineProperty(PrefNumeric, 'pref', cr.PropertyKind.ATTR); |
| 148 | 137 |
| 149 /** | |
| 150 * The user metric string. | |
| 151 * @type {string} | |
| 152 */ | |
| 153 cr.defineProperty(PrefNumeric, 'metric', cr.PropertyKind.ATTR); | |
| 154 | |
| 155 ///////////////////////////////////////////////////////////////////////////// | 138 ///////////////////////////////////////////////////////////////////////////// |
| 156 // PrefNumber class: | 139 // PrefNumber class: |
| 157 | 140 |
| 158 // Define a constructor that uses an input element as its underlying element. | 141 // Define a constructor that uses an input element as its underlying element. |
| 159 var PrefNumber = cr.ui.define('input'); | 142 var PrefNumber = cr.ui.define('input'); |
| 160 | 143 |
| 161 PrefNumber.prototype = { | 144 PrefNumber.prototype = { |
| 162 // Set up the prototype chain | 145 // Set up the prototype chain |
| 163 __proto__: PrefNumeric.prototype, | 146 __proto__: PrefNumeric.prototype, |
| 164 | 147 |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 219 // Item not found, select first item. | 202 // Item not found, select first item. |
| 220 self.selectedIndex = 0; | 203 self.selectedIndex = 0; |
| 221 }); | 204 }); |
| 222 | 205 |
| 223 // Listen to user events. | 206 // Listen to user events. |
| 224 this.addEventListener('change', | 207 this.addEventListener('change', |
| 225 function(e) { | 208 function(e) { |
| 226 switch(self.dataType) { | 209 switch(self.dataType) { |
| 227 case 'number': | 210 case 'number': |
| 228 Preferences.setIntegerPref(self.pref, | 211 Preferences.setIntegerPref(self.pref, |
| 229 self.options[self.selectedIndex].value, self.metric); | 212 self.options[self.selectedIndex].value); |
| 230 break; | 213 break; |
| 231 case 'boolean': | 214 case 'boolean': |
| 232 Preferences.setBooleanValue(self.pref, | 215 Preferences.setBooleanValue(self.pref, |
| 233 self.options[self.selectedIndex].value, self.metric); | 216 self.options[self.selectedIndex].value); |
| 234 break; | 217 break; |
| 235 case 'string': | 218 case 'string': |
| 236 Preferences.setStringPref(self.pref, | 219 Preferences.setStringPref(self.pref, |
| 237 self.options[self.selectedIndex].value, self.metric); | 220 self.options[self.selectedIndex].value); |
| 238 break; | 221 break; |
| 239 } | 222 } |
| 240 }); | 223 }); |
| 241 | 224 |
| 242 // Initialize options. | 225 // Initialize options. |
| 243 this.ownerDocument.addEventListener('DOMContentLoaded', | 226 this.ownerDocument.addEventListener('DOMContentLoaded', |
| 244 function() { | 227 function() { |
| 245 var values = self.getAttribute('data-values'); | 228 var values = self.getAttribute('data-values'); |
| 246 if (values) { | 229 if (values) { |
| 247 self.initializeValues(templateData[values]); | 230 self.initializeValues(templateData[values]); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 265 }, this); | 248 }, this); |
| 266 } | 249 } |
| 267 }; | 250 }; |
| 268 | 251 |
| 269 /** | 252 /** |
| 270 * The preference name. | 253 * The preference name. |
| 271 * @type {string} | 254 * @type {string} |
| 272 */ | 255 */ |
| 273 cr.defineProperty(PrefSelect, 'pref', cr.PropertyKind.ATTR); | 256 cr.defineProperty(PrefSelect, 'pref', cr.PropertyKind.ATTR); |
| 274 | 257 |
| 275 /** | |
| 276 * The user metric string. | |
| 277 * @type {string} | |
| 278 */ | |
| 279 cr.defineProperty(PrefSelect, 'metric', cr.PropertyKind.ATTR); | |
| 280 | |
| 281 ///////////////////////////////////////////////////////////////////////////// | 258 ///////////////////////////////////////////////////////////////////////////// |
| 282 // PrefTextField class: | 259 // PrefTextField class: |
| 283 | 260 |
| 284 // Define a constructor that uses an input element as its underlying element. | 261 // Define a constructor that uses an input element as its underlying element. |
| 285 var PrefTextField = cr.ui.define('input'); | 262 var PrefTextField = cr.ui.define('input'); |
| 286 | 263 |
| 287 PrefTextField.prototype = { | 264 PrefTextField.prototype = { |
| 288 // Set up the prototype chain | 265 // Set up the prototype chain |
| 289 __proto__: HTMLInputElement.prototype, | 266 __proto__: HTMLInputElement.prototype, |
| 290 | 267 |
| 291 /** | 268 /** |
| 292 * Initialization function for the cr.ui framework. | 269 * Initialization function for the cr.ui framework. |
| 293 */ | 270 */ |
| 294 decorate: function() { | 271 decorate: function() { |
| 295 var self = this; | 272 var self = this; |
| 296 | 273 |
| 297 // Listen to pref changes. | 274 // Listen to pref changes. |
| 298 Preferences.getInstance().addEventListener(this.pref, | 275 Preferences.getInstance().addEventListener(this.pref, |
| 299 function(event) { | 276 function(event) { |
| 300 self.managed = event.value['managed'] | 277 self.managed = event.value['managed'] |
| 301 self.disabled = self.managed; | 278 self.disabled = self.managed; |
| 302 self.value = event.value['value']; | 279 self.value = event.value['value']; |
| 303 }); | 280 }); |
| 304 | 281 |
| 305 // Listen to user events. | 282 // Listen to user events. |
| 306 this.addEventListener('change', | 283 this.addEventListener('change', |
| 307 function(e) { | 284 function(e) { |
| 308 Preferences.setStringPref(self.pref, self.value, self.metric); | 285 Preferences.setStringPref(self.pref, self.value); |
| 309 }); | 286 }); |
| 310 | 287 |
| 311 window.addEventListener('unload', | 288 window.addEventListener('unload', |
| 312 function() { | 289 function() { |
| 313 if (document.activeElement == self) | 290 if (document.activeElement == self) |
| 314 self.blur(); | 291 self.blur(); |
| 315 }); | 292 }); |
| 316 } | 293 } |
| 317 }; | 294 }; |
| 318 | 295 |
| 319 /** | 296 /** |
| 320 * The preference name. | 297 * The preference name. |
| 321 * @type {string} | 298 * @type {string} |
| 322 */ | 299 */ |
| 323 cr.defineProperty(PrefTextField, 'pref', cr.PropertyKind.ATTR); | 300 cr.defineProperty(PrefTextField, 'pref', cr.PropertyKind.ATTR); |
| 324 | 301 |
| 325 /** | |
| 326 * The user metric string. | |
| 327 * @type {string} | |
| 328 */ | |
| 329 cr.defineProperty(PrefTextField, 'metric', cr.PropertyKind.ATTR); | |
| 330 | |
| 331 // Export | 302 // Export |
| 332 return { | 303 return { |
| 333 PrefCheckbox: PrefCheckbox, | 304 PrefCheckbox: PrefCheckbox, |
| 334 PrefNumber: PrefNumber, | 305 PrefNumber: PrefNumber, |
| 335 PrefNumeric: PrefNumeric, | 306 PrefNumeric: PrefNumeric, |
| 336 PrefRadio: PrefRadio, | 307 PrefRadio: PrefRadio, |
| 337 PrefRange: PrefRange, | 308 PrefRange: PrefRange, |
| 338 PrefSelect: PrefSelect, | 309 PrefSelect: PrefSelect, |
| 339 PrefTextField: PrefTextField | 310 PrefTextField: PrefTextField |
| 340 }; | 311 }; |
| 341 | 312 |
| 342 }); | 313 }); |
| 343 | 314 |
| OLD | NEW |