OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 * @interface | 6 * @interface |
7 */ | 7 */ |
8 WebInspector.View = function() | 8 WebInspector.View = function() |
9 { | 9 { |
10 } | 10 } |
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
295 | 295 |
296 for (var extension of self.runtime.extensions("view")) { | 296 for (var extension of self.runtime.extensions("view")) { |
297 var descriptor = extension.descriptor(); | 297 var descriptor = extension.descriptor(); |
298 this._views.set(descriptor["id"], new WebInspector.ProvidedView(extensio
n)); | 298 this._views.set(descriptor["id"], new WebInspector.ProvidedView(extensio
n)); |
299 this._locationNameByViewId.set(descriptor["id"], descriptor["location"])
; | 299 this._locationNameByViewId.set(descriptor["id"], descriptor["location"])
; |
300 } | 300 } |
301 } | 301 } |
302 | 302 |
303 WebInspector.ViewManager.prototype = { | 303 WebInspector.ViewManager.prototype = { |
304 /** | 304 /** |
305 * @param {!WebInspector.Widget} widget | |
306 */ | |
307 revealViewWithWidget: function(widget) | |
308 { | |
309 var view = widget[WebInspector.View._symbol]; | |
310 if (view) | |
311 this.revealView(view); | |
312 }, | |
313 | |
314 /** | |
315 * @param {!WebInspector.View} view | 305 * @param {!WebInspector.View} view |
316 * @return {!Promise} | 306 * @return {!Promise} |
317 */ | 307 */ |
318 revealView: function(view) | 308 revealView: function(view) |
319 { | 309 { |
320 var location = /** @type {?WebInspector.ViewManager._Location} */ (view[
WebInspector.ViewManager._Location.symbol]); | 310 var location = /** @type {?WebInspector.ViewManager._Location} */ (view[
WebInspector.ViewManager._Location.symbol]); |
321 if (!location) | 311 if (!location) |
322 return Promise.resolve(); | 312 return Promise.resolve(); |
323 location._reveal(); | 313 location._reveal(); |
324 return location.showView(view); | 314 return location.showView(view); |
325 }, | 315 }, |
326 | 316 |
327 /** | 317 /** |
328 * @param {string} viewId | 318 * @param {string} viewId |
| 319 * @return {?WebInspector.View} |
| 320 */ |
| 321 view: function(viewId) |
| 322 { |
| 323 return this._views.get(viewId); |
| 324 }, |
| 325 |
| 326 /** |
| 327 * @param {string} viewId |
329 * @return {!Promise} | 328 * @return {!Promise} |
330 */ | 329 */ |
331 showView: function(viewId) | 330 showView: function(viewId) |
332 { | 331 { |
333 var view = this._views.get(viewId); | 332 var view = this._views.get(viewId); |
334 if (!view) { | 333 if (!view) { |
335 console.error("Could not find view for id: '" + viewId + "' " + new
Error().stack); | 334 console.error("Could not find view for id: '" + viewId + "' " + new
Error().stack); |
336 return Promise.resolve(); | 335 return Promise.resolve(); |
337 } | 336 } |
| 337 |
338 var locationName = this._locationNameByViewId.get(viewId); | 338 var locationName = this._locationNameByViewId.get(viewId); |
339 if (locationName === "drawer-view") | 339 if (locationName === "drawer-view") |
340 WebInspector.userMetrics.drawerShown(viewId); | 340 WebInspector.userMetrics.drawerShown(viewId); |
341 | 341 |
| 342 var location = view[WebInspector.ViewManager._Location.symbol]; |
| 343 if (location) { |
| 344 location._reveal(); |
| 345 return location.showView(view); |
| 346 } |
| 347 |
342 return this._resolveLocation(locationName).then(location => { | 348 return this._resolveLocation(locationName).then(location => { |
343 if (!location) | 349 if (!location) |
344 return; | 350 throw new Error("Could not resolve location for view: " + viewId
); |
345 location._reveal(); | 351 location._reveal(); |
346 return location.showView(view); | 352 return location.showView(view); |
347 }); | 353 }); |
348 }, | 354 }, |
349 | 355 |
350 /** | 356 /** |
351 * @param {string=} location | 357 * @param {string=} location |
352 * @return {!Promise<?WebInspector.ViewManager._Location>} | 358 * @return {!Promise<?WebInspector.ViewManager._Location>} |
353 */ | 359 */ |
354 _resolveLocation: function(location) | 360 _resolveLocation: function(location) |
(...skipping 310 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
665 * @override | 671 * @override |
666 * @param {!WebInspector.View} view | 672 * @param {!WebInspector.View} view |
667 * @param {?WebInspector.View=} insertBefore | 673 * @param {?WebInspector.View=} insertBefore |
668 */ | 674 */ |
669 appendView: function(view, insertBefore) | 675 appendView: function(view, insertBefore) |
670 { | 676 { |
671 if (insertBefore) | 677 if (insertBefore) |
672 throw new Error("Insert before in tabbed pane is not supported"); | 678 throw new Error("Insert before in tabbed pane is not supported"); |
673 if (!this._tabbedPane.hasTab(view.viewId())) { | 679 if (!this._tabbedPane.hasTab(view.viewId())) { |
674 view[WebInspector.ViewManager._Location.symbol] = this; | 680 view[WebInspector.ViewManager._Location.symbol] = this; |
| 681 this._manager._views.set(view.viewId(), view); |
675 this._views.set(view.viewId(), view); | 682 this._views.set(view.viewId(), view); |
676 this._appendTab(view); | 683 this._appendTab(view); |
677 } | 684 } |
678 }, | 685 }, |
679 | 686 |
680 /** | 687 /** |
681 * @override | 688 * @override |
682 * @param {!WebInspector.View} view | 689 * @param {!WebInspector.View} view |
683 * @param {?WebInspector.View=} insertBefore | 690 * @param {?WebInspector.View=} insertBefore |
684 * @return {!Promise} | 691 * @return {!Promise} |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
765 /** | 772 /** |
766 * @override | 773 * @override |
767 * @param {!WebInspector.View} view | 774 * @param {!WebInspector.View} view |
768 * @param {?WebInspector.View=} insertBefore | 775 * @param {?WebInspector.View=} insertBefore |
769 */ | 776 */ |
770 appendView: function(view, insertBefore) | 777 appendView: function(view, insertBefore) |
771 { | 778 { |
772 var container = this._expandableContainers.get(view.viewId()); | 779 var container = this._expandableContainers.get(view.viewId()); |
773 if (!container) { | 780 if (!container) { |
774 view[WebInspector.ViewManager._Location.symbol] = this; | 781 view[WebInspector.ViewManager._Location.symbol] = this; |
| 782 this._manager._views.set(view.viewId(), view); |
775 container = new WebInspector.ViewManager._ExpandableContainerWidget(
view); | 783 container = new WebInspector.ViewManager._ExpandableContainerWidget(
view); |
776 var beforeElement = null; | 784 var beforeElement = null; |
777 if (insertBefore) { | 785 if (insertBefore) { |
778 var beforeContainer = insertBefore[WebInspector.ViewManager._Exp
andableContainerWidget._symbol]; | 786 var beforeContainer = insertBefore[WebInspector.ViewManager._Exp
andableContainerWidget._symbol]; |
779 beforeElement = beforeContainer ? beforeContainer.element : null
; | 787 beforeElement = beforeContainer ? beforeContainer.element : null
; |
780 } | 788 } |
781 container.show(this._vbox.contentElement, beforeElement); | 789 container.show(this._vbox.contentElement, beforeElement); |
782 this._expandableContainers.set(view.viewId(), container); | 790 this._expandableContainers.set(view.viewId(), container); |
783 } | 791 } |
784 }, | 792 }, |
(...skipping 21 matching lines...) Expand all Loading... |
806 this.appendView(view); | 814 this.appendView(view); |
807 }, | 815 }, |
808 | 816 |
809 __proto__: WebInspector.ViewManager._Location.prototype | 817 __proto__: WebInspector.ViewManager._Location.prototype |
810 } | 818 } |
811 | 819 |
812 /** | 820 /** |
813 * @type {!WebInspector.ViewManager} | 821 * @type {!WebInspector.ViewManager} |
814 */ | 822 */ |
815 WebInspector.viewManager; | 823 WebInspector.viewManager; |
OLD | NEW |