| <!DOCTYPE html> |
| <!-- |
| Copyright 2015 The Chromium Authors. All rights reserved. |
| Use of this source code is governed by a BSD-style license that can be |
| found in the LICENSE file. |
| --> |
| |
| <link rel="import" href="/tracing/base/iteration_helpers.html"> |
| <link rel="import" href="/tracing/base/unit.html"> |
| <link rel="import" href="/tracing/model/event_set.html"> |
| <link rel="import" href="/tracing/ui/analysis/analysis_sub_view.html"> |
| <link rel="import" href="/tracing/ui/base/table.html"> |
| <link rel="import" href="/tracing/value/ui/scalar_span.html"> |
| |
| <dom-module id='tr-ui-a-power-sample-table'> |
| <template> |
| <style> |
| :host { |
| display: flex; |
| } |
| </style> |
| <tr-ui-b-table id="table"></tr-ui-b-table> |
| </template> |
| </dom-module> |
| |
| <script> |
| 'use strict'; |
| |
| Polymer({ |
| is: 'tr-ui-a-power-sample-table', |
| |
| ready: function() { |
| this.$.table.tableColumns = [ |
| { |
| title: 'Time', |
| width: '100px', |
| value: function(row) { |
| return tr.v.ui.createScalarSpan(row.start, { |
| unit: tr.b.Unit.byName.timeStampInMs |
| }); |
| } |
| }, |
| { |
| title: 'Power', |
| width: '100%', |
| value: function(row) { |
| return tr.v.ui.createScalarSpan(row.powerInW, { |
| unit: tr.b.Unit.byName.powerInWatts |
| }); |
| } |
| } |
| ]; |
| this.sample = undefined; |
| }, |
| |
| get sample() { |
| return this.sample_; |
| }, |
| |
| set sample(sample) { |
| this.sample_ = sample; |
| this.updateContents_(); |
| }, |
| |
| updateContents_: function() { |
| if (this.sample === undefined) |
| this.$.table.tableRows = []; |
| else |
| this.$.table.tableRows = [this.sample]; |
| this.$.table.rebuild(); |
| } |
| }); |
| </script> |
| |
| <dom-module id='tr-ui-a-single-power-sample-sub-view'> |
| <template> |
| <style> |
| :host { display: block; } |
| </style> |
| <tr-ui-a-power-sample-table id="samplesTable"> |
| </tr-ui-a-power-sample-table> |
| </template> |
| </dom-module> |
| <script> |
| 'use strict'; |
| |
| Polymer({ |
| is: 'tr-ui-a-single-power-sample-sub-view', |
| behaviors: [tr.ui.analysis.AnalysisSubView], |
| |
| ready: function() { |
| this.currentSelection_ = undefined; |
| }, |
| |
| get selection() { |
| return this.currentSelection_; |
| }, |
| |
| set selection(selection) { |
| this.currentSelection_ = selection; |
| this.updateContents_(); |
| }, |
| |
| updateContents_: function() { |
| if (this.selection.length != 1) |
| throw 'Cannot pass multiple samples to sample table.'; |
| this.$.samplesTable.sample = tr.b.getOnlyElement(this.selection); |
| } |
| }); |
| |
| tr.ui.analysis.AnalysisSubView.register( |
| 'tr-ui-a-single-power-sample-sub-view', |
| tr.model.PowerSample, |
| { |
| multi: false, |
| title: 'Power Sample', |
| }); |
| |
| </script> |