| 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.View} | 7 * @extends {WebInspector.View} |
| 8 * @implements {WebInspector.TargetManager.Observer} | 8 * @implements {WebInspector.TargetManager.Observer} |
| 9 */ | 9 */ |
| 10 WebInspector.ThreadsSidebarPane = function() | 10 WebInspector.ThreadsSidebarPane = function() |
| 11 { | 11 { |
| 12 WebInspector.View.call(this, WebInspector.UIString("Threads")); | 12 WebInspector.View.call(this, WebInspector.UIString("Threads")); |
| 13 this.requestSetVisible(false); | |
| 14 | 13 |
| 15 /** @type {!Map.<!WebInspector.DebuggerModel, !WebInspector.UIList.Item>} */ | 14 /** @type {!Map.<!WebInspector.DebuggerModel, !WebInspector.UIList.Item>} */ |
| 16 this._debuggerModelToListItems = new Map(); | 15 this._debuggerModelToListItems = new Map(); |
| 17 /** @type {!Map.<!WebInspector.UIList.Item, !WebInspector.Target>} */ | 16 /** @type {!Map.<!WebInspector.UIList.Item, !WebInspector.Target>} */ |
| 18 this._listItemsToTargets = new Map(); | 17 this._listItemsToTargets = new Map(); |
| 19 /** @type {?WebInspector.UIList.Item} */ | 18 /** @type {?WebInspector.UIList.Item} */ |
| 20 this._selectedListItem = null; | 19 this._selectedListItem = null; |
| 21 this.threadList = new WebInspector.UIList(); | 20 this.threadList = new WebInspector.UIList(); |
| 22 this.threadList.show(this.element); | 21 this.threadList.show(this.element); |
| 23 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
); |
| 24 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); |
| 25 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); |
| 26 WebInspector.context.addFlavorChangeListener(WebInspector.Target, this._targ
etChanged, this); | 25 WebInspector.context.addFlavorChangeListener(WebInspector.Target, this._targ
etChanged, this); |
| 27 WebInspector.targetManager.observeTargets(this); | 26 WebInspector.targetManager.observeTargets(this); |
| 28 } | 27 } |
| 29 | 28 |
| 30 WebInspector.ThreadsSidebarPane.prototype = { | 29 WebInspector.ThreadsSidebarPane.prototype = { |
| 31 /** | 30 /** |
| 32 * @override | 31 * @override |
| 33 * @param {!WebInspector.Target} target | 32 * @param {!WebInspector.Target} target |
| 34 */ | 33 */ |
| 35 targetAdded: function(target) | 34 targetAdded: function(target) |
| 36 { | 35 { |
| 37 var debuggerModel = WebInspector.DebuggerModel.fromTarget(target) | 36 var debuggerModel = WebInspector.DebuggerModel.fromTarget(target) |
| 38 if (!debuggerModel) { | 37 if (!debuggerModel) |
| 39 this._updateVisibility(); | |
| 40 return; | 38 return; |
| 41 } | |
| 42 | 39 |
| 43 var executionContext = target.runtimeModel.defaultExecutionContext(); | 40 var executionContext = target.runtimeModel.defaultExecutionContext(); |
| 44 var label = executionContext && executionContext.label() ? executionCont
ext.label() : target.name(); | 41 var label = executionContext && executionContext.label() ? executionCont
ext.label() : target.name(); |
| 45 var listItem = new WebInspector.UIList.Item(label, ""); | 42 var listItem = new WebInspector.UIList.Item(label, ""); |
| 46 listItem.element.addEventListener("click", this._onListItemClick.bind(th
is, listItem), false); | 43 listItem.element.addEventListener("click", this._onListItemClick.bind(th
is, listItem), false); |
| 47 var currentTarget = WebInspector.context.flavor(WebInspector.Target); | 44 var currentTarget = WebInspector.context.flavor(WebInspector.Target); |
| 48 if (currentTarget === target) | 45 if (currentTarget === target) |
| 49 this._selectListItem(listItem); | 46 this._selectListItem(listItem); |
| 50 | 47 |
| 51 this._debuggerModelToListItems.set(debuggerModel, listItem); | 48 this._debuggerModelToListItems.set(debuggerModel, listItem); |
| 52 this._listItemsToTargets.set(listItem, target); | 49 this._listItemsToTargets.set(listItem, target); |
| 53 this.threadList.addItem(listItem); | 50 this.threadList.addItem(listItem); |
| 54 this._updateDebuggerState(debuggerModel); | 51 this._updateDebuggerState(debuggerModel); |
| 55 this._updateVisibility(); | |
| 56 }, | |
| 57 | |
| 58 _updateVisibility: function() | |
| 59 { | |
| 60 this._wasVisibleAtLeastOnce = this._wasVisibleAtLeastOnce || this._debug
gerModelToListItems.size > 1; | |
| 61 this.requestSetVisible(this._wasVisibleAtLeastOnce); | |
| 62 }, | 52 }, |
| 63 | 53 |
| 64 /** | 54 /** |
| 65 * @override | 55 * @override |
| 66 * @param {!WebInspector.Target} target | 56 * @param {!WebInspector.Target} target |
| 67 */ | 57 */ |
| 68 targetRemoved: function(target) | 58 targetRemoved: function(target) |
| 69 { | 59 { |
| 70 var debuggerModel = WebInspector.DebuggerModel.fromTarget(target) | 60 var debuggerModel = WebInspector.DebuggerModel.fromTarget(target) |
| 71 if (!debuggerModel) | 61 if (!debuggerModel) |
| 72 return; | 62 return; |
| 73 var listItem = this._debuggerModelToListItems.remove(debuggerModel); | 63 var listItem = this._debuggerModelToListItems.remove(debuggerModel); |
| 74 if (listItem) { | 64 if (listItem) { |
| 75 this._listItemsToTargets.remove(listItem); | 65 this._listItemsToTargets.remove(listItem); |
| 76 this.threadList.removeItem(listItem); | 66 this.threadList.removeItem(listItem); |
| 77 } | 67 } |
| 78 this._updateVisibility(); | |
| 79 }, | 68 }, |
| 80 | 69 |
| 81 /** | 70 /** |
| 82 * @param {!WebInspector.Event} event | 71 * @param {!WebInspector.Event} event |
| 83 */ | 72 */ |
| 84 _targetChanged: function(event) | 73 _targetChanged: function(event) |
| 85 { | 74 { |
| 86 var newTarget = /** @type {!WebInspector.Target} */(event.data); | 75 var newTarget = /** @type {!WebInspector.Target} */(event.data); |
| 87 var debuggerModel = WebInspector.DebuggerModel.fromTarget(newTarget) | 76 var debuggerModel = WebInspector.DebuggerModel.fromTarget(newTarget) |
| 88 if (!debuggerModel) | 77 if (!debuggerModel) |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 143 */ | 132 */ |
| 144 _onListItemClick: function(listItem) | 133 _onListItemClick: function(listItem) |
| 145 { | 134 { |
| 146 WebInspector.context.setFlavor(WebInspector.Target, this._listItemsToTar
gets.get(listItem)); | 135 WebInspector.context.setFlavor(WebInspector.Target, this._listItemsToTar
gets.get(listItem)); |
| 147 listItem.element.scrollIntoViewIfNeeded(); | 136 listItem.element.scrollIntoViewIfNeeded(); |
| 148 }, | 137 }, |
| 149 | 138 |
| 150 | 139 |
| 151 __proto__: WebInspector.View.prototype | 140 __proto__: WebInspector.View.prototype |
| 152 } | 141 } |
| OLD | NEW |