| // Copyright (c) 2012 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. |
| |
| 'use strict'; |
| |
| base.require('ui'); |
| base.require('analysis.util'); |
| |
| /** |
| * @fileoverview Conains classes for single counter selections. |
| */ |
| |
| base.exportTo('tracing.analysis', function() { |
| |
| /** |
| * |
| * @constructor |
| * @extends {HTMLDivElement} |
| */ |
| var SingleCounterSelectionAnalysis = |
| tracing.ui.define('single-counter-selection'); |
| |
| SingleCounterSelectionAnalysis.prototype = { |
| __proto__: HTMLDivElement.prototype, |
| |
| decorate: function() { |
| this.selection_ = undefined; |
| }, |
| |
| set selection(selection) { |
| |
| if (selection.getNumSliceHits() != 0) |
| throw new Error('Expected only counters in selection'); |
| |
| if (selection.getNumCounterHits() != 1) |
| throw new Error('Expected only 1 counter in selection'); |
| |
| this.selection_ = selection; |
| this.updateContents_(); |
| }, |
| |
| get selection() { |
| return this.selection_; |
| }, |
| |
| set verticalDisplay(bool) { |
| this.verticalDisplay_ = bool; |
| }, |
| |
| get verticalDisplay() { |
| return this.verticalDisplay_; |
| }, |
| |
| updateContents_: function() { |
| this.textContent = ''; |
| |
| if (!this.selection_.length) |
| return; |
| |
| var hit = this.selection_[0]; |
| var counter = hit.counter; |
| var sampleIndex = hit.sampleIndex; |
| |
| var rowEl = document.createElement('div'); |
| rowEl.classList.add('analysis-table-row'); |
| this.createAndAppendSpan_(rowEl, counter.name); |
| this.createAndAppendSpan_(rowEl, sampleIndex); |
| this.appendChild(rowEl); |
| }, |
| |
| createColumnTitleRow: function() { |
| this.textContent = ''; |
| var row = document.createElement('div'); |
| |
| this.createAndAppendSpan_(row, 'Counter Title'); |
| this.createAndAppendSpan_(row, 'Timestamp'); |
| |
| return row; |
| }, |
| |
| createAndAppendSpan_: function(row, content) { |
| var el = document.createElement('span'); |
| el.classList.add('analyis-table-cell'); |
| el.textContent = content; |
| row.appendChild(el); |
| }, |
| |
| }; |
| |
| return { |
| SingleCounterSelectionAnalysis: SingleCounterSelectionAnalysis |
| }; |
| }); |