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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/sources/ThreadsSidebarPane.js

Issue 2939173002: Reland of [DevTools] Show icon in top toolbar when Node target is available (Closed)
Patch Set: Created 3 years, 6 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
OLDNEW
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
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 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698