<!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="/core/analysis/analysis_sub_view.html">

<polymer-element name="tr-c-a-multi-sample-sub-view"
    extends="tr-c-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.e.analysis.SamplingSummaryPanel')) {
        var panel = new tr.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>
