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

Side by Side Diff: chrome/browser/resources/options2/chromeos/preferred_networks.js

Issue 10809005: Options: Rename chrome/browser/resources/options2 -> chrome/browser/resources/options. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix. Created 8 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
(Empty)
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
3 // found in the LICENSE file.
4
5 cr.define('options', function() {
6
7 var OptionsPage = options.OptionsPage;
8 var ArrayDataModel = cr.ui.ArrayDataModel;
9 var DeletableItem = options.DeletableItem;
10 var DeletableItemList = options.DeletableItemList;
11
12 /////////////////////////////////////////////////////////////////////////////
13 // NetworkPreferences class:
14
15 /**
16 * Encapsulated handling of ChromeOS network preferences page.
17 * @constructor
18 */
19 function PreferredNetworks(model) {
20 OptionsPage.call(this,
21 'preferredNetworksPage',
22 null,
23 'preferredNetworksPage');
24 }
25
26 cr.addSingletonGetter(PreferredNetworks);
27
28 PreferredNetworks.prototype = {
29 __proto__: OptionsPage.prototype,
30
31 /**
32 * Initializes the preferred networks page.
33 */
34 initializePage: function() {
35 OptionsPage.prototype.initializePage.call(this);
36 PreferredNetworkList.decorate($('remembered-network-list'));
37 $('preferred-networks-confirm').onclick =
38 OptionsPage.closeOverlay.bind(OptionsPage);
39 },
40
41 update: function(rememberedNetworks) {
42 var list = $('remembered-network-list');
43 list.clear();
44 for (var i = 0; i < rememberedNetworks.length; i++) {
45 list.append(rememberedNetworks[i]);
46 }
47 list.redraw();
48 }
49
50 };
51
52 /**
53 * Creates a list entry for a remembered network.
54 * @param{{networkName: string,
55 networkType: string,
56 servicePath: string}} data
57 * Description of the network.
58 * @constructor
59 */
60 function PreferredNetworkListItem(data) {
61 var el = cr.doc.createElement('div');
62 el.__proto__ = PreferredNetworkListItem.prototype;
63 el.data = {};
64 for (var key in data)
65 el.data[key] = data[key];
66 el.decorate();
67 return el;
68 }
69
70 PreferredNetworkListItem.prototype = {
71 __proto__: DeletableItem.prototype,
72
73 /**
74 * Description of the network.
75 * @type {{networkName: string,
76 * networkType: string,
77 * servicePath: string}}
78 */
79 data: null,
80
81 /** @inheritDoc */
82 decorate: function() {
83 DeletableItem.prototype.decorate.call(this);
84 var label = this.ownerDocument.createElement('div');
85 label.textContent = this.data.networkName;
86 if (this.data.policyManaged)
87 this.deletable = false;
88 this.contentElement.appendChild(label);
89 }
90 };
91
92 /**
93 * Class for displaying a list of preferred networks.
94 * @constructor
95 * @extends {options.DeletableItemList}
96 */
97 var PreferredNetworkList = cr.ui.define('list');
98
99 PreferredNetworkList.prototype = {
100 __proto__: DeletableItemList.prototype,
101
102 /** @inheritDoc */
103 decorate: function() {
104 DeletableItemList.prototype.decorate.call(this);
105 this.addEventListener('blur', this.onBlur_);
106 this.clear();
107 },
108
109 /**
110 * When the list loses focus, unselect all items in the list.
111 * @private
112 */
113 onBlur_: function() {
114 this.selectionModel.unselectAll();
115 },
116
117 /** @inheritDoc */
118 createItem: function(entry) {
119 return new PreferredNetworkListItem(entry);
120 },
121
122 /** @inheritDoc */
123 deleteItemAtIndex: function(index) {
124 var item = this.dataModel.item(index);
125 if (item) {
126 // Inform the network library that we are forgetting this network.
127 chrome.send('networkCommand',
128 [String(item.networkType),
129 item.servicePath,
130 'forget']);
131 }
132 this.dataModel.splice(index, 1);
133 // Invalidate the list since it has a stale cache after a splice
134 // involving a deletion.
135 this.invalidate();
136 this.redraw();
137 },
138
139 /**
140 * Purges all networks from the list.
141 */
142 clear: function() {
143 this.dataModel = new ArrayDataModel([]);
144 this.redraw();
145 },
146
147 /**
148 * Adds a remembered network to the list.
149 * @param {{networkName: string,
150 networkType: string,
151 servicePath: string} data
152 * Description of the network.
153 */
154 append: function(data) {
155 this.dataModel.push(data);
156 }
157 };
158
159 // Export
160 return {
161 PreferredNetworks: PreferredNetworks
162 };
163
164 });
165
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698