113e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdoch// Copyright 2015 the V8 project authors. All rights reserved.
213e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdoch// Use of this source code is governed by a BSD-style license that can be
313e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdoch// found in the LICENSE file.
413e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdoch
513e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdoch"use strict";
613e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdoch
713e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdochclass View {
813e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdoch  constructor(id, broker) {
913e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdoch    this.divElement = d3.select("#" + id);
1013e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdoch    this.divNode = this.divElement[0][0];
1113e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdoch    this.parentNode = this.divNode.parentNode;
1213e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdoch  }
1313e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdoch
1413e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdoch  isScrollable() {
1513e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdoch    return false;
1613e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdoch  }
1713e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdoch
1813e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdoch  show(data, rememberedSelection) {
1913e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdoch    this.parentNode.appendChild(this.divElement[0][0]);
2013e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdoch    this.initializeContent(data, rememberedSelection);
2113e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdoch    this.resizeToParent();
2213e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdoch    this.divElement.attr(VISIBILITY, 'visible');
2313e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdoch  }
2413e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdoch
2513e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdoch  resizeToParent() {
2613e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdoch    var view = this;
2713e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdoch    var documentElement = document.documentElement;
28f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch    var y;
29f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch    if (this.parentNode.clientHeight)
30f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch      y = Math.max(this.parentNode.clientHeight, documentElement.clientHeight);
31f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch    else
32f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch      y = documentElement.clientHeight;
3313e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdoch    this.parentNode.style.height = y + 'px';
3413e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdoch  }
3513e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdoch
3613e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdoch  hide() {
3713e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdoch    this.divElement.attr(VISIBILITY, 'hidden');
3813e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdoch    this.deleteContent();
3913e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdoch    this.parentNode.removeChild(this.divNode);
4013e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdoch  }
4113e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdoch
4213e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdoch  detachSelection() {
4313e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdoch    return null;
4413e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdoch  }
4513e2dadd00298019ed862f2b2fc5068bba730bcfBen Murdoch}
46