blob: c909a9f0de3d65b307273847453fd9f6f8f7d865 [file] [log] [blame]
Chris Craikb122baf2015-03-05 13:58:42 -08001<!DOCTYPE html>
2<!--
3Copyright (c) 2013 The Chromium Authors. All rights reserved.
4Use of this source code is governed by a BSD-style license that can be
5found in the LICENSE file.
6-->
7
Chris Craikbeca7ae2015-04-07 13:29:55 -07008<link rel="import" href="/base/ui/dom_helpers.html">
9<link rel="import" href="/core/analysis/table_builder.html">
10<link rel="import" href="/core/analysis/time_stamp.html">
11<link rel="import" href="/core/analysis/analysis_link.html">
Chris Craikb122baf2015-03-05 13:58:42 -080012<link rel="import" href="/core/analysis/analysis_sub_view.html">
13<link rel="import" href="/core/analysis/util.html">
14
15<polymer-element name="tv-c-multi-object-sub-view"
16 extends="tracing-analysis-sub-view">
Chris Craikbeca7ae2015-04-07 13:29:55 -070017 <template>
18 <style>
19 :host {
20 display: flex;
21 }
22 </style>
23 <tracing-analysis-nested-table id="content"></tracing-analysis-nested-table>
24 </template>
Chris Craikb122baf2015-03-05 13:58:42 -080025 <script>
26 'use strict';
27
28 Polymer({
29 created: function() {
30 this.currentSelection_ = undefined;
31 },
32
Chris Craikbeca7ae2015-04-07 13:29:55 -070033 ready: function() {
34 this.$.content.showHeader = false;
35 },
36
Chris Craikb122baf2015-03-05 13:58:42 -080037 get selection() {
38 return this.currentSelection_;
39 },
40
41 set selection(selection) {
42 this.currentSelection_ = selection;
Chris Craikb122baf2015-03-05 13:58:42 -080043
Chris Craikbeca7ae2015-04-07 13:29:55 -070044 var objectEvents = tv.b.asArray(selection).sort(
Chris Craikb122baf2015-03-05 13:58:42 -080045 tv.b.Range.compareByMinTimes);
46
Chris Craikbeca7ae2015-04-07 13:29:55 -070047 var table = this.$.content;
48 table.tableColumns = [
49 {
50 title: 'First',
51 value: function(event) {
52 if (event instanceof tv.c.trace_model.ObjectSnapshot)
Chris Craik44c28202015-05-12 17:25:16 -070053 return tv.c.analysis.createTimeStamp(event.ts);
Chris Craikb122baf2015-03-05 13:58:42 -080054
Chris Craikbeca7ae2015-04-07 13:29:55 -070055 var spanEl = document.createElement('span');
56 spanEl.appendChild(tv.c.analysis.createTimeStamp(event.creationTs));
57 spanEl.appendChild(tv.b.ui.createSpan({
58 textContent: '-',
59 marginLeft: '4px',
60 marginRight: '4px'
61 }));
62 if (event.deletionTs != Number.MAX_VALUE) {
63 spanEl.appendChild(
64 tv.c.analysis.createTimeStamp(event.deletionTs));
65 }
66 return spanEl;
67 },
68 width: '200px'
69 },
70 {
71 title: 'Second',
72 value: function(event) {
73 var linkEl = document.createElement('tv-c-analysis-link');
74 linkEl.setSelectionAndContent(function() {
75 return new tv.c.Selection(event);
76 }, event.userFriendlyName);
77 return linkEl;
78 },
79 width: '100%'
Chris Craikb122baf2015-03-05 13:58:42 -080080 }
Chris Craikbeca7ae2015-04-07 13:29:55 -070081 ];
82 table.tableRows = objectEvents;
83 table.rebuild();
Chris Craikb122baf2015-03-05 13:58:42 -080084 }
85 });
86 </script>
Chris Craik44c28202015-05-12 17:25:16 -070087</polymer-element>