Index: tracing/tracing/value/ui/scalar_map_table.html |
diff --git a/tracing/tracing/value/ui/scalar_map_table.html b/tracing/tracing/value/ui/scalar_map_table.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..f303cb781dc3aaeea66b926b988681d428d4d8bc |
--- /dev/null |
+++ b/tracing/tracing/value/ui/scalar_map_table.html |
@@ -0,0 +1,92 @@ |
+<!DOCTYPE html> |
+<!-- |
+Copyright 2016 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/ui/base/table.html"> |
+<link rel="import" href="/tracing/value/ui/scalar_span.html"> |
+ |
+<dom-module name="tr-v-ui-scalar-map-table"> |
+ <template> |
+ <style> |
+ </style> |
+ <tr-ui-b-table id="table"></tr-ui-b-table> |
+ </template> |
+</dom-module> |
+ |
+<script> |
+'use strict'; |
+Polymer({ |
+ is: 'tr-v-ui-scalar-map-table', |
+ |
+ created: function() { |
+ /** @type {!Map.<string, !tr.v.ScalarNumeric>} */ |
+ this.scalarMap_ = new Map(); |
+ |
+ /** @type {!Map.<string, !tr.b.Statistics.Significance>} */ |
+ this.significance_ = new Map(); |
+ }, |
+ |
+ ready: function() { |
+ this.$.table.showHeader = false; |
+ this.$.table.tableColumns = [ |
+ { |
+ value: function(row) { |
+ return row.name; |
+ } |
+ }, |
+ { |
+ align: tr.ui.b.TableFormat.ColumnAlignment.RIGHT, |
+ value: function(row) { |
+ var span = tr.v.ui.createScalarSpan(row.value); |
+ if (row.significance !== undefined) { |
+ span.significance = row.significance; |
+ } else if (row.anyRowsHaveSignificance) { |
+ // Ensure vertical alignment. |
+ span.style.marginRight = '14px'; |
+ } |
+ span.style.whiteSpace = 'nowrap'; |
+ return span; |
+ } |
+ } |
+ ]; |
+ }, |
+ |
+ get scalarMap() { |
+ return this.scalarMap_; |
+ }, |
+ |
+ /** |
+ * @param {!Map.<string,!tr.v.ScalarNumeric>} map |
+ */ |
+ set scalarMap(map) { |
+ this.scalarMap_ = map; |
+ this.updateContents_(); |
+ }, |
+ |
+ /** |
+ * @param {string} key |
+ * @param {!tr.b.Statistics.Significance} significance |
+ */ |
+ setSignificanceForKey: function(key, significance) { |
+ this.significance_.set(key, significance); |
+ this.updateContents_(); |
+ }, |
+ |
+ updateContents_: function() { |
+ var rows = []; |
+ for (var [key, scalar] of this.scalarMap) { |
+ rows.push({ |
+ name: key, |
+ value: scalar, |
+ significance: this.significance_.get(key), |
+ anyRowsHaveSignificance: (this.significance_.size > 0) |
+ }); |
+ } |
+ this.$.table.tableRows = rows; |
+ this.$.table.rebuild(); |
+ } |
+}); |
+</script> |