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 |