<!DOCTYPE html>
<!--
Copyright (c) 2013 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/analysis/analysis_sub_view.html">

<polymer-element name="tr-ui-a-multi-sample-sub-view"
    extends="tr-ui-a-sub-view">
  <template>
    <style>
    :host {
      display: block;
    }
    </style>
    <div id='content'></div>
  </template>

  <script>
  'use strict';

  Polymer({
    created: function() {
      this.currentSelection_ = undefined;
    },

    get requiresTallView() {
      return true;
    },

    set selection(selection) {
      this.$.content.textContent = '';
      this.currentSelection_ = selection;

      if (tr.isDefined('tr.ui.e.analysis.SamplingSummaryPanel')) {
        var panel = new tr.ui.e.analysis.SamplingSummaryPanel();
        this.$.content.appendChild(panel);
        panel.selection = selection;
      } else {
        this.$.content.textContent = 'SamplingSummaryPanel not installed. :(';
      }
    },

    get selection() {
      return this.currentSelection_;
    }
  });
  </script>
</polymer-element>
