Changeset 162527 in webkit


Ignore:
Timestamp:
Jan 22, 2014 9:54:28 AM (10 years ago)
Author:
timothy@apple.com
Message:

Show the Resource and Record selection path in the navigation bar for Timeline views.

https://bugs.webkit.org/show_bug.cgi?id=127367

Reviewed by Joseph Pecoraro.

  • UserInterface/LayoutTimelineView.js:

(WebInspector.LayoutTimelineView.prototype.treeElementPathComponentSelected):
(WebInspector.LayoutTimelineView.prototype._dataGridNodeSelected):

  • UserInterface/NetworkTimelineView.js:

(WebInspector.NetworkTimelineView.prototype.treeElementPathComponentSelected):
(WebInspector.NetworkTimelineView.prototype._dataGridNodeSelected):

  • UserInterface/OverviewTimelineView.js:

(WebInspector.OverviewTimelineView.prototype.get selectionPathComponents):
(WebInspector.OverviewTimelineView.prototype.treeElementPathComponentSelected):
(WebInspector.OverviewTimelineView.prototype._dataGridNodeSelected):

  • UserInterface/ScriptTimelineView.js:

(WebInspector.ScriptTimelineView.prototype.treeElementPathComponentSelected):
(WebInspector.ScriptTimelineView.prototype._dataGridNodeSelected):

  • UserInterface/TimelineContentView.js:

(WebInspector.TimelineContentView.prototype._timelineViewSelectionPathComponentsDidChange):
(WebInspector.TimelineContentView.prototype._showTimelineView):

  • UserInterface/TimelineDataGrid.js:

(WebInspector.TimelineDataGrid.prototype.treeElementForDataGridNode):
(WebInspector.TimelineDataGrid.prototype.dataGridNodeForTreeElement):

  • UserInterface/TimelineView.js:

(WebInspector.TimelineView.prototype.get selectionPathComponents):
(WebInspector.TimelineView.prototype.treeElementPathComponentSelected):

