OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 * @implements {SDK.SDKModelObserver<!SDK.DebuggerModel>} | 5 * @implements {SDK.SDKModelObserver<!SDK.DebuggerModel>} |
6 * @implements {UI.ListDelegate<!SDK.DebuggerModel>} | 6 * @implements {UI.ListDelegate<!SDK.DebuggerModel>} |
7 */ | 7 */ |
8 Sources.ThreadsSidebarPane = class extends UI.VBox { | 8 Sources.ThreadsSidebarPane = class extends UI.VBox { |
9 constructor() { | 9 constructor() { |
10 super(true); | 10 super(true); |
11 this.registerRequiredCSS('sources/threadsSidebarPane.css'); | 11 this.registerRequiredCSS('sources/threadsSidebarPane.css'); |
12 | 12 |
13 /** @type {!UI.ListControl<!SDK.DebuggerModel>} */ | 13 /** @type {!UI.ListControl<!SDK.DebuggerModel>} */ |
14 this._list = new UI.ListControl(this, UI.ListMode.NonViewport); | 14 this._list = new UI.ListControl(this, UI.ListMode.NonViewport); |
15 this.contentElement.appendChild(this._list.element); | 15 this.contentElement.appendChild(this._list.element); |
16 | 16 |
17 this._availableNodeTargetsElement = this.contentElement.createChild('div', '
hidden available-node-targets'); | |
18 | |
19 UI.context.addFlavorChangeListener(SDK.Target, this._targetFlavorChanged, th
is); | 17 UI.context.addFlavorChangeListener(SDK.Target, this._targetFlavorChanged, th
is); |
20 | |
21 SDK.targetManager.addEventListener( | |
22 SDK.TargetManager.Events.AvailableNodeTargetsChanged, this._availableNod
eTargetsChanged, this); | |
23 this._availableNodeTargetsChanged(); | |
24 | |
25 SDK.targetManager.observeModels(SDK.DebuggerModel, this); | 18 SDK.targetManager.observeModels(SDK.DebuggerModel, this); |
26 } | 19 } |
27 | 20 |
28 /** | 21 /** |
29 * @return {boolean} | 22 * @return {boolean} |
30 */ | 23 */ |
31 static shouldBeShown() { | 24 static shouldBeShown() { |
32 var minJSTargets = Runtime.queryParam('nodeFrontend') ? 1 : 2; | 25 var minJSTargets = Runtime.queryParam('nodeFrontend') ? 1 : 2; |
33 if (SDK.targetManager.models(SDK.DebuggerModel).length >= minJSTargets) | 26 return SDK.targetManager.models(SDK.DebuggerModel).length >= minJSTargets; |
34 return true; | |
35 return !!SDK.targetManager.availableNodeTargetsCount(); | |
36 } | |
37 | |
38 _availableNodeTargetsChanged() { | |
39 var count = SDK.targetManager.availableNodeTargetsCount(); | |
40 if (!count) { | |
41 this._availableNodeTargetsElement.classList.add('hidden'); | |
42 return; | |
43 } | |
44 this._availableNodeTargetsElement.removeChildren(); | |
45 this._availableNodeTargetsElement.createTextChild( | |
46 count === 1 ? Common.UIString('Node instance available.') : | |
47 Common.UIString('%d Node instances available.', count)); | |
48 var link = this._availableNodeTargetsElement.createChild('span', 'link'); | |
49 link.textContent = Common.UIString('Connect'); | |
50 link.addEventListener('click', () => { | |
51 InspectorFrontendHost.openNodeFrontend(); | |
52 }, false); | |
53 this._availableNodeTargetsElement.classList.remove('hidden'); | |
54 } | 27 } |
55 | 28 |
56 /** | 29 /** |
57 * @override | 30 * @override |
58 * @param {!SDK.DebuggerModel} debuggerModel | 31 * @param {!SDK.DebuggerModel} debuggerModel |
59 * @return {!Element} | 32 * @return {!Element} |
60 */ | 33 */ |
61 createElementForItem(debuggerModel) { | 34 createElementForItem(debuggerModel) { |
62 var element = createElementWithClass('div', 'thread-item'); | 35 var element = createElementWithClass('div', 'thread-item'); |
63 var title = element.createChild('div', 'thread-item-title'); | 36 var title = element.createChild('div', 'thread-item-title'); |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
150 /** | 123 /** |
151 * @param {!Common.Event} event | 124 * @param {!Common.Event} event |
152 */ | 125 */ |
153 _targetFlavorChanged(event) { | 126 _targetFlavorChanged(event) { |
154 var target = /** @type {!SDK.Target} */ (event.data); | 127 var target = /** @type {!SDK.Target} */ (event.data); |
155 var debuggerModel = target.model(SDK.DebuggerModel); | 128 var debuggerModel = target.model(SDK.DebuggerModel); |
156 if (debuggerModel) | 129 if (debuggerModel) |
157 this._list.selectItem(debuggerModel); | 130 this._list.selectItem(debuggerModel); |
158 } | 131 } |
159 }; | 132 }; |
OLD | NEW |