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

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

Issue 559423003: Compile chrome://settings, part 7. 33 errors left (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@H_options_errors_5
Patch Set: rebase Created 6 years, 3 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 /** @const */ var ArrayDataModel = cr.ui.ArrayDataModel; 6 /** @const */ var ArrayDataModel = cr.ui.ArrayDataModel;
7 /** @const */ var DeletableItem = options.DeletableItem; 7 /** @const */ var DeletableItem = options.DeletableItem;
8 /** @const */ var DeletableItemList = options.DeletableItemList; 8 /** @const */ var DeletableItemList = options.DeletableItemList;
9 /** @const */ var List = cr.ui.List; 9 /** @const */ var List = cr.ui.List;
10 /** @const */ var ListItem = cr.ui.ListItem; 10 /** @const */ var ListItem = cr.ui.ListItem;
11 /** @const */ var ListSingleSelectionModel = cr.ui.ListSingleSelectionModel; 11 /** @const */ var ListSingleSelectionModel = cr.ui.ListSingleSelectionModel;
12 12
13 /** 13 /**
14 * Creates a new Language list item. 14 * Creates a new Language list item.
15 * @param {Object} languageInfo The information of the language. 15 * @param {Object} languageInfo The information of the language.
16 * @constructor 16 * @constructor
17 * @extends {options.DeletableItem.ListItem} 17 * @extends {options.DeletableItem}
18 */ 18 */
19 function LanguageListItem(languageInfo) { 19 function LanguageListItem(languageInfo) {
20 var el = cr.doc.createElement('li'); 20 var el = cr.doc.createElement('li');
21 el.__proto__ = LanguageListItem.prototype; 21 el.__proto__ = LanguageListItem.prototype;
22 el.language_ = languageInfo; 22 el.language_ = languageInfo;
23 el.decorate(); 23 el.decorate();
24 return el; 24 return el;
25 }; 25 };
26 26
27 LanguageListItem.prototype = { 27 LanguageListItem.prototype = {
28 __proto__: DeletableItem.prototype, 28 __proto__: DeletableItem.prototype,
29 29
30 /** 30 /**
31 * The language code of this language. 31 * The language code of this language.
32 * @type {string} 32 * @type {?string}
33 * @private 33 * @private
34 */ 34 */
35 languageCode_: null, 35 languageCode_: null,
36 36
37 /** @override */ 37 /** @override */
38 decorate: function() { 38 decorate: function() {
39 DeletableItem.prototype.decorate.call(this); 39 DeletableItem.prototype.decorate.call(this);
40 40
41 var languageCode = this.language_.code; 41 var languageCode = this.language_.code;
42 var languageOptions = options.LanguageOptions.getInstance(); 42 var languageOptions = options.LanguageOptions.getInstance();
43 this.deletable = languageOptions.languageIsDeletable(languageCode); 43 this.deletable = languageOptions.languageIsDeletable(languageCode);
44 this.languageCode = languageCode; 44 this.languageCode = languageCode;
45 this.languageName = cr.doc.createElement('div'); 45 this.languageName = cr.doc.createElement('div');
46 this.languageName.className = 'language-name'; 46 this.languageName.className = 'language-name';
47 this.languageName.dir = this.language_.textDirection; 47 this.languageName.dir = this.language_.textDirection;
48 this.languageName.textContent = this.language_.displayName; 48 this.languageName.textContent = this.language_.displayName;
49 this.contentElement.appendChild(this.languageName); 49 this.contentElement.appendChild(this.languageName);
50 this.title = this.language_.nativeDisplayName; 50 this.title = this.language_.nativeDisplayName;
51 this.draggable = true; 51 this.draggable = true;
52 }, 52 },
53 }; 53 };
54 54
55 /** 55 /**
56 * Creates a new language list. 56 * Creates a new language list.
57 * @param {Object=} opt_propertyBag Optional properties. 57 * @param {Object=} opt_propertyBag Optional properties.
58 * @constructor 58 * @constructor
59 * @extends {cr.ui.List} 59 * @extends {options.DeletableItemList}
60 */ 60 */
61 var LanguageList = cr.ui.define('list'); 61 var LanguageList = cr.ui.define('list');
62 62
63 /** 63 /**
64 * Gets information of a language from the given language code. 64 * Gets information of a language from the given language code.
65 * @param {string} languageCode Language code (ex. "fr"). 65 * @param {string} languageCode Language code (ex. "fr").
66 */ 66 */
67 LanguageList.getLanguageInfoFromLanguageCode = function(languageCode) { 67 LanguageList.getLanguageInfoFromLanguageCode = function(languageCode) {
68 // Build the language code to language info dictionary at first time. 68 // Build the language code to language info dictionary at first time.
69 if (!this.languageCodeToLanguageInfo_) { 69 if (!this.languageCodeToLanguageInfo_) {
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
125 } 125 }
126 126
127 // Listen to drag and drop events. 127 // Listen to drag and drop events.
128 this.addEventListener('dragstart', this.handleDragStart_.bind(this)); 128 this.addEventListener('dragstart', this.handleDragStart_.bind(this));
129 this.addEventListener('dragenter', this.handleDragEnter_.bind(this)); 129 this.addEventListener('dragenter', this.handleDragEnter_.bind(this));
130 this.addEventListener('dragover', this.handleDragOver_.bind(this)); 130 this.addEventListener('dragover', this.handleDragOver_.bind(this));
131 this.addEventListener('drop', this.handleDrop_.bind(this)); 131 this.addEventListener('drop', this.handleDrop_.bind(this));
132 this.addEventListener('dragleave', this.handleDragLeave_.bind(this)); 132 this.addEventListener('dragleave', this.handleDragLeave_.bind(this));
133 }, 133 },
134 134
135 /**
136 * @override
137 * @param {string} languageCode
138 */
135 createItem: function(languageCode) { 139 createItem: function(languageCode) {
136 languageInfo = LanguageList.getLanguageInfoFromLanguageCode(languageCode); 140 var languageInfo =
141 LanguageList.getLanguageInfoFromLanguageCode(languageCode);
137 return new LanguageListItem(languageInfo); 142 return new LanguageListItem(languageInfo);
138 }, 143 },
139 144
140 /* 145 /*
141 * For each item, determines whether it's deletable. 146 * For each item, determines whether it's deletable.
142 */ 147 */
143 updateDeletable: function() { 148 updateDeletable: function() {
144 var items = this.items; 149 var items = this.items;
145 for (var i = 0; i < items.length; ++i) { 150 for (var i = 0; i < items.length; ++i) {
146 var item = items[i]; 151 var item = items[i];
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after
372 */ 377 */
373 handleAcceptLanguagesPrefChange_: function(e) { 378 handleAcceptLanguagesPrefChange_: function(e) {
374 var languageCodesInCsv = e.value.value; 379 var languageCodesInCsv = e.value.value;
375 var languageCodes = this.filterBadLanguageCodes_( 380 var languageCodes = this.filterBadLanguageCodes_(
376 languageCodesInCsv.split(',')); 381 languageCodesInCsv.split(','));
377 this.load_(languageCodes); 382 this.load_(languageCodes);
378 }, 383 },
379 384
380 /** 385 /**
381 * Loads given language list. 386 * Loads given language list.
382 * @param {Array} languageCodes List of language codes. 387 * @param {!Array} languageCodes List of language codes.
383 * @private 388 * @private
384 */ 389 */
385 load_: function(languageCodes) { 390 load_: function(languageCodes) {
386 // Preserve the original selected index. See comments below. 391 // Preserve the original selected index. See comments below.
387 var originalSelectedIndex = (this.selectionModel ? 392 var originalSelectedIndex = (this.selectionModel ?
388 this.selectionModel.selectedIndex : -1); 393 this.selectionModel.selectedIndex : -1);
389 this.dataModel = new ArrayDataModel(languageCodes); 394 this.dataModel = new ArrayDataModel(languageCodes);
390 if (originalSelectedIndex >= 0 && 395 if (originalSelectedIndex >= 0 &&
391 originalSelectedIndex < this.dataModel.length) { 396 originalSelectedIndex < this.dataModel.length) {
392 // Restore the original selected index if the selected index is 397 // Restore the original selected index if the selected index is
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
431 } 436 }
432 return filteredLanguageCodes; 437 return filteredLanguageCodes;
433 }, 438 },
434 }; 439 };
435 440
436 return { 441 return {
437 LanguageList: LanguageList, 442 LanguageList: LanguageList,
438 LanguageListItem: LanguageListItem 443 LanguageListItem: LanguageListItem
439 }; 444 };
440 }); 445 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698