| 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 |