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

Unified Diff: tracing/tracing/ui/side_panel/metrics_side_panel.html

Issue 1927723002: Add a metrics table side panel (Closed) Base URL: https://github.com/catapult-project/catapult.git@master
Patch Set: clean up Created 4 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tracing/tracing/ui/extras/lean_config.html ('k') | tracing/tracing/ui/value_set_view.html » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tracing/tracing/ui/side_panel/metrics_side_panel.html
diff --git a/tracing/tracing/ui/side_panel/metrics_side_panel.html b/tracing/tracing/ui/side_panel/metrics_side_panel.html
new file mode 100644
index 0000000000000000000000000000000000000000..ca4423f8049a14daee2a863adbc71d9b12174d58
--- /dev/null
+++ b/tracing/tracing/ui/side_panel/metrics_side_panel.html
@@ -0,0 +1,128 @@
+<!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/metrics/metric_registry.html">
+<link rel="import" href="/tracing/metrics/value_list.html">
+<link rel="import" href="/tracing/model/event_set.html">
+<link rel="import" href="/tracing/ui/base/dom_helpers.html">
+<link rel="import" href="/tracing/ui/side_panel/side_panel.html">
+<link rel="import" href="/tracing/ui/value_set_view.html">
+
+<polymer-element name='tr-ui-sp-metrics-side-panel'
+ extends='tr-ui-side-panel'>
+ <template>
+ <style>
+ :host {
+ display: flex;
+ flex-direction: column;
+ width: 400px;
+ }
+ table-container {
+ display: flex;
+ min-height: 0px;
+ overflow-y: auto;
+ }
+ div#error {
+ color: red;
+ }
+ </style>
+
+ <top-left-controls id="top_left_controls"></top-left-controls>
+ <tr-ui-value-set-view id="results"></tr-ui-value-set-view>
+ </template>
+</polymer-element>
+
+<script>
+'use strict';
+tr.exportTo('tr.ui', function() {
+ Polymer('tr-ui-sp-metrics-side-panel', {
+ ready: function() {
+ this.model_ = undefined;
+
+ this.metrics_ = [];
+ tr.metrics.MetricRegistry.getAllRegisteredTypeInfos().forEach(
+ function(m) {
+ if (m.constructor.name === 'sampleMetric')
+ return;
+ this.metrics_.push({
+ label: m.constructor.name,
+ value: m.constructor.name
+ });
+ }, this);
+
+ this.settingsKey_ = 'metrics-side-panel-metric-name';
+ this.currentMetricName_ = 'SystemHealthMetrics';
+ var metricSelector = tr.ui.b.createSelector(
+ this, 'currentMetricName_',
+ this.settingsKey_,
+ this.currentMetricName_,
+ this.metrics_);
+ this.$.top_left_controls.appendChild(metricSelector);
+ metricSelector.addEventListener('change',
+ this.updateContents_.bind(this));
+ },
+
+ get textLabel() {
+ return 'Metrics';
+ },
+
+ supportsModel: function(m) {
+ if (!m) {
+ return {
+ supported: false,
+ reason: 'No model available'
+ };
+ }
+
+ return {
+ supported: true
+ };
+ },
+
+ get model() {
+ return this.model_;
+ },
+
+ set model(model) {
+ this.model_ = model;
+ this.updateContents_();
+ },
+
+ get selection() {
+ // Not applicable to metrics.
+ },
+
+ set selection(selection) {
+ // Not applicable to metrics.
+ },
+
+ set rangeOfInterest(_) {
+ // Not applicable to metrics.
+ },
+
+ updateContents_: function() {
+ if (!this.model_) {
+ this.$.results.error = 'Missing model';
+ return;
+ }
+
+ var metric = tr.metrics.MetricRegistry.findTypeInfoWithName(
+ this.currentMetricName_);
+ var valueList = new tr.metrics.ValueList();
+ try {
+ metric.constructor(valueList, this.model_);
+ } catch (err) {
+ this.$.results.error = err;
+ return;
+ }
+ this.$.results.values = valueList;
+ }
+ });
+
+ return {};
+});
+</script>
« no previous file with comments | « tracing/tracing/ui/extras/lean_config.html ('k') | tracing/tracing/ui/value_set_view.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698