Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(40)

Side by Side Diff: chrome/browser/resources/options/pref_ui.js

Issue 6150003: DOMUI: Implement the i18n-options attribute that allows the client to load (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Nit fix. Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 // TODO(jhawkins): Refactor all this copy-pasted code! 10 // TODO(jhawkins): Refactor all this copy-pasted code!
(...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after
286 PrefSelect.prototype = { 286 PrefSelect.prototype = {
287 // Set up the prototype chain 287 // Set up the prototype chain
288 __proto__: HTMLSelectElement.prototype, 288 __proto__: HTMLSelectElement.prototype,
289 289
290 /** 290 /**
291 * Initialization function for the cr.ui framework. 291 * Initialization function for the cr.ui framework.
292 */ 292 */
293 decorate: function() { 293 decorate: function() {
294 var self = this; 294 var self = this;
295 295
296 var values = self.getAttribute('data-values');
297 if (values) {
298 self.initializeValues(templateData[values]);
299 }
300
301 // Listen to pref changes. 296 // Listen to pref changes.
302 Preferences.getInstance().addEventListener(this.pref, 297 Preferences.getInstance().addEventListener(this.pref,
303 function(event) { 298 function(event) {
304 var value = event.value && event.value['value'] != undefined ? 299 var value = event.value && event.value['value'] != undefined ?
305 event.value['value'] : event.value; 300 event.value['value'] : event.value;
306 301
307 // Make sure |value| is a string, because the value is stored as a 302 // Make sure |value| is a string, because the value is stored as a
308 // string in the HTMLOptionElement. 303 // string in the HTMLOptionElement.
309 value = value.toString(); 304 value = value.toString();
310 305
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
346 var value = (option.value == 'true') ? true : false; 341 var value = (option.value == 'true') ? true : false;
347 Preferences.setBooleanPref(self.pref, value, self.metric); 342 Preferences.setBooleanPref(self.pref, value, self.metric);
348 break; 343 break;
349 case 'string': 344 case 'string':
350 Preferences.setStringPref(self.pref, 345 Preferences.setStringPref(self.pref,
351 self.options[self.selectedIndex].value, self.metric); 346 self.options[self.selectedIndex].value, self.metric);
352 break; 347 break;
353 } 348 }
354 }); 349 });
355 }, 350 },
356
357 /**
358 * Sets up options in select element.
359 * @param {Array} options List of option and their display text.
360 * Each element in the array is an array of length 2 which contains
361 * options value in the first element and display text in the second
362 * element. May be undefined.
363 *
364 * TODO(zelidrag): move this to that i18n template classes.
365 */
366 initializeValues: function(options) {
367 options.forEach(function (values) {
368 if (this.dataType == undefined)
369 this.dataType = typeof values[0];
370
371 this.appendChild(new Option(values[1], values[0]));
372 }, this);
373 }
374 }; 351 };
375 352
376 /** 353 /**
377 * The preference name. 354 * The preference name.
378 * @type {string} 355 * @type {string}
379 */ 356 */
380 cr.defineProperty(PrefSelect, 'pref', cr.PropertyKind.ATTR); 357 cr.defineProperty(PrefSelect, 'pref', cr.PropertyKind.ATTR);
381 358
382 /** 359 /**
383 * The user metric string. 360 * The user metric string.
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
447 PrefCheckbox: PrefCheckbox, 424 PrefCheckbox: PrefCheckbox,
448 PrefNumber: PrefNumber, 425 PrefNumber: PrefNumber,
449 PrefNumeric: PrefNumeric, 426 PrefNumeric: PrefNumeric,
450 PrefRadio: PrefRadio, 427 PrefRadio: PrefRadio,
451 PrefRange: PrefRange, 428 PrefRange: PrefRange,
452 PrefSelect: PrefSelect, 429 PrefSelect: PrefSelect,
453 PrefTextField: PrefTextField 430 PrefTextField: PrefTextField
454 }; 431 };
455 432
456 }); 433 });
OLDNEW
« no previous file with comments | « chrome/browser/resources/options/personal_options.js ('k') | chrome/browser/resources/shared/js/i18n_template.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698