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