// 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. 'use strict'; base.requireStylesheet('cc.layer_tree_host_impl_view'); base.require('cc.layer_tree_host_impl'); base.require('cc.layer_picker'); base.require('cc.layer_viewer'); base.require('cc.tile'); base.require('tracing.analysis.object_snapshot_view'); base.require('ui.drag_handle'); base.exportTo('cc', function() { /* * Displays a LayerTreeHostImpl snapshot in a human readable form. * @constructor */ var LayerTreeHostImplSnapshotView = ui.define( 'layer-tree-host-impl-snapshot-view', tracing.analysis.ObjectSnapshotView); LayerTreeHostImplSnapshotView.prototype = { __proto__: tracing.analysis.ObjectSnapshotView.prototype, decorate: function() { this.classList.add('lthi-s-view'); this.selection_ = undefined; this.layerPicker_ = new cc.LayerPicker(); this.layerPicker_.addEventListener( 'selection-changed', this.onLayerPickerSelectionChanged_.bind(this)); this.dragHandle_ = new ui.DragHandle(); this.dragHandle_.horizontal = false; this.dragHandle_.target = this.layerPicker_; this.layerViewer_ = new cc.LayerViewer(); this.layerViewer_.addEventListener( 'selection-changed', this.onLayerViewerSelectionChanged_.bind(this)); this.appendChild(this.layerPicker_); this.appendChild(this.dragHandle_); this.appendChild(this.layerViewer_); }, get objectSnapshot() { return this.objectSnapshot_; }, set objectSnapshot(objectSnapshot) { this.objectSnapshot_ = objectSnapshot; var lthi = this.objectSnapshot; var layerTreeImpl; if (lthi) layerTreeImpl = lthi.getTree(this.layerPicker_.whichTree); this.layerPicker_.lthiSnapshot = lthi; this.layerViewer_.layerTreeImpl = layerTreeImpl; if (!this.selection_) return; this.selection = this.selection_.findEquivalent(lthi); }, get selection() { return this.selection_; }, set selection(selection) { this.selection_ = selection; this.layerPicker_.selection = selection; this.layerViewer_.selection = selection; }, onLayerPickerSelectionChanged_: function() { this.selection_ = this.layerPicker_.selection; this.layerViewer_.selection = this.selection; }, onLayerViewerSelectionChanged_: function() { this.selection_ = this.layerViewer_.selection; this.layerPicker_.selection = this.selection; } }; tracing.analysis.ObjectSnapshotView.register( 'cc::LayerTreeHostImpl', LayerTreeHostImplSnapshotView); return { LayerTreeHostImplSnapshotView: LayerTreeHostImplSnapshotView }; });