// 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';
/**
* @fileoverview LayerViewer coordinates graphical and analysis views of layers.
*/
base.requireStylesheet('cc.layer_viewer');
base.require('base.raf');
base.require('base.settings');
base.require('cc.constants');
base.require('cc.layer_tree_quad_stack_viewer');
base.require('tracing.analysis.util');
base.require('ui.drag_handle');
base.exportTo('cc', function() {
var constants = cc.constants;
/**
* @constructor
*/
var LayerViewer = ui.define('layer-viewer');
LayerViewer.prototype = {
__proto__: HTMLUnknownElement.prototype,
decorate: function() {
this.layerTreeQuadStackViewer_ = new cc.LayerTreeQuadStackViewer();
this.dragBar_ = new ui.DragHandle();
this.analysisEl_ = document.createElement('layer-viewer-analysis');
this.dragBar_.target = this.analysisEl_;
this.appendChild(this.layerTreeQuadStackViewer_);
this.appendChild(this.dragBar_);
this.appendChild(this.analysisEl_);
this.layerTreeQuadStackViewer_.addEventListener('selectionChange',
this.layerTreeQuadStackViewerSelectionChanged_.bind(this));
},
get layerTreeImpl() {
return this.layerTreeQuadStackViewer_.layerTreeImpl;
},
set layerTreeImpl(newValue) {
return this.layerTreeQuadStackViewer_.layerTreeImpl = newValue;
},
get selection() {
return this.layerTreeQuadStackViewer_.selection;
},
set selection(newValue) {
this.layerTreeQuadStackViewer_.selection = newValue;
},
layerTreeQuadStackViewerSelectionChanged_: function(event) {
var selection = event.newValue;
if (selection) {
this.dragBar_.style.display = '';
this.analysisEl_.style.display = '';
this.analysisEl_.textContent = '';
var analysis = selection.createAnalysis();
this.analysisEl_.appendChild(analysis);
} else {
this.dragBar_.style.display = 'none';
this.analysisEl_.style.display = 'none';
var analysis = this.analysisEl_.firstChild;
if (analysis)
this.analysisEl_.removeChild(analysis);
this.layerTreeQuadStackViewer_.style.height =
window.getComputedStyle(this).height;
}
}
};
return {
LayerViewer: LayerViewer
};
});