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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/ui/View.js

Issue 2617293002: DevTools: TabbedLocations only materialize tabs when needed (Closed)
Patch Set: DevTools: materialize container widgets only when they are shown Created 3 years, 11 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 * @interface 5 * @interface
6 */ 6 */
7 UI.View = function() {}; 7 UI.View = function() {};
8 8
9 UI.View.prototype = { 9 UI.View.prototype = {
10 /** 10 /**
(...skipping 424 matching lines...) Expand 10 before | Expand all | Expand 10 after
435 var shouldFocus = this.element.hasFocus(); 435 var shouldFocus = this.element.hasFocus();
436 this.setDefaultFocusedElement(null); 436 this.setDefaultFocusedElement(null);
437 this._view[UI.View._widgetSymbol] = widget; 437 this._view[UI.View._widgetSymbol] = widget;
438 widget.show(this.element); 438 widget.show(this.element);
439 if (shouldFocus) 439 if (shouldFocus)
440 widget.focus(); 440 widget.focus();
441 })); 441 }));
442 this._materializePromise = Promise.all(promises); 442 this._materializePromise = Promise.all(promises);
443 return this._materializePromise; 443 return this._materializePromise;
444 } 444 }
445
446 /**
447 * @override
448 */
449 wasShown() {
450 this._materialize();
451 }
445 }; 452 };
446 453
447 /** 454 /**
448 * @unrestricted 455 * @unrestricted
449 */ 456 */
450 UI.ViewManager._ExpandableContainerWidget = class extends UI.VBox { 457 UI.ViewManager._ExpandableContainerWidget = class extends UI.VBox {
451 /** 458 /**
452 * @param {!UI.View} view 459 * @param {!UI.View} view
453 */ 460 */
454 constructor(view) { 461 constructor(view) {
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after
702 /** 709 /**
703 * @override 710 * @override
704 * @param {!UI.View} view 711 * @param {!UI.View} view
705 * @param {?UI.View=} insertBefore 712 * @param {?UI.View=} insertBefore
706 * @return {!Promise} 713 * @return {!Promise}
707 */ 714 */
708 showView(view, insertBefore) { 715 showView(view, insertBefore) {
709 this.appendView(view, insertBefore); 716 this.appendView(view, insertBefore);
710 this._tabbedPane.selectTab(view.viewId()); 717 this._tabbedPane.selectTab(view.viewId());
711 this._tabbedPane.focus(); 718 this._tabbedPane.focus();
712 return this._materializeWidget(view); 719 var widget = /** @type {!UI.ViewManager._ContainerWidget} */ (this._tabbedPa ne.tabView(view.viewId()));
720 return widget._materialize();
713 } 721 }
714 722
715 /** 723 /**
716 * @param {!UI.View} view 724 * @param {!UI.View} view
717 * @override 725 * @override
718 */ 726 */
719 removeView(view) { 727 removeView(view) {
720 if (!this._tabbedPane.hasTab(view.viewId())) 728 if (!this._tabbedPane.hasTab(view.viewId()))
721 return; 729 return;
722 730
723 delete view[UI.ViewManager._Location.symbol]; 731 delete view[UI.ViewManager._Location.symbol];
724 this._manager._views.delete(view.viewId()); 732 this._manager._views.delete(view.viewId());
725 this._views.delete(view.viewId()); 733 this._views.delete(view.viewId());
726 this._tabbedPane.closeTab(view.viewId()); 734 this._tabbedPane.closeTab(view.viewId());
727 } 735 }
728 736
729 /** 737 /**
730 * @param {!Common.Event} event 738 * @param {!Common.Event} event
731 */ 739 */
732 _tabSelected(event) { 740 _tabSelected(event) {
733 var tabId = /** @type {string} */ (event.data.tabId); 741 var tabId = /** @type {string} */ (event.data.tabId);
734 if (this._lastSelectedTabSetting && event.data['isUserGesture']) 742 if (this._lastSelectedTabSetting && event.data['isUserGesture'])
735 this._lastSelectedTabSetting.set(tabId); 743 this._lastSelectedTabSetting.set(tabId);
736 var view = this._views.get(tabId); 744 var view = this._views.get(tabId);
737 if (!view) 745 if (!view)
738 return; 746 return;
739 747
740 this._materializeWidget(view);
741
742 if (view.isCloseable()) { 748 if (view.isCloseable()) {
743 var tabs = this._closeableTabSetting.get(); 749 var tabs = this._closeableTabSetting.get();
744 if (!tabs[tabId]) { 750 if (!tabs[tabId]) {
745 tabs[tabId] = true; 751 tabs[tabId] = true;
746 this._closeableTabSetting.set(tabs); 752 this._closeableTabSetting.set(tabs);
747 } 753 }
748 } 754 }
749 } 755 }
750 756
751 /** 757 /**
752 * @param {!Common.Event} event 758 * @param {!Common.Event} event
753 */ 759 */
754 _tabClosed(event) { 760 _tabClosed(event) {
755 var id = /** @type {string} */ (event.data['tabId']); 761 var id = /** @type {string} */ (event.data['tabId']);
756 var tabs = this._closeableTabSetting.get(); 762 var tabs = this._closeableTabSetting.get();
757 if (tabs[id]) { 763 if (tabs[id]) {
758 delete tabs[id]; 764 delete tabs[id];
759 this._closeableTabSetting.set(tabs); 765 this._closeableTabSetting.set(tabs);
760 } 766 }
761 } 767 }
762 768
763 /** 769 /**
764 * @param {!UI.View} view
765 * @return {!Promise}
766 */
767 _materializeWidget(view) {
768 var widget = /** @type {!UI.ViewManager._ContainerWidget} */ (this._tabbedPa ne.tabView(view.viewId()));
769 return widget._materialize();
770 }
771
772 /**
773 * @param {!Common.Event} event 770 * @param {!Common.Event} event
774 */ 771 */
775 _persistTabOrder(event) { 772 _persistTabOrder(event) {
776 var tabIds = this._tabbedPane.tabIds(); 773 var tabIds = this._tabbedPane.tabIds();
777 var tabOrders = {}; 774 var tabOrders = {};
778 for (var i = 0; i < tabIds.length; i++) 775 for (var i = 0; i < tabIds.length; i++)
779 tabOrders[tabIds[i]] = (i + 1) * UI.ViewManager._TabbedLocation.orderStep; 776 tabOrders[tabIds[i]] = (i + 1) * UI.ViewManager._TabbedLocation.orderStep;
780 this._tabOrderSetting.set(tabOrders); 777 this._tabOrderSetting.set(tabOrders);
781 } 778 }
782 }; 779 };
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
860 appendApplicableItems(locationName) { 857 appendApplicableItems(locationName) {
861 for (var view of this._manager._viewsForLocation(locationName)) 858 for (var view of this._manager._viewsForLocation(locationName))
862 this.appendView(view); 859 this.appendView(view);
863 } 860 }
864 }; 861 };
865 862
866 /** 863 /**
867 * @type {!UI.ViewManager} 864 * @type {!UI.ViewManager}
868 */ 865 */
869 UI.viewManager; 866 UI.viewManager;
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698