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

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

Issue 410293004: Split OptionsPage into Page and PageManager (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: s/PageTree/PageManager/, s/pageHelper/pageManager/ Created 6 years, 4 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) 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 // TODO(kochi): Generalize the notification as a component and put it 5 // TODO(kochi): Generalize the notification as a component and put it
6 // in js/cr/ui/notification.js . 6 // in js/cr/ui/notification.js .
7 7
8 cr.define('options', function() { 8 cr.define('options', function() {
9 /** @const */ var OptionsPage = options.OptionsPage; 9 /** @const */ var Page = cr.ui.pageManager.Page;
10 /** @const */ var PageManager = cr.ui.pageManager.PageManager;
10 /** @const */ var LanguageList = options.LanguageList; 11 /** @const */ var LanguageList = options.LanguageList;
11 /** @const */ var ThirdPartyImeConfirmOverlay = 12 /** @const */ var ThirdPartyImeConfirmOverlay =
12 options.ThirdPartyImeConfirmOverlay; 13 options.ThirdPartyImeConfirmOverlay;
13 14
14 /** 15 /**
15 * Spell check dictionary download status. 16 * Spell check dictionary download status.
16 * @type {Enum} 17 * @type {Enum}
17 */ 18 */
18 /** @const*/ var DOWNLOAD_STATUS = { 19 /** @const*/ var DOWNLOAD_STATUS = {
19 IN_PROGRESS: 1, 20 IN_PROGRESS: 1,
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 var ENABLE_TRANSLATE = 'translate.enabled'; 67 var ENABLE_TRANSLATE = 'translate.enabled';
67 68
68 ///////////////////////////////////////////////////////////////////////////// 69 /////////////////////////////////////////////////////////////////////////////
69 // LanguageOptions class: 70 // LanguageOptions class:
70 71
71 /** 72 /**
72 * Encapsulated handling of ChromeOS language options page. 73 * Encapsulated handling of ChromeOS language options page.
73 * @constructor 74 * @constructor
74 */ 75 */
75 function LanguageOptions(model) { 76 function LanguageOptions(model) {
76 OptionsPage.call(this, 'languages', 77 Page.call(this, 'languages',
77 loadTimeData.getString('languagePageTabTitle'), 78 loadTimeData.getString('languagePageTabTitle'), 'languagePage');
78 'languagePage');
79 } 79 }
80 80
81 cr.addSingletonGetter(LanguageOptions); 81 cr.addSingletonGetter(LanguageOptions);
82 82
83 // Inherit LanguageOptions from OptionsPage. 83 // Inherit LanguageOptions from Page.
84 LanguageOptions.prototype = { 84 LanguageOptions.prototype = {
85 __proto__: OptionsPage.prototype, 85 __proto__: Page.prototype,
86 86
87 /* For recording the prospective language (the next locale after relaunch). 87 /* For recording the prospective language (the next locale after relaunch).
88 * @type {?string} 88 * @type {?string}
89 * @private 89 * @private
90 */ 90 */
91 prospectiveUiLanguageCode_: null, 91 prospectiveUiLanguageCode_: null,
92 92
93 /* 93 /*
94 * Map from language code to spell check dictionary download status for that 94 * Map from language code to spell check dictionary download status for that
95 * language. 95 * language.
(...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 151
152 /** 152 /**
153 * The value that indicates if Translate feature is enabled or not. 153 * The value that indicates if Translate feature is enabled or not.
154 * @type {boolean} 154 * @type {boolean}
155 * @private 155 * @private
156 */ 156 */
157 enableTranslate_: false, 157 enableTranslate_: false,
158 158
159 /** 159 /**
160 * Initializes LanguageOptions page. 160 * Initializes LanguageOptions page.
161 * Calls base class implementation to start preference initialization.
162 */ 161 */
163 initializePage: function() { 162 initializePage: function() {
164 OptionsPage.prototype.initializePage.call(this); 163 Page.prototype.initializePage.call(this);
165 164
166 var languageOptionsList = $('language-options-list'); 165 var languageOptionsList = $('language-options-list');
167 LanguageList.decorate(languageOptionsList); 166 LanguageList.decorate(languageOptionsList);
168 167
169 languageOptionsList.addEventListener('change', 168 languageOptionsList.addEventListener('change',
170 this.handleLanguageOptionsListChange_.bind(this)); 169 this.handleLanguageOptionsListChange_.bind(this));
171 languageOptionsList.addEventListener('save', 170 languageOptionsList.addEventListener('save',
172 this.handleLanguageOptionsListSave_.bind(this)); 171 this.handleLanguageOptionsListSave_.bind(this));
173 172
174 this.prospectiveUiLanguageCode_ = 173 this.prospectiveUiLanguageCode_ =
(...skipping 23 matching lines...) Expand all
198 // Set up add button. 197 // Set up add button.
199 $('language-options-add-button').onclick = function(e) { 198 $('language-options-add-button').onclick = function(e) {
200 // Add the language without showing the overlay if it's specified in 199 // Add the language without showing the overlay if it's specified in
201 // the URL hash (ex. lang_add=ja). Used for automated testing. 200 // the URL hash (ex. lang_add=ja). Used for automated testing.
202 var match = document.location.hash.match(/\blang_add=([\w-]+)/); 201 var match = document.location.hash.match(/\blang_add=([\w-]+)/);
203 if (match) { 202 if (match) {
204 var addLanguageCode = match[1]; 203 var addLanguageCode = match[1];
205 $('language-options-list').addLanguage(addLanguageCode); 204 $('language-options-list').addLanguage(addLanguageCode);
206 this.addBlockedLanguage_(addLanguageCode); 205 this.addBlockedLanguage_(addLanguageCode);
207 } else { 206 } else {
208 OptionsPage.navigateToPage('addLanguage'); 207 PageManager.navigateToPage('addLanguage');
209 } 208 }
210 }.bind(this); 209 }.bind(this);
211 210
212 if (!cr.isMac) { 211 if (!cr.isMac) {
213 // Set up the button for editing custom spelling dictionary. 212 // Set up the button for editing custom spelling dictionary.
214 $('edit-dictionary-button').onclick = function(e) { 213 $('edit-dictionary-button').onclick = function(e) {
215 OptionsPage.navigateToPage('editDictionary'); 214 PageManager.navigateToPage('editDictionary');
216 }; 215 };
217 $('dictionary-download-retry-button').onclick = function(e) { 216 $('dictionary-download-retry-button').onclick = function(e) {
218 chrome.send('retryDictionaryDownload'); 217 chrome.send('retryDictionaryDownload');
219 }; 218 };
220 } 219 }
221 220
222 // Listen to add language dialog ok button. 221 // Listen to add language dialog ok button.
223 $('add-language-overlay-ok-button').addEventListener( 222 $('add-language-overlay-ok-button').addEventListener(
224 'click', this.handleAddLanguageOkButtonClick_.bind(this)); 223 'click', this.handleAddLanguageOkButtonClick_.bind(this));
225 224
(...skipping 19 matching lines...) Expand all
245 this.handleSpellCheckLanguageButtonClick_.bind(this)); 244 this.handleSpellCheckLanguageButtonClick_.bind(this));
246 } 245 }
247 246
248 if (cr.isChromeOS) { 247 if (cr.isChromeOS) {
249 $('language-options-ui-restart-button').onclick = function() { 248 $('language-options-ui-restart-button').onclick = function() {
250 chrome.send('uiLanguageRestart'); 249 chrome.send('uiLanguageRestart');
251 }; 250 };
252 } 251 }
253 252
254 $('language-confirm').onclick = 253 $('language-confirm').onclick =
255 OptionsPage.closeOverlay.bind(OptionsPage); 254 PageManager.closeOverlay.bind(PageManager);
256 255
257 // Public session users cannot change the locale. 256 // Public session users cannot change the locale.
258 if (cr.isChromeOS && UIAccountTweaks.loggedInAsPublicAccount()) 257 if (cr.isChromeOS && UIAccountTweaks.loggedInAsPublicAccount())
259 $('language-options-ui-language-section').hidden = true; 258 $('language-options-ui-language-section').hidden = true;
259 PageManager.closeOverlay.bind(PageManager);
260 }, 260 },
261 261
262 /** 262 /**
263 * Initializes the input method list. 263 * Initializes the input method list.
264 */ 264 */
265 initializeInputMethodList_: function() { 265 initializeInputMethodList_: function() {
266 var inputMethodList = $('language-options-input-method-list'); 266 var inputMethodList = $('language-options-input-method-list');
267 var inputMethodPrototype = $('language-options-input-method-template'); 267 var inputMethodPrototype = $('language-options-input-method-template');
268 268
269 // Add all input methods, but make all of them invisible here. We'll 269 // Add all input methods, but make all of them invisible here. We'll
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
375 this.translateBlockedLanguages_.filter( 375 this.translateBlockedLanguages_.filter(
376 function(langCodeNotTranslated) { 376 function(langCodeNotTranslated) {
377 return langCodeNotTranslated != langCode; 377 return langCodeNotTranslated != langCode;
378 }); 378 });
379 Preferences.setListPref(TRANSLATE_BLOCKED_LANGUAGES_PREF, 379 Preferences.setListPref(TRANSLATE_BLOCKED_LANGUAGES_PREF,
380 this.translateBlockedLanguages_, true); 380 this.translateBlockedLanguages_, true);
381 } 381 }
382 }, 382 },
383 383
384 /** 384 /**
385 * Handles OptionsPage's visible property change event. 385 * Handles Page's visible property change event.
386 * @param {Event} e Property change event. 386 * @param {Event} e Property change event.
387 * @private 387 * @private
388 */ 388 */
389 handleVisibleChange_: function(e) { 389 handleVisibleChange_: function(e) {
390 if (this.visible) { 390 if (this.visible) {
391 $('language-options-list').redraw(); 391 $('language-options-list').redraw();
392 chrome.send('languageOptionsOpen'); 392 chrome.send('languageOptionsOpen');
393 } 393 }
394 }, 394 },
395 395
(...skipping 488 matching lines...) Expand 10 before | Expand all | Expand 10 after
884 * @private 884 * @private
885 */ 885 */
886 handleAddLanguageOkButtonClick_: function(e) { 886 handleAddLanguageOkButtonClick_: function(e) {
887 var languagesSelect = $('add-language-overlay-language-list'); 887 var languagesSelect = $('add-language-overlay-language-list');
888 var selectedIndex = languagesSelect.selectedIndex; 888 var selectedIndex = languagesSelect.selectedIndex;
889 if (selectedIndex >= 0) { 889 if (selectedIndex >= 0) {
890 var selection = languagesSelect.options[selectedIndex]; 890 var selection = languagesSelect.options[selectedIndex];
891 var langCode = String(selection.value); 891 var langCode = String(selection.value);
892 $('language-options-list').addLanguage(langCode); 892 $('language-options-list').addLanguage(langCode);
893 this.addBlockedLanguage_(langCode); 893 this.addBlockedLanguage_(langCode);
894 OptionsPage.closeOverlay(); 894 PageManager.closeOverlay();
895 } 895 }
896 }, 896 },
897 897
898 /** 898 /**
899 * Checks if languageCode is deletable or not. 899 * Checks if languageCode is deletable or not.
900 * @param {string} languageCode the languageCode to check for deletability. 900 * @param {string} languageCode the languageCode to check for deletability.
901 */ 901 */
902 languageIsDeletable: function(languageCode) { 902 languageIsDeletable: function(languageCode) {
903 // Don't allow removing the language if it's a UI language. 903 // Don't allow removing the language if it's a UI language.
904 if (languageCode == this.prospectiveUiLanguageCode_) 904 if (languageCode == this.prospectiveUiLanguageCode_)
(...skipping 455 matching lines...) Expand 10 before | Expand all | Expand 10 after
1360 1360
1361 LanguageOptions.onComponentManagerInitialized = function(componentImes) { 1361 LanguageOptions.onComponentManagerInitialized = function(componentImes) {
1362 LanguageOptions.getInstance().appendComponentExtensionIme_(componentImes); 1362 LanguageOptions.getInstance().appendComponentExtensionIme_(componentImes);
1363 }; 1363 };
1364 1364
1365 // Export 1365 // Export
1366 return { 1366 return {
1367 LanguageOptions: LanguageOptions 1367 LanguageOptions: LanguageOptions
1368 }; 1368 };
1369 }); 1369 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698