blob: a6446b64c4cd743b9be5e721a08017d9178de5eb [file] [log] [blame]
<!DOCTYPE html>
<!--
Copyright 2015 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="/tracing/ui/analysis/rebuildable_behavior.html">
<!--
@fileoverview Analysis view stacked pane. See the stacked pane view element
(tr-ui-a-stacked-pane-view) documentation for more details.
-->
<script>
'use strict';
tr.exportTo('tr.ui.analysis', function() {
var StackedPaneImpl = {
/**
* Request changing the child pane of this pane in the associated stacked
* pane view. If the assigned builder is undefined, request removing the
* current child pane.
*
* Note that setting this property before appended() is called will have no
* effect (as there will be no listener attached to the pane).
*
* This method is intended to be called by subclasses.
*/
set childPaneBuilder(childPaneBuilder) {
this.childPaneBuilder_ = childPaneBuilder;
this.dispatchEvent(new tr.b.Event('request-child-pane-change'));
},
get childPaneBuilder() {
return this.childPaneBuilder_;
},
/**
* Called right after the pane is appended to a pane view.
*
* This method triggers an immediate rebuild by default. Subclasses are
* free to change this behavior (e.g. if a pane has lots of data to display,
* it might decide to defer rebuilding in order not to cause jank).
*/
appended: function() {
this.rebuild();
}
};
var StackedPane = [tr.ui.analysis.RebuildableBehavior, StackedPaneImpl];
return {
StackedPane: StackedPane
};
});
Polymer({
is: 'tr-ui-a-stacked-pane',
behaviors: [tr.ui.analysis.StackedPane]
});
</script>