OLD | NEW |
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.exportPath('options'); |
| 6 |
| 7 /** |
| 8 * @typedef {{Name: string, Type: string, servicePath: string}} |
| 9 */ |
| 10 options.PreferredNetwork; |
| 11 |
5 cr.define('options', function() { | 12 cr.define('options', function() { |
6 | 13 |
7 var Page = cr.ui.pageManager.Page; | 14 var Page = cr.ui.pageManager.Page; |
8 var PageManager = cr.ui.pageManager.PageManager; | 15 var PageManager = cr.ui.pageManager.PageManager; |
9 var ArrayDataModel = cr.ui.ArrayDataModel; | 16 var ArrayDataModel = cr.ui.ArrayDataModel; |
10 var DeletableItem = options.DeletableItem; | 17 var DeletableItem = options.DeletableItem; |
11 var DeletableItemList = options.DeletableItemList; | 18 var DeletableItemList = options.DeletableItemList; |
12 | 19 |
13 ///////////////////////////////////////////////////////////////////////////// | 20 ///////////////////////////////////////////////////////////////////////////// |
14 // NetworkPreferences class: | 21 // NetworkPreferences class: |
15 | 22 |
16 /** | 23 /** |
17 * Encapsulated handling of ChromeOS network preferences page. | 24 * Encapsulated handling of ChromeOS network preferences page. |
18 * @constructor | 25 * @constructor |
19 * @extends {cr.ui.pageManager.Page} | 26 * @extends {cr.ui.pageManager.Page} |
20 */ | 27 */ |
21 function PreferredNetworks(model) { | 28 function PreferredNetworks(model) { |
22 Page.call(this, 'preferredNetworksPage', null, 'preferredNetworksPage'); | 29 Page.call(this, 'preferredNetworksPage', '', 'preferredNetworksPage'); |
23 } | 30 } |
24 | 31 |
25 cr.addSingletonGetter(PreferredNetworks); | 32 cr.addSingletonGetter(PreferredNetworks); |
26 | 33 |
27 PreferredNetworks.prototype = { | 34 PreferredNetworks.prototype = { |
28 __proto__: Page.prototype, | 35 __proto__: Page.prototype, |
29 | 36 |
30 /** @override */ | 37 /** @override */ |
31 initializePage: function() { | 38 initializePage: function() { |
32 Page.prototype.initializePage.call(this); | 39 Page.prototype.initializePage.call(this); |
33 PreferredNetworkList.decorate($('remembered-network-list')); | 40 PreferredNetworkList.decorate($('remembered-network-list')); |
34 $('preferred-networks-confirm').onclick = | 41 $('preferred-networks-confirm').onclick = |
35 PageManager.closeOverlay.bind(PageManager); | 42 PageManager.closeOverlay.bind(PageManager); |
36 }, | 43 }, |
37 | 44 |
38 update: function(rememberedNetworks) { | 45 update: function(rememberedNetworks) { |
39 var list = $('remembered-network-list'); | 46 var list = $('remembered-network-list'); |
40 list.clear(); | 47 list.clear(); |
41 for (var i = 0; i < rememberedNetworks.length; i++) { | 48 for (var i = 0; i < rememberedNetworks.length; i++) { |
42 list.append(rememberedNetworks[i]); | 49 list.append(rememberedNetworks[i]); |
43 } | 50 } |
44 list.redraw(); | 51 list.redraw(); |
45 } | 52 } |
46 | 53 |
47 }; | 54 }; |
48 | 55 |
49 /** | 56 /** |
50 * Creates a list entry for a remembered network. | 57 * Creates a list entry for a remembered network. |
51 * @param {{Name: string, Type: string, servicePath: string}} data | 58 * @param {options.PreferredNetwork} data Description of the network. |
52 * Description of the network. | |
53 * @constructor | 59 * @constructor |
54 * @extends {options.DeletableItem} | 60 * @extends {options.DeletableItem} |
55 */ | 61 */ |
56 function PreferredNetworkListItem(data) { | 62 function PreferredNetworkListItem(data) { |
57 var el = cr.doc.createElement('div'); | 63 var el = cr.doc.createElement('div'); |
58 el.__proto__ = PreferredNetworkListItem.prototype; | 64 el.__proto__ = PreferredNetworkListItem.prototype; |
59 el.data = {}; | 65 el.data = {}; |
60 for (var key in data) | 66 for (var key in data) |
61 el.data[key] = data[key]; | 67 el.data[key] = data[key]; |
62 el.decorate(); | 68 el.decorate(); |
63 return el; | 69 return el; |
64 } | 70 } |
65 | 71 |
66 PreferredNetworkListItem.prototype = { | 72 PreferredNetworkListItem.prototype = { |
67 __proto__: DeletableItem.prototype, | 73 __proto__: DeletableItem.prototype, |
68 | 74 |
69 /** | 75 /** |
70 * Description of the network. | 76 * Description of the network. |
71 * @type {{Name: string, Type: string, servicePath: string}} | 77 * @type {?options.PreferredNetwork} |
72 */ | 78 */ |
73 data: null, | 79 data: null, |
74 | 80 |
75 /** @override */ | 81 /** @override */ |
76 decorate: function() { | 82 decorate: function() { |
77 DeletableItem.prototype.decorate.call(this); | 83 DeletableItem.prototype.decorate.call(this); |
78 var label = this.ownerDocument.createElement('div'); | 84 var label = this.ownerDocument.createElement('div'); |
79 label.textContent = this.data.Name; | 85 label.textContent = this.data.Name; |
80 if (this.data.policyManaged) | 86 if (this.data.policyManaged) |
81 this.deletable = false; | 87 this.deletable = false; |
(...skipping 19 matching lines...) Expand all Loading... |
101 }, | 107 }, |
102 | 108 |
103 /** | 109 /** |
104 * When the list loses focus, unselect all items in the list. | 110 * When the list loses focus, unselect all items in the list. |
105 * @private | 111 * @private |
106 */ | 112 */ |
107 onBlur_: function() { | 113 onBlur_: function() { |
108 this.selectionModel.unselectAll(); | 114 this.selectionModel.unselectAll(); |
109 }, | 115 }, |
110 | 116 |
111 /** @override */ | 117 /** |
| 118 * @override |
| 119 * @param {options.PreferredNetwork} entry |
| 120 */ |
112 createItem: function(entry) { | 121 createItem: function(entry) { |
113 return new PreferredNetworkListItem(entry); | 122 return new PreferredNetworkListItem(entry); |
114 }, | 123 }, |
115 | 124 |
116 /** @override */ | 125 /** @override */ |
117 deleteItemAtIndex: function(index) { | 126 deleteItemAtIndex: function(index) { |
118 var item = this.dataModel.item(index); | 127 var item = this.dataModel.item(index); |
119 if (item) { | 128 if (item) { |
120 // Inform the network library that we are forgetting this network. | 129 // Inform the network library that we are forgetting this network. |
121 chrome.send('networkCommand', | 130 chrome.send('networkCommand', |
(...skipping 11 matching lines...) Expand all Loading... |
133 /** | 142 /** |
134 * Purges all networks from the list. | 143 * Purges all networks from the list. |
135 */ | 144 */ |
136 clear: function() { | 145 clear: function() { |
137 this.dataModel = new ArrayDataModel([]); | 146 this.dataModel = new ArrayDataModel([]); |
138 this.redraw(); | 147 this.redraw(); |
139 }, | 148 }, |
140 | 149 |
141 /** | 150 /** |
142 * Adds a remembered network to the list. | 151 * Adds a remembered network to the list. |
143 * @param {{Name: string, Type: string, servicePath: string}} data | 152 * @param {options.PreferredNetwork} data Description of the network. |
144 * Description of the network. | |
145 */ | 153 */ |
146 append: function(data) { | 154 append: function(data) { |
147 this.dataModel.push(data); | 155 this.dataModel.push(data); |
148 } | 156 } |
149 }; | 157 }; |
150 | 158 |
151 // Export | 159 // Export |
152 return { | 160 return { |
153 PreferredNetworks: PreferredNetworks | 161 PreferredNetworks: PreferredNetworks |
154 }; | 162 }; |
155 | 163 |
156 }); | 164 }); |
OLD | NEW |