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

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: 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
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 20 matching lines...) Expand all
31 init(model, filters) { 31 init(model, filters) {
32 this._model = model; 32 this._model = model;
33 this._linkifier = new Components.Linkifier(); 33 this._linkifier = new Components.Linkifier();
34 34
35 this._filters = filters.slice(); 35 this._filters = filters.slice();
36 36
37 const columns = /** @type {!Array<!DataGrid.DataGrid.ColumnDescriptor>} */ ( []); 37 const columns = /** @type {!Array<!DataGrid.DataGrid.ColumnDescriptor>} */ ( []);
38 this.populateColumns(columns); 38 this.populateColumns(columns);
39 39
40 this._splitWidget = new UI.SplitWidget(true, true, 'timelineTreeViewDetailsS plitWidget'); 40 this._splitWidget = new UI.SplitWidget(true, true, 'timelineTreeViewDetailsS plitWidget');
41 const mainView = new UI.VBox(); 41 var mainView = new UI.VBox();
42 this._populateToolbar(mainView.element); 42 var toolbar = new UI.Toolbar('', mainView.element);
43 this._populateToolbar(toolbar);
43 44
44 this._dataGrid = new DataGrid.SortableDataGrid(columns); 45 this._dataGrid = new DataGrid.SortableDataGrid(columns);
45 this._dataGrid.addEventListener(DataGrid.DataGrid.Events.SortingChanged, thi s._sortingChanged, this); 46 this._dataGrid.addEventListener(DataGrid.DataGrid.Events.SortingChanged, thi s._sortingChanged, this);
46 this._dataGrid.element.addEventListener('mousemove', this._onMouseMove.bind( this), true); 47 this._dataGrid.element.addEventListener('mousemove', this._onMouseMove.bind( this), true);
47 this._dataGrid.setResizeMethod(DataGrid.DataGrid.ResizeMethod.Last); 48 this._dataGrid.setResizeMethod(DataGrid.DataGrid.ResizeMethod.Last);
48 this._dataGrid.setRowContextMenuCallback(this._onContextMenu.bind(this)); 49 this._dataGrid.setRowContextMenuCallback(this._onContextMenu.bind(this));
49 this._dataGrid.asWidget().show(mainView.element); 50 this._dataGrid.asWidget().show(mainView.element);
50 this._dataGrid.addEventListener(DataGrid.DataGrid.Events.SelectedNode, this. _updateDetailsForSelection, this); 51 this._dataGrid.addEventListener(DataGrid.DataGrid.Events.SelectedNode, this. _updateDetailsForSelection, this);
51 52
52 this._detailsView = new UI.VBox(); 53 this._detailsView = new UI.VBox();
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
86 } 87 }
87 88
88 /** 89 /**
89 * @return {boolean} 90 * @return {boolean}
90 */ 91 */
91 _exposePercentages() { 92 _exposePercentages() {
92 return false; 93 return false;
93 } 94 }
94 95
95 /** 96 /**
96 * @param {!Element} parent 97 * @param {!UI.Toolbar} toolbar
97 */ 98 */
98 _populateToolbar(parent) { 99 _populateToolbar(toolbar) {
99 } 100 }
100 101
101 /** 102 /**
102 * @param {?TimelineModel.TimelineProfileTree.Node} node 103 * @param {?TimelineModel.TimelineProfileTree.Node} node
103 */ 104 */
104 _onHover(node) { 105 _onHover(node) {
105 } 106 }
106 107
107 /** 108 /**
108 * @param {!UI.ContextMenu} contextMenu 109 * @param {!UI.ContextMenu} contextMenu
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 buildTopDownTree(doNotAggregate, groupIdCallback) { 185 buildTopDownTree(doNotAggregate, groupIdCallback) {
185 return new TimelineModel.TimelineProfileTree.TopDownRootNode( 186 return new TimelineModel.TimelineProfileTree.TopDownRootNode(
186 this._model.mainThreadEvents(), this._filters, this._startTime, this._en dTime, doNotAggregate, groupIdCallback); 187 this._model.mainThreadEvents(), this._filters, this._startTime, this._en dTime, doNotAggregate, groupIdCallback);
187 } 188 }
188 189
189 /** 190 /**
190 * @protected 191 * @protected
191 * @param {!Array<!DataGrid.DataGrid.ColumnDescriptor>} columns 192 * @param {!Array<!DataGrid.DataGrid.ColumnDescriptor>} columns
192 */ 193 */
193 populateColumns(columns) { 194 populateColumns(columns) {
194 columns.push({id: 'self', title: Common.UIString('Self Time'), width: '110px ', fixedWidth: true, sortable: true}); 195 columns.push({id: 'self', title: Common.UIString('Self Time'), width: '120px ', fixedWidth: true, sortable: true});
195 columns.push({id: 'total', title: Common.UIString('Total Time'), width: '110 px', fixedWidth: true, sortable: true}); 196 columns.push({id: 'total', title: Common.UIString('Total Time'), width: '120 px', fixedWidth: true, sortable: true});
196 columns.push({id: 'activity', title: Common.UIString('Activity'), disclosure : true, sortable: true}); 197 columns.push({id: 'activity', title: Common.UIString('Activity'), disclosure : true, sortable: true});
197 } 198 }
198 199
199 _sortingChanged() { 200 _sortingChanged() {
200 var columnId = this._dataGrid.sortColumnId(); 201 var columnId = this._dataGrid.sortColumnId();
201 if (!columnId) 202 if (!columnId)
202 return; 203 return;
203 var sortFunction; 204 var sortFunction;
204 switch (columnId) { 205 switch (columnId) {
205 case 'startTime': 206 case 'startTime':
(...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after
547 return {name: frameName, color: color}; 548 return {name: frameName, color: color};
548 549
549 default: 550 default:
550 console.assert(false, 'Unexpected aggregation type'); 551 console.assert(false, 'Unexpected aggregation type');
551 } 552 }
552 return {name: node.id || Common.UIString('unattributed'), color: color}; 553 return {name: node.id || Common.UIString('unattributed'), color: color};
553 } 554 }
554 555
555 /** 556 /**
556 * @override 557 * @override
557 * @param {!Element} parent 558 * @param {!UI.Toolbar} toolbar
558 */ 559 */
559 _populateToolbar(parent) { 560 _populateToolbar(toolbar) {
560 var panelToolbar = new UI.Toolbar('', parent);
561 this._groupByCombobox = new UI.ToolbarComboBox(this._onGroupByChanged.bind(t his)); 561 this._groupByCombobox = new UI.ToolbarComboBox(this._onGroupByChanged.bind(t his));
562 /** 562 /**
563 * @param {string} name 563 * @param {string} name
564 * @param {string} id 564 * @param {string} id
565 * @this {Timeline.TimelineTreeView} 565 * @this {Timeline.TimelineTreeView}
566 */ 566 */
567 function addGroupingOption(name, id) { 567 function addGroupingOption(name, id) {
568 var option = this._groupByCombobox.createOption(name, '', id); 568 var option = this._groupByCombobox.createOption(name, '', id);
569 this._groupByCombobox.addOption(option); 569 this._groupByCombobox.addOption(option);
570 if (id === this._groupBySetting.get()) 570 if (id === this._groupBySetting.get())
571 this._groupByCombobox.select(option); 571 this._groupByCombobox.select(option);
572 } 572 }
573 const groupBy = Timeline.AggregatedTimelineTreeView.GroupBy; 573 const groupBy = Timeline.AggregatedTimelineTreeView.GroupBy;
574 addGroupingOption.call(this, Common.UIString('No Grouping'), groupBy.None); 574 addGroupingOption.call(this, Common.UIString('No Grouping'), groupBy.None);
575 addGroupingOption.call(this, Common.UIString('Group by Activity'), groupBy.E ventName); 575 addGroupingOption.call(this, Common.UIString('Group by Activity'), groupBy.E ventName);
576 addGroupingOption.call(this, Common.UIString('Group by Category'), groupBy.C ategory); 576 addGroupingOption.call(this, Common.UIString('Group by Category'), groupBy.C ategory);
577 addGroupingOption.call(this, Common.UIString('Group by Domain'), groupBy.Dom ain); 577 addGroupingOption.call(this, Common.UIString('Group by Domain'), groupBy.Dom ain);
578 addGroupingOption.call(this, Common.UIString('Group by Subdomain'), groupBy. Subdomain); 578 addGroupingOption.call(this, Common.UIString('Group by Subdomain'), groupBy. Subdomain);
579 addGroupingOption.call(this, Common.UIString('Group by URL'), groupBy.URL); 579 addGroupingOption.call(this, Common.UIString('Group by URL'), groupBy.URL);
580 addGroupingOption.call(this, Common.UIString('Group by Frame'), groupBy.Fram e); 580 addGroupingOption.call(this, Common.UIString('Group by Frame'), groupBy.Fram e);
581 panelToolbar.appendToolbarItem(this._groupByCombobox); 581 toolbar.appendToolbarItem(this._groupByCombobox);
582 panelToolbar.appendSpacer(); 582 toolbar.appendSpacer();
583 panelToolbar.appendToolbarItem(this._splitWidget.createShowHideSidebarButton (Common.UIString('heaviest stack'))); 583 toolbar.appendToolbarItem(this._splitWidget.createShowHideSidebarButton(Comm on.UIString('heaviest stack')));
584 } 584 }
585 585
586 /** 586 /**
587 * @param {!TimelineModel.TimelineProfileTree.Node} treeNode 587 * @param {!TimelineModel.TimelineProfileTree.Node} treeNode
588 * @return {!Array<!TimelineModel.TimelineProfileTree.Node>} 588 * @return {!Array<!TimelineModel.TimelineProfileTree.Node>}
589 */ 589 */
590 _buildHeaviestStack(treeNode) { 590 _buildHeaviestStack(treeNode) {
591 console.assert(!!treeNode.parent, 'Attempt to build stack for tree root'); 591 console.assert(!!treeNode.parent, 'Attempt to build stack for tree root');
592 var result = []; 592 var result = [];
593 // Do not add root to the stack, as it's the tree itself. 593 // Do not add root to the stack, as it's the tree itself.
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after
833 833
834 _onSelectionChanged() { 834 _onSelectionChanged() {
835 this.dispatchEventToListeners(Timeline.TimelineStackView.Events.SelectionCha nged); 835 this.dispatchEventToListeners(Timeline.TimelineStackView.Events.SelectionCha nged);
836 } 836 }
837 }; 837 };
838 838
839 /** @enum {symbol} */ 839 /** @enum {symbol} */
840 Timeline.TimelineStackView.Events = { 840 Timeline.TimelineStackView.Events = {
841 SelectionChanged: Symbol('SelectionChanged') 841 SelectionChanged: Symbol('SelectionChanged')
842 }; 842 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698