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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/timeline/TimelineTreeView.js

Issue 2686993002: DevTools: Turn FilterBar into Toolbar in timeline events log view. (Closed)
Patch Set: rebaseline Created 3 years, 10 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 | « third_party/WebKit/Source/devtools/front_end/timeline/EventsTimelineTreeView.js ('k') | 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 * @unrestricted 6 * @unrestricted
7 */ 7 */
8 Timeline.TimelineTreeView = class extends UI.VBox { 8 Timeline.TimelineTreeView = class extends UI.VBox {
9 constructor() { 9 constructor() {
10 super(); 10 super();
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
46 */ 46 */
47 init(filters) { 47 init(filters) {
48 this._linkifier = new Components.Linkifier(); 48 this._linkifier = new Components.Linkifier();
49 49
50 this._filters = filters.slice(); 50 this._filters = filters.slice();
51 51
52 const columns = /** @type {!Array<!DataGrid.DataGrid.ColumnDescriptor>} */ ( []); 52 const columns = /** @type {!Array<!DataGrid.DataGrid.ColumnDescriptor>} */ ( []);
53 this.populateColumns(columns); 53 this.populateColumns(columns);
54 54
55 this._splitWidget = new UI.SplitWidget(true, true, 'timelineTreeViewDetailsS plitWidget'); 55 this._splitWidget = new UI.SplitWidget(true, true, 'timelineTreeViewDetailsS plitWidget');
56 const mainView = new UI.VBox(); 56 var mainView = new UI.VBox();
57 this._populateToolbar(mainView.element); 57 var toolbar = new UI.Toolbar('', mainView.element);
58 this._populateToolbar(toolbar);
58 59
59 this._dataGrid = new DataGrid.SortableDataGrid(columns); 60 this._dataGrid = new DataGrid.SortableDataGrid(columns);
60 this._dataGrid.addEventListener(DataGrid.DataGrid.Events.SortingChanged, thi s._sortingChanged, this); 61 this._dataGrid.addEventListener(DataGrid.DataGrid.Events.SortingChanged, thi s._sortingChanged, this);
61 this._dataGrid.element.addEventListener('mousemove', this._onMouseMove.bind( this), true); 62 this._dataGrid.element.addEventListener('mousemove', this._onMouseMove.bind( this), true);
62 this._dataGrid.setResizeMethod(DataGrid.DataGrid.ResizeMethod.Last); 63 this._dataGrid.setResizeMethod(DataGrid.DataGrid.ResizeMethod.Last);
63 this._dataGrid.setRowContextMenuCallback(this._onContextMenu.bind(this)); 64 this._dataGrid.setRowContextMenuCallback(this._onContextMenu.bind(this));
64 this._dataGrid.asWidget().show(mainView.element); 65 this._dataGrid.asWidget().show(mainView.element);
65 this._dataGrid.addEventListener(DataGrid.DataGrid.Events.SelectedNode, this. _updateDetailsForSelection, this); 66 this._dataGrid.addEventListener(DataGrid.DataGrid.Events.SelectedNode, this. _updateDetailsForSelection, this);
66 67
67 this._detailsView = new UI.VBox(); 68 this._detailsView = new UI.VBox();
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 } 102 }
102 103
103 /** 104 /**
104 * @return {boolean} 105 * @return {boolean}
105 */ 106 */
106 _exposePercentages() { 107 _exposePercentages() {
107 return false; 108 return false;
108 } 109 }
109 110
110 /** 111 /**
111 * @param {!Element} parent 112 * @param {!UI.Toolbar} toolbar
112 */ 113 */
113 _populateToolbar(parent) { 114 _populateToolbar(toolbar) {
114 } 115 }
115 116
116 /** 117 /**
117 * @param {?TimelineModel.TimelineProfileTree.Node} node 118 * @param {?TimelineModel.TimelineProfileTree.Node} node
118 */ 119 */
119 _onHover(node) { 120 _onHover(node) {
120 } 121 }
121 122
122 /** 123 /**
123 * @param {!UI.ContextMenu} contextMenu 124 * @param {!UI.ContextMenu} contextMenu
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
202 return new TimelineModel.TimelineProfileTree.TopDownRootNode( 203 return new TimelineModel.TimelineProfileTree.TopDownRootNode(
203 this._model.timelineModel().mainThreadEvents(), this._filters, this._sta rtTime, this._endTime, doNotAggregate, 204 this._model.timelineModel().mainThreadEvents(), this._filters, this._sta rtTime, this._endTime, doNotAggregate,
204 groupIdCallback); 205 groupIdCallback);
205 } 206 }
206 207
207 /** 208 /**
208 * @protected 209 * @protected
209 * @param {!Array<!DataGrid.DataGrid.ColumnDescriptor>} columns 210 * @param {!Array<!DataGrid.DataGrid.ColumnDescriptor>} columns
210 */ 211 */
211 populateColumns(columns) { 212 populateColumns(columns) {
212 columns.push({id: 'self', title: Common.UIString('Self Time'), width: '110px ', fixedWidth: true, sortable: true}); 213 columns.push({id: 'self', title: Common.UIString('Self Time'), width: '120px ', fixedWidth: true, sortable: true});
213 columns.push({id: 'total', title: Common.UIString('Total Time'), width: '110 px', fixedWidth: true, sortable: true}); 214 columns.push({id: 'total', title: Common.UIString('Total Time'), width: '120 px', fixedWidth: true, sortable: true});
214 columns.push({id: 'activity', title: Common.UIString('Activity'), disclosure : true, sortable: true}); 215 columns.push({id: 'activity', title: Common.UIString('Activity'), disclosure : true, sortable: true});
215 } 216 }
216 217
217 _sortingChanged() { 218 _sortingChanged() {
218 var columnId = this._dataGrid.sortColumnId(); 219 var columnId = this._dataGrid.sortColumnId();
219 if (!columnId) 220 if (!columnId)
220 return; 221 return;
221 var sortFunction; 222 var sortFunction;
222 switch (columnId) { 223 switch (columnId) {
223 case 'startTime': 224 case 'startTime':
(...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after
564 return {name: frameName, color: color}; 565 return {name: frameName, color: color};
565 566
566 default: 567 default:
567 console.assert(false, 'Unexpected aggregation type'); 568 console.assert(false, 'Unexpected aggregation type');
568 } 569 }
569 return {name: node.id || Common.UIString('unattributed'), color: color}; 570 return {name: node.id || Common.UIString('unattributed'), color: color};
570 } 571 }
571 572
572 /** 573 /**
573 * @override 574 * @override
574 * @param {!Element} parent 575 * @param {!UI.Toolbar} toolbar
575 */ 576 */
576 _populateToolbar(parent) { 577 _populateToolbar(toolbar) {
577 var panelToolbar = new UI.Toolbar('', parent);
578 this._groupByCombobox = new UI.ToolbarComboBox(this._onGroupByChanged.bind(t his)); 578 this._groupByCombobox = new UI.ToolbarComboBox(this._onGroupByChanged.bind(t his));
579 /** 579 /**
580 * @param {string} name 580 * @param {string} name
581 * @param {string} id 581 * @param {string} id
582 * @this {Timeline.TimelineTreeView} 582 * @this {Timeline.TimelineTreeView}
583 */ 583 */
584 function addGroupingOption(name, id) { 584 function addGroupingOption(name, id) {
585 var option = this._groupByCombobox.createOption(name, '', id); 585 var option = this._groupByCombobox.createOption(name, '', id);
586 this._groupByCombobox.addOption(option); 586 this._groupByCombobox.addOption(option);
587 if (id === this._groupBySetting.get()) 587 if (id === this._groupBySetting.get())
588 this._groupByCombobox.select(option); 588 this._groupByCombobox.select(option);
589 } 589 }
590 const groupBy = Timeline.AggregatedTimelineTreeView.GroupBy; 590 const groupBy = Timeline.AggregatedTimelineTreeView.GroupBy;
591 addGroupingOption.call(this, Common.UIString('No Grouping'), groupBy.None); 591 addGroupingOption.call(this, Common.UIString('No Grouping'), groupBy.None);
592 addGroupingOption.call(this, Common.UIString('Group by Activity'), groupBy.E ventName); 592 addGroupingOption.call(this, Common.UIString('Group by Activity'), groupBy.E ventName);
593 addGroupingOption.call(this, Common.UIString('Group by Category'), groupBy.C ategory); 593 addGroupingOption.call(this, Common.UIString('Group by Category'), groupBy.C ategory);
594 addGroupingOption.call(this, Common.UIString('Group by Domain'), groupBy.Dom ain); 594 addGroupingOption.call(this, Common.UIString('Group by Domain'), groupBy.Dom ain);
595 addGroupingOption.call(this, Common.UIString('Group by Subdomain'), groupBy. Subdomain); 595 addGroupingOption.call(this, Common.UIString('Group by Subdomain'), groupBy. Subdomain);
596 addGroupingOption.call(this, Common.UIString('Group by URL'), groupBy.URL); 596 addGroupingOption.call(this, Common.UIString('Group by URL'), groupBy.URL);
597 addGroupingOption.call(this, Common.UIString('Group by Frame'), groupBy.Fram e); 597 addGroupingOption.call(this, Common.UIString('Group by Frame'), groupBy.Fram e);
598 panelToolbar.appendToolbarItem(this._groupByCombobox); 598 toolbar.appendToolbarItem(this._groupByCombobox);
599 panelToolbar.appendSpacer(); 599 toolbar.appendSpacer();
600 panelToolbar.appendToolbarItem(this._splitWidget.createShowHideSidebarButton (Common.UIString('heaviest stack'))); 600 toolbar.appendToolbarItem(this._splitWidget.createShowHideSidebarButton(Comm on.UIString('heaviest stack')));
601 } 601 }
602 602
603 /** 603 /**
604 * @param {!TimelineModel.TimelineProfileTree.Node} treeNode 604 * @param {!TimelineModel.TimelineProfileTree.Node} treeNode
605 * @return {!Array<!TimelineModel.TimelineProfileTree.Node>} 605 * @return {!Array<!TimelineModel.TimelineProfileTree.Node>}
606 */ 606 */
607 _buildHeaviestStack(treeNode) { 607 _buildHeaviestStack(treeNode) {
608 console.assert(!!treeNode.parent, 'Attempt to build stack for tree root'); 608 console.assert(!!treeNode.parent, 'Attempt to build stack for tree root');
609 var result = []; 609 var result = [];
610 // Do not add root to the stack, as it's the tree itself. 610 // Do not add root to the stack, as it's the tree itself.
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
848 848
849 _onSelectionChanged() { 849 _onSelectionChanged() {
850 this.dispatchEventToListeners(Timeline.TimelineStackView.Events.SelectionCha nged); 850 this.dispatchEventToListeners(Timeline.TimelineStackView.Events.SelectionCha nged);
851 } 851 }
852 }; 852 };
853 853
854 /** @enum {symbol} */ 854 /** @enum {symbol} */
855 Timeline.TimelineStackView.Events = { 855 Timeline.TimelineStackView.Events = {
856 SelectionChanged: Symbol('SelectionChanged') 856 SelectionChanged: Symbol('SelectionChanged')
857 }; 857 };
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/devtools/front_end/timeline/EventsTimelineTreeView.js ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698