Location:
trunk/Source/WebInspectorUI
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebInspectorUI/ChangeLog

    r162422 r162527  
     12014-01-21  Timothy Hatcher  <timothy@apple.com>
     2
     3        Show the Resource and Record selection path in the navigation bar for Timeline views.
     4
     5        https://bugs.webkit.org/show_bug.cgi?id=127367
     6
     7        Reviewed by Joseph Pecoraro.
     8
     9        * UserInterface/LayoutTimelineView.js:
     10        (WebInspector.LayoutTimelineView.prototype.treeElementPathComponentSelected):
     11        (WebInspector.LayoutTimelineView.prototype._dataGridNodeSelected):
     12        * UserInterface/NetworkTimelineView.js:
     13        (WebInspector.NetworkTimelineView.prototype.treeElementPathComponentSelected):
     14        (WebInspector.NetworkTimelineView.prototype._dataGridNodeSelected):
     15        * UserInterface/OverviewTimelineView.js:
     16        (WebInspector.OverviewTimelineView.prototype.get selectionPathComponents):
     17        (WebInspector.OverviewTimelineView.prototype.treeElementPathComponentSelected):
     18        (WebInspector.OverviewTimelineView.prototype._dataGridNodeSelected):
     19        * UserInterface/ScriptTimelineView.js:
     20        (WebInspector.ScriptTimelineView.prototype.treeElementPathComponentSelected):
     21        (WebInspector.ScriptTimelineView.prototype._dataGridNodeSelected):
     22        * UserInterface/TimelineContentView.js:
     23        (WebInspector.TimelineContentView.prototype._timelineViewSelectionPathComponentsDidChange):
     24        (WebInspector.TimelineContentView.prototype._showTimelineView):
     25        * UserInterface/TimelineDataGrid.js:
     26        (WebInspector.TimelineDataGrid.prototype.treeElementForDataGridNode):
     27        (WebInspector.TimelineDataGrid.prototype.dataGridNodeForTreeElement):
     28        * UserInterface/TimelineView.js:
     29        (WebInspector.TimelineView.prototype.get selectionPathComponents):
     30        (WebInspector.TimelineView.prototype.treeElementPathComponentSelected):
     31
    1322014-01-20  Timothy Hatcher  <timothy@apple.com>
    233
  • trunk/Source/WebInspectorUI/UserInterface/LayoutTimelineView.js

    r162421 r162527  
    6262    this._dataGrid = new WebInspector.LayoutTimelineDataGrid(this.navigationSidebarTreeOutline, columns);
    6363    this._dataGrid.addEventListener(WebInspector.TimelineDataGrid.Event.FiltersDidChange, this._dataGridFiltersDidChange, this);
     64    this._dataGrid.addEventListener(WebInspector.DataGrid.Event.SelectedNodeChanged, this._dataGridNodeSelected, this);
    6465
    6566    this.element.classList.add(WebInspector.LayoutTimelineView.StyleClassName);
     
    121122    },
    122123
     124    // Protected
     125
     126    treeElementPathComponentSelected: function(event)
     127    {
     128        var dataGridNode = this._dataGrid.dataGridNodeForTreeElement(event.data.pathComponent.generalTreeElement);
     129        if (!dataGridNode)
     130            return;
     131        dataGridNode.revealAndSelect();
     132    },
     133
    123134    // Private
    124135
     
    153164    },
    154165
     166    _dataGridNodeSelected: function(event)
     167    {
     168        this.dispatchEventToListeners(WebInspector.TimelineView.Event.SelectionPathComponentsDidChange);
     169    },
     170
    155171    _treeElementSelected: function(treeElement, selectedByUser)
    156172    {
  • trunk/Source/WebInspectorUI/UserInterface/NetworkTimelineView.js

    r162418 r162527  
    7979    this._dataGrid = new WebInspector.TimelineDataGrid(this.navigationSidebarTreeOutline, columns);
    8080    this._dataGrid.addEventListener(WebInspector.TimelineDataGrid.Event.FiltersDidChange, this._dataGridFiltersDidChange, this);
     81    this._dataGrid.addEventListener(WebInspector.DataGrid.Event.SelectedNodeChanged, this._dataGridNodeSelected, this);
    8182
    8283    this.element.classList.add(WebInspector.NetworkTimelineView.StyleClassName);
     
    136137
    137138        this._dataGrid.reset();
     139    },
     140
     141    // Protected
     142
     143    treeElementPathComponentSelected: function(event)
     144    {
     145        var dataGridNode = this._dataGrid.dataGridNodeForTreeElement(event.data.pathComponent.generalTreeElement);
     146        if (!dataGridNode)
     147            return;
     148        dataGridNode.revealAndSelect();
    138149    },
    139150
     
    175186    },
    176187
     188    _dataGridNodeSelected: function(event)
     189    {
     190        this.dispatchEventToListeners(WebInspector.TimelineView.Event.SelectionPathComponentsDidChange);
     191    },
     192
    177193    _treeElementSelected: function(treeElement, selectedByUser)
    178194    {
  • trunk/Source/WebInspectorUI/UserInterface/OverviewTimelineView.js

    r162418 r162527  
    3333
    3434    var columns = {"graph": {width: "100%"}};
     35
    3536    this._dataGrid = new WebInspector.DataGrid(columns);
     37    this._dataGrid.addEventListener(WebInspector.DataGrid.Event.SelectedNodeChanged, this._dataGridNodeSelected, this);
    3638
    3739    this._treeOutlineDataGridSynchronizer = new WebInspector.TreeOutlineDataGridSynchronizer(this._contentTreeOutline, this._dataGrid);
     
    104106    },
    105107
     108    get selectionPathComponents()
     109    {
     110        var dataGridNode = this._dataGrid.selectedNode;
     111        if (!dataGridNode)
     112            return null;
     113
     114        var pathComponents = [];
     115
     116        while (dataGridNode && !dataGridNode.root) {
     117            var treeElement = this._treeOutlineDataGridSynchronizer.treeElementForDataGridNode(dataGridNode);
     118            console.assert(treeElement);
     119            if (!treeElement)
     120                break;
     121
     122            var pathComponent = new WebInspector.GeneralTreeElementPathComponent(treeElement);
     123            pathComponent.addEventListener(WebInspector.HierarchicalPathComponent.Event.SiblingWasSelected, this.treeElementPathComponentSelected, this);
     124            pathComponents.unshift(pathComponent);
     125            dataGridNode = dataGridNode.parent;
     126        }
     127
     128        return pathComponents;
     129    },
     130
     131    // Protected
     132
     133    treeElementPathComponentSelected: function(event)
     134    {
     135        var dataGridNode = this._treeOutlineDataGridSynchronizer.dataGridNodeForTreeElement(event.data.pathComponent.generalTreeElement);
     136        if (!dataGridNode)
     137            return;
     138        dataGridNode.revealAndSelect();
     139    },
     140
    106141    // Private
    107142
     
    267302    },
    268303
     304    _dataGridNodeSelected: function(event)
     305    {
     306        this.dispatchEventToListeners(WebInspector.TimelineView.Event.SelectionPathComponentsDidChange);
     307    },
     308
    269309    _treeElementSelected: function(treeElement, selectedByUser)
    270310    {
  • trunk/Source/WebInspectorUI/UserInterface/ScriptTimelineView.js

    r162421 r162527  
    5656    this._dataGrid = new WebInspector.ScriptTimelineDataGrid(this.navigationSidebarTreeOutline, columns);
    5757    this._dataGrid.addEventListener(WebInspector.TimelineDataGrid.Event.FiltersDidChange, this._dataGridFiltersDidChange, this);
     58    this._dataGrid.addEventListener(WebInspector.DataGrid.Event.SelectedNodeChanged, this._dataGridNodeSelected, this);
    5859
    5960    this.element.classList.add(WebInspector.ScriptTimelineView.StyleClassName);
     
    115116    },
    116117
     118    // Protected
     119
     120    treeElementPathComponentSelected: function(event)
     121    {
     122        var dataGridNode = this._dataGrid.dataGridNodeForTreeElement(event.data.pathComponent.generalTreeElement);
     123        if (!dataGridNode)
     124            return;
     125        dataGridNode.revealAndSelect();
     126    },
     127
    117128    // Private
    118129
     
    147158    },
    148159
     160    _dataGridNodeSelected: function(event)
     161    {
     162        this.dispatchEventToListeners(WebInspector.TimelineView.Event.SelectionPathComponentsDidChange);
     163    },
     164
    149165    _treeElementSelected: function(treeElement, selectedByUser)
    150166    {
  • trunk/Source/WebInspectorUI/UserInterface/TimelineContentView.js

    r162422 r162527  
    129129    get selectionPathComponents()
    130130    {
    131         if (!this._currentTimelineViewIdentifier)
    132             return [];
    133         return [this._pathComponentMap.get(this._currentTimelineViewIdentifier)];
     131        var pathComponents = this._currentTimelineViewIdentifier ? [this._pathComponentMap.get(this._currentTimelineViewIdentifier)] : [];
     132        pathComponents = pathComponents.concat(this._currentTimelineView.selectionPathComponents || []);
     133        return pathComponents;
    134134    },
    135135
     
    218218    },
    219219
     220    _timelineViewSelectionPathComponentsDidChange: function()
     221    {
     222        this.dispatchEventToListeners(WebInspector.ContentView.Event.SelectionPathComponentsDidChange);
     223    },
     224
    220225    _showTimelineView: function(timelineView, identifier)
    221226    {
     
    226231
    227232        if (this._currentTimelineView) {
     233            this._currentTimelineView.removeEventListener(WebInspector.TimelineView.Event.SelectionPathComponentsDidChange, this._timelineViewSelectionPathComponentsDidChange, this);
     234
    228235            this._currentTimelineView.hidden();
    229236            this._currentTimelineView.element.remove();
     
    237244
    238245        if (this._currentTimelineView) {
     246            this._currentTimelineView.addEventListener(WebInspector.TimelineView.Event.SelectionPathComponentsDidChange, this._timelineViewSelectionPathComponentsDidChange, this);
     247
    239248            this._viewContainer.appendChild(this._currentTimelineView.element);
    240249
  • trunk/Source/WebInspectorUI/UserInterface/TimelineDataGrid.js

    r162415 r162527  
    120120    },
    121121
     122    treeElementForDataGridNode: function(dataGridNode)
     123    {
     124        return this._treeOutlineDataGridSynchronizer.treeElementForDataGridNode(dataGridNode);
     125    },
     126
     127    dataGridNodeForTreeElement: function(treeElement)
     128    {
     129        return this._treeOutlineDataGridSynchronizer.dataGridNodeForTreeElement(treeElement);
     130    },
     131
    122132    callFramePopoverAnchorElement: function()
    123133    {
  • trunk/Source/WebInspectorUI/UserInterface/TimelineView.js

    r162415 r162527  
    4141WebInspector.TimelineView.StyleClassName = "timeline-view";
    4242
     43WebInspector.TimelineView.Event = {
     44    SelectionPathComponentsDidChange: "timeline-view-selection-path-components-did-change"
     45};
     46
    4347WebInspector.TimelineView.prototype = {
    4448    constructor: WebInspector.TimelineView,
     
    5660        // Implemented by sub-classes if needed.
    5761        return null;
     62    },
     63
     64    get selectionPathComponents()
     65    {
     66        if (!this._contentTreeOutline.selectedTreeElement)
     67            return null;
     68
     69        var pathComponent = new WebInspector.GeneralTreeElementPathComponent(this._contentTreeOutline.selectedTreeElement);
     70        pathComponent.addEventListener(WebInspector.HierarchicalPathComponent.Event.SiblingWasSelected, this.treeElementPathComponentSelected, this);
     71        return [pathComponent];
    5872    },
    5973
     
    177191    // Protected
    178192
     193    treeElementPathComponentSelected: function(event)
     194    {
     195        // Implemented by sub-classes if needed.
     196    },
     197
    179198    needsLayout: function()
    180199    {
Note: See TracChangeset for help on using the changeset viewer.