OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 /** | 5 /** |
6 * @fileoverview Polymer element for displaying the network state for a specific | 6 * @fileoverview Polymer element for displaying the network state for a specific |
7 * type and a list of networks for that type. | 7 * type and a list of networks for that type. |
8 */ | 8 */ |
9 | 9 |
10 /** @typedef {chrome.networkingPrivate.DeviceStateProperties} */ | 10 /** @typedef {chrome.networkingPrivate.DeviceStateProperties} */ |
11 var DeviceStateProperties; | 11 var DeviceStateProperties; |
12 | 12 |
13 Polymer({ | 13 Polymer({ |
14 is: 'network-summary-item', | 14 is: 'network-summary-item', |
15 | 15 |
16 properties: { | 16 properties: { |
17 /** | 17 /** The expanded state of the list of networks. */ |
18 * True if the list is expanded. | |
19 */ | |
20 expanded: { | 18 expanded: { |
21 type: Boolean, | 19 type: Boolean, |
22 value: false, | 20 value: false, |
23 observer: 'expandedChanged_', | 21 observer: 'expandedChanged_', |
24 }, | 22 }, |
25 | 23 |
26 /** | 24 /** |
| 25 * Whether the list has been expanded. This is used to ensure the |
| 26 * iron-collapse section animates correctly. |
| 27 */ |
| 28 wasExpanded: { |
| 29 type: Boolean, |
| 30 value: false, |
| 31 }, |
| 32 |
| 33 /** |
27 * The maximum height in pixels for the list of networks. | 34 * The maximum height in pixels for the list of networks. |
28 */ | 35 */ |
29 maxHeight: { | 36 maxHeight: { |
30 type: Number, | 37 type: Number, |
31 value: 200, | 38 value: 200, |
32 }, | 39 }, |
33 | 40 |
34 /** | 41 /** |
35 * Device state for the network type. | 42 * Device state for the network type. |
36 * @type {DeviceStateProperties|undefined} | 43 * @type {DeviceStateProperties|undefined} |
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
94 /** | 101 /** |
95 * @param {DeviceStateProperties|undefined} deviceState | 102 * @param {DeviceStateProperties|undefined} deviceState |
96 * @return {boolean} Whether or not the device state is enabled. | 103 * @return {boolean} Whether or not the device state is enabled. |
97 * @private | 104 * @private |
98 */ | 105 */ |
99 deviceIsEnabled_: function(deviceState) { | 106 deviceIsEnabled_: function(deviceState) { |
100 return !!deviceState && deviceState.State == 'Enabled'; | 107 return !!deviceState && deviceState.State == 'Enabled'; |
101 }, | 108 }, |
102 | 109 |
103 /** | 110 /** |
| 111 * @return {boolean} Whether the dom-if for the network list should be true. |
| 112 * The logic here is designed to allow the enclosed content to be stamped |
| 113 * before it is expanded. |
| 114 * @private |
| 115 */ |
| 116 networksDomIfIsTrue_() { |
| 117 if (this.expanded == this.wasExpanded) |
| 118 return this.expanded; |
| 119 if (this.expanded) { |
| 120 Polymer.RenderStatus.afterNextRender(this, function() { |
| 121 this.wasExpanded = true; |
| 122 }.bind(this)); |
| 123 return true; |
| 124 } |
| 125 return this.wasExpanded; |
| 126 }, |
| 127 |
| 128 /** |
| 129 * @return {boolean} Whether the iron-collapse for the network list should |
| 130 * be opened. |
| 131 * @private |
| 132 */ |
| 133 networksIronCollapseIsOpened_() { |
| 134 return this.expanded && this.wasExpanded; |
| 135 }, |
| 136 |
| 137 /** |
104 * @param {DeviceStateProperties} deviceState | 138 * @param {DeviceStateProperties} deviceState |
105 * @return {boolean} | 139 * @return {boolean} |
106 * @private | 140 * @private |
107 */ | 141 */ |
108 enableIsVisible_: function(deviceState) { | 142 enableIsVisible_: function(deviceState) { |
109 return !!deviceState && deviceState.Type != CrOnc.Type.ETHERNET && | 143 return !!deviceState && deviceState.Type != CrOnc.Type.ETHERNET && |
110 deviceState.Type != CrOnc.Type.VPN; | 144 deviceState.Type != CrOnc.Type.VPN; |
111 }, | 145 }, |
112 | 146 |
113 /** | 147 /** |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
176 | 210 |
177 /** | 211 /** |
178 * Called whenever the 'selectable' state might change. | 212 * Called whenever the 'selectable' state might change. |
179 * @private | 213 * @private |
180 */ | 214 */ |
181 updateSelectable_: function() { | 215 updateSelectable_: function() { |
182 var selectable = this.deviceIsEnabled_(this.deviceState); | 216 var selectable = this.deviceIsEnabled_(this.deviceState); |
183 this.$.details.classList.toggle('selectable', selectable); | 217 this.$.details.classList.toggle('selectable', selectable); |
184 }, | 218 }, |
185 }); | 219 }); |
OLD | NEW |