Index: chrome/browser/resources/bluetooth_internals/devices_page.js |
diff --git a/chrome/browser/resources/bluetooth_internals/devices_page.js b/chrome/browser/resources/bluetooth_internals/devices_page.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..4a3f7d4a9e4c36c0c59a513f29f9a53176223b3b |
--- /dev/null |
+++ b/chrome/browser/resources/bluetooth_internals/devices_page.js |
@@ -0,0 +1,75 @@ |
+// Copyright 2016 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+/** |
+ * Javascript for DevicesPage and DevicesView, served from |
+ * chrome://bluetooth-internals/. |
+ */ |
+ |
+cr.define('devices_page', function() { |
+ /** @const */ var Page = cr.ui.pageManager.Page; |
+ |
+ /** |
+ * Page that contains a header and a DevicesView. |
+ * @constructor |
+ * @extends {cr.ui.pageManager.Page} |
+ */ |
+ function DevicesPage() { |
+ var devicesHeaderTitle = 'Devices'; |
+ Page.call(this, 'devices', devicesHeaderTitle, 'devices'); |
+ this.pageDiv.appendChild(document.importNode($('page-template').content, |
ortuno
2016/12/05 05:45:28
Could we just have a single header and change its
mbrunson
2016/12/06 00:25:45
Done.
|
+ true /* deep */)); |
+ |
+ this.pageDiv.querySelector('.page-title').textContent = devicesHeaderTitle; |
+ this.pageDiv.querySelector('.menu-btn').addEventListener('click', |
+ function() { |
+ this.pageDiv.dispatchEvent(new CustomEvent('menupressed')); |
+ }.bind(this)); |
+ |
+ this.devicesView = new DevicesView(); |
+ this.pageDiv.querySelector('.page-content').appendChild(this.devicesView); |
+ } |
+ |
+ cr.addSingletonGetter(DevicesPage); |
ortuno
2016/12/05 05:45:28
Why use a singleton?
mbrunson
2016/12/06 00:25:45
Other internal pages that use PageManager tend to
|
+ |
+ DevicesPage.prototype = { |
+ __proto__: Page.prototype, |
+ |
+ /** |
+ * Sets the DevicesView's device collection. |
+ * @param {!device_collection.DeviceCollection} devices |
+ */ |
+ setDevices: function(devices) { |
+ this.devicesView.setDevices(devices); |
+ }, |
+ }; |
+ |
+ /** |
+ * An element that contains a device table and its associated controls. |
+ * @constructor |
+ * @extends {HTMLDivElement} |
+ */ |
+ var DevicesView = cr.ui.define('div'); |
+ |
+ DevicesView.prototype = { |
+ __proto__: HTMLDivElement.prototype, |
+ |
+ decorate: function() { |
+ this.deviceTable = new device_table.DeviceTable(); |
+ this.appendChild(this.deviceTable); |
ortuno
2016/12/05 05:45:28
I'm so sad that we can't use Custom Elements :(
mbrunson
2016/12/06 00:25:46
:'(
|
+ }, |
+ |
+ /** |
+ * Sets the device table's device collection. |
+ * @param {!device_collection.DeviceCollection} devices |
+ */ |
+ setDevices: function(devices) { |
+ this.deviceTable.setDevices(devices); |
+ }, |
+ }; |
+ |
+ return { |
+ DevicesPage: DevicesPage |
+ }; |
+}); |