| 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 const OptionsPage = options.OptionsPage; | 6 const OptionsPage = options.OptionsPage; |
| 7 const ArrayDataModel = cr.ui.ArrayDataModel; | 7 const ArrayDataModel = cr.ui.ArrayDataModel; |
| 8 const ListSingleSelectionModel = cr.ui.ListSingleSelectionModel; | 8 const ListSingleSelectionModel = cr.ui.ListSingleSelectionModel; |
| 9 | 9 |
| 10 /** | 10 /** |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 list_: null, | 25 list_: null, |
| 26 | 26 |
| 27 initializePage: function() { | 27 initializePage: function() { |
| 28 OptionsPage.prototype.initializePage.call(this); | 28 OptionsPage.prototype.initializePage.call(this); |
| 29 | 29 |
| 30 this.list_ = $('searchEngineList') | 30 this.list_ = $('searchEngineList') |
| 31 options.search_engines.SearchEngineList.decorate(this.list_); | 31 options.search_engines.SearchEngineList.decorate(this.list_); |
| 32 var selectionModel = new ListSingleSelectionModel; | 32 var selectionModel = new ListSingleSelectionModel; |
| 33 this.list_.selectionModel = selectionModel; | 33 this.list_.selectionModel = selectionModel; |
| 34 this.list_.autoExpands = true; | 34 this.list_.autoExpands = true; |
| 35 | |
| 36 selectionModel.addEventListener('change', | |
| 37 this.selectionChanged_.bind(this)); | |
| 38 | |
| 39 var self = this; | |
| 40 // This is a temporary hack to allow the "Make Default" button to | |
| 41 // continue working despite the new list behavior of removing selection | |
| 42 // on focus loss. | |
| 43 // Once drag-and-drop is supported, so items can be moved into the default | |
| 44 // section, this button will go away entirely. | |
| 45 $('makeDefaultSearchEngineButton').onmousedown = function(event) { | |
| 46 self.pendingDefaultEngine_ = self.list_.selectedItem; | |
| 47 }; | |
| 48 $('makeDefaultSearchEngineButton').onclick = function(event) { | |
| 49 chrome.send('managerSetDefaultSearchEngine', | |
| 50 [self.pendingDefaultEngine_['modelIndex']]); | |
| 51 self.pendingDefaultEngine_ = null; | |
| 52 }; | |
| 53 }, | 35 }, |
| 54 | 36 |
| 55 /** | 37 /** |
| 56 * Updates the search engine list with the given entries. | 38 * Updates the search engine list with the given entries. |
| 57 * @private | 39 * @private |
| 58 * @param {Array} engineList List of available search engines. | 40 * @param {Array} engineList List of available search engines. |
| 59 */ | 41 */ |
| 60 updateSearchEngineList_: function(engineList) { | 42 updateSearchEngineList_: function(engineList) { |
| 61 var model = new ArrayDataModel(engineList); | 43 var model = new ArrayDataModel(engineList); |
| 62 model.push({ | 44 model.push({ |
| 63 'modelIndex': '-1' | 45 'modelIndex': '-1' |
| 64 }); | 46 }); |
| 65 this.list_.dataModel = model; | 47 this.list_.dataModel = model; |
| 66 }, | 48 }, |
| 67 | |
| 68 /** | |
| 69 * Callback from the selection model when the selection changes. | |
| 70 * @private | |
| 71 * @param {!cr.Event} e Event with change info. | |
| 72 */ | |
| 73 selectionChanged_: function(e) { | |
| 74 var engine = this.list_.selectedItem || this.pendingDefaultEngine_; | |
| 75 $('makeDefaultSearchEngineButton').disabled = | |
| 76 !(engine && engine['canBeDefault']); | |
| 77 }, | |
| 78 }; | 49 }; |
| 79 | 50 |
| 80 SearchEngineManager.updateSearchEngineList = function(engineList) { | 51 SearchEngineManager.updateSearchEngineList = function(engineList) { |
| 81 SearchEngineManager.getInstance().updateSearchEngineList_(engineList); | 52 SearchEngineManager.getInstance().updateSearchEngineList_(engineList); |
| 82 }; | 53 }; |
| 83 | 54 |
| 84 SearchEngineManager.validityCheckCallback = function(validity, modelIndex) { | 55 SearchEngineManager.validityCheckCallback = function(validity, modelIndex) { |
| 85 SearchEngineManager.getInstance().list_.validationComplete(validity, | 56 SearchEngineManager.getInstance().list_.validationComplete(validity, |
| 86 modelIndex); | 57 modelIndex); |
| 87 }; | 58 }; |
| 88 | 59 |
| 89 // Export | 60 // Export |
| 90 return { | 61 return { |
| 91 SearchEngineManager: SearchEngineManager | 62 SearchEngineManager: SearchEngineManager |
| 92 }; | 63 }; |
| 93 | 64 |
| 94 }); | 65 }); |
| 95 | 66 |
| OLD | NEW |