<!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">
<link rel="import" href="/core/analysis/multi_event_sub_view.html">

<polymer-element name="tr-c-a-multi-instant-event-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;
    },

    set selection(selection) {
      this.$.content.textContent = '';
      var realView = document.createElement('tr-c-a-multi-event-sub-view');
      realView.eventsHaveDuration = false;
      realView.eventsHaveSubRows = false;

      this.$.content.appendChild(realView);
      realView.setSelectionWithoutErrorChecks(selection);

      this.currentSelection_ = selection;
    },

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