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 /** | 5 /** |
6 * @constructor | 6 * @constructor |
7 * @extends {WebInspector.VBox} | 7 * @extends {WebInspector.VBox} |
8 * @implements {WebInspector.TargetManager.Observer} | 8 * @implements {WebInspector.TargetManager.Observer} |
9 */ | 9 */ |
10 WebInspector.ThreadsSidebarPane = function() | 10 WebInspector.ThreadsSidebarPane = function() |
11 { | 11 { |
12 WebInspector.VBox.call(this); | 12 WebInspector.VBox.call(this); |
13 | 13 |
14 /** @type {!Map.<!WebInspector.DebuggerModel, !WebInspector.UIList.Item>} */ | 14 /** @type {!Map.<!WebInspector.DebuggerModel, !WebInspector.UIList.Item>} */ |
15 this._debuggerModelToListItems = new Map(); | 15 this._debuggerModelToListItems = new Map(); |
16 /** @type {!Map.<!WebInspector.UIList.Item, !WebInspector.Target>} */ | 16 /** @type {!Map.<!WebInspector.UIList.Item, !WebInspector.Target>} */ |
17 this._listItemsToTargets = new Map(); | 17 this._listItemsToTargets = new Map(); |
18 /** @type {?WebInspector.UIList.Item} */ | 18 /** @type {?WebInspector.UIList.Item} */ |
19 this._selectedListItem = null; | 19 this._selectedListItem = null; |
20 this.threadList = new WebInspector.UIList(); | 20 this.threadList = new WebInspector.UIList(); |
21 this.threadList.show(this.element); | 21 this.threadList.show(this.element); |
22 WebInspector.targetManager.addModelListener(WebInspector.DebuggerModel, WebI
nspector.DebuggerModel.Events.DebuggerPaused, this._onDebuggerStateChanged, this
); | 22 WebInspector.targetManager.addModelListener(WebInspector.DebuggerModel, WebI
nspector.DebuggerModel.Events.DebuggerPaused, this._onDebuggerStateChanged, this
); |
23 WebInspector.targetManager.addModelListener(WebInspector.DebuggerModel, WebI
nspector.DebuggerModel.Events.DebuggerResumed, this._onDebuggerStateChanged, thi
s); | 23 WebInspector.targetManager.addModelListener(WebInspector.DebuggerModel, WebI
nspector.DebuggerModel.Events.DebuggerResumed, this._onDebuggerStateChanged, thi
s); |
24 WebInspector.targetManager.addModelListener(WebInspector.RuntimeModel, WebIn
spector.RuntimeModel.Events.ExecutionContextChanged, this._onExecutionContextCha
nged, this); | 24 WebInspector.targetManager.addModelListener(WebInspector.RuntimeModel, WebIn
spector.RuntimeModel.Events.ExecutionContextChanged, this._onExecutionContextCha
nged, this); |
25 WebInspector.context.addFlavorChangeListener(WebInspector.Target, this._targ
etChanged, this); | 25 WebInspector.context.addFlavorChangeListener(WebInspector.Target, this._targ
etChanged, this); |
| 26 WebInspector.targetManager.addEventListener(WebInspector.TargetManager.Event
s.NameChanged, this._targetNameChanged, this); |
26 WebInspector.targetManager.observeTargets(this); | 27 WebInspector.targetManager.observeTargets(this); |
27 } | 28 } |
28 | 29 |
29 WebInspector.ThreadsSidebarPane.prototype = { | 30 WebInspector.ThreadsSidebarPane.prototype = { |
30 /** | 31 /** |
31 * @override | 32 * @override |
32 * @param {!WebInspector.Target} target | 33 * @param {!WebInspector.Target} target |
33 */ | 34 */ |
34 targetAdded: function(target) | 35 targetAdded: function(target) |
35 { | 36 { |
36 var debuggerModel = WebInspector.DebuggerModel.fromTarget(target) | 37 var debuggerModel = WebInspector.DebuggerModel.fromTarget(target); |
37 if (!debuggerModel) | 38 if (!debuggerModel) |
38 return; | 39 return; |
39 | 40 |
40 var executionContext = target.runtimeModel.defaultExecutionContext(); | 41 var listItem = new WebInspector.UIList.Item(this._titleForTarget(target)
, ""); |
41 var label = executionContext && executionContext.label() ? executionCont
ext.label() : target.name(); | |
42 var listItem = new WebInspector.UIList.Item(label, ""); | |
43 listItem.element.addEventListener("click", this._onListItemClick.bind(th
is, listItem), false); | 42 listItem.element.addEventListener("click", this._onListItemClick.bind(th
is, listItem), false); |
44 var currentTarget = WebInspector.context.flavor(WebInspector.Target); | 43 var currentTarget = WebInspector.context.flavor(WebInspector.Target); |
45 if (currentTarget === target) | 44 if (currentTarget === target) |
46 this._selectListItem(listItem); | 45 this._selectListItem(listItem); |
47 | 46 |
48 this._debuggerModelToListItems.set(debuggerModel, listItem); | 47 this._debuggerModelToListItems.set(debuggerModel, listItem); |
49 this._listItemsToTargets.set(listItem, target); | 48 this._listItemsToTargets.set(listItem, target); |
50 this.threadList.addItem(listItem); | 49 this.threadList.addItem(listItem); |
51 this._updateDebuggerState(debuggerModel); | 50 this._updateDebuggerState(debuggerModel); |
52 }, | 51 }, |
53 | 52 |
54 /** | 53 /** |
55 * @override | 54 * @override |
56 * @param {!WebInspector.Target} target | 55 * @param {!WebInspector.Target} target |
57 */ | 56 */ |
58 targetRemoved: function(target) | 57 targetRemoved: function(target) |
59 { | 58 { |
60 var debuggerModel = WebInspector.DebuggerModel.fromTarget(target) | 59 var debuggerModel = WebInspector.DebuggerModel.fromTarget(target); |
61 if (!debuggerModel) | 60 if (!debuggerModel) |
62 return; | 61 return; |
63 var listItem = this._debuggerModelToListItems.remove(debuggerModel); | 62 var listItem = this._debuggerModelToListItems.remove(debuggerModel); |
64 if (listItem) { | 63 if (listItem) { |
65 this._listItemsToTargets.remove(listItem); | 64 this._listItemsToTargets.remove(listItem); |
66 this.threadList.removeItem(listItem); | 65 this.threadList.removeItem(listItem); |
67 } | 66 } |
68 }, | 67 }, |
69 | 68 |
70 /** | 69 /** |
71 * @param {!WebInspector.Event} event | 70 * @param {!WebInspector.Event} event |
72 */ | 71 */ |
| 72 _targetNameChanged: function(event) |
| 73 { |
| 74 var target = /** @type {!WebInspector.Target} */ (event.data); |
| 75 var listItem = this._listItemForTarget(target); |
| 76 if (listItem) |
| 77 listItem.setTitle(this._titleForTarget(target)); |
| 78 }, |
| 79 |
| 80 /** |
| 81 * @param {!WebInspector.Event} event |
| 82 */ |
73 _targetChanged: function(event) | 83 _targetChanged: function(event) |
74 { | 84 { |
75 var newTarget = /** @type {!WebInspector.Target} */(event.data); | 85 var listItem = this._listItemForTarget(/** @type {!WebInspector.Target}
*/ (event.data)); |
76 var debuggerModel = WebInspector.DebuggerModel.fromTarget(newTarget) | 86 if (listItem) |
77 if (!debuggerModel) | 87 this._selectListItem(listItem); |
78 return; | |
79 var listItem = /** @type {!WebInspector.UIList.Item} */ (this._debugger
ModelToListItems.get(debuggerModel)); | |
80 this._selectListItem(listItem); | |
81 }, | 88 }, |
82 | 89 |
83 /** | 90 /** |
| 91 * @param {!WebInspector.Target} target |
| 92 * @return {?WebInspector.UIList.Item} |
| 93 */ |
| 94 _listItemForTarget: function(target) |
| 95 { |
| 96 var debuggerModel = WebInspector.DebuggerModel.fromTarget(target); |
| 97 if (!debuggerModel) |
| 98 return null; |
| 99 return this._debuggerModelToListItems.get(debuggerModel) || null; |
| 100 }, |
| 101 |
| 102 /** |
| 103 * @param {!WebInspector.Target} target |
| 104 * @return {string} |
| 105 */ |
| 106 _titleForTarget: function(target) |
| 107 { |
| 108 var executionContext = target.runtimeModel.defaultExecutionContext(); |
| 109 return executionContext && executionContext.label() ? executionContext.l
abel() : target.name(); |
| 110 }, |
| 111 |
| 112 /** |
84 * @param {!WebInspector.Event} event | 113 * @param {!WebInspector.Event} event |
85 */ | 114 */ |
86 _onDebuggerStateChanged: function(event) | 115 _onDebuggerStateChanged: function(event) |
87 { | 116 { |
88 var debuggerModel = /** @type {!WebInspector.DebuggerModel} */ (event.ta
rget); | 117 var debuggerModel = /** @type {!WebInspector.DebuggerModel} */ (event.ta
rget); |
89 this._updateDebuggerState(debuggerModel); | 118 this._updateDebuggerState(debuggerModel); |
90 }, | 119 }, |
91 | 120 |
92 /** | 121 /** |
93 * @param {!WebInspector.Event} event | 122 * @param {!WebInspector.Event} event |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
132 */ | 161 */ |
133 _onListItemClick: function(listItem) | 162 _onListItemClick: function(listItem) |
134 { | 163 { |
135 WebInspector.context.setFlavor(WebInspector.Target, this._listItemsToTar
gets.get(listItem)); | 164 WebInspector.context.setFlavor(WebInspector.Target, this._listItemsToTar
gets.get(listItem)); |
136 listItem.element.scrollIntoViewIfNeeded(); | 165 listItem.element.scrollIntoViewIfNeeded(); |
137 }, | 166 }, |
138 | 167 |
139 | 168 |
140 __proto__: WebInspector.VBox.prototype | 169 __proto__: WebInspector.VBox.prototype |
141 } | 170 } |
OLD | NEW |