blob: 2dac1bc57e3c436a32f60c5dd12dbce5c2454be2 [file] [log] [blame]
/*
Copyright (c) 2004-2006, The Dojo Foundation
All Rights Reserved.
Licensed under the Academic Free License version 2.1 or above OR the
modified BSD license. For more information on Dojo licensing, see:
http://dojotoolkit.org/community/licensing.shtml
*/
dojo.provide("dojo.widget.TitlePane");
dojo.require("dojo.widget.*");
dojo.require("dojo.widget.ContentPane");
dojo.require("dojo.html.style");
dojo.require("dojo.lfx.*");
dojo.widget.defineWidget(
"dojo.widget.TitlePane",
dojo.widget.ContentPane,
{
// summary
// A pane with a title on top, that can be opened or collapsed.
// labelNodeClass: String
// CSS class name for <div> containing title of the pane.
labelNodeClass: "",
// containerNodeClass: String
// CSS class name for <div> containing content of the pane.
containerNodeClass: "",
// label: String
// Title of the pane
label: "",
// open: Boolean
// Whether pane is opened or closed.
open: true,
templatePath: dojo.uri.dojoUri("src/widget/templates/TitlePane.html"),
postCreate: function() {
if (this.label) {
this.labelNode.appendChild(document.createTextNode(this.label));
}
if (this.labelNodeClass) {
dojo.html.addClass(this.labelNode, this.labelNodeClass);
}
if (this.containerNodeClass) {
dojo.html.addClass(this.containerNode, this.containerNodeClass);
}
if (!this.open) {
dojo.html.hide(this.containerNode);
}
dojo.widget.TitlePane.superclass.postCreate.apply(this, arguments);
},
onLabelClick: function() {
// summary: callback when label is clicked
if (this.open) {
dojo.lfx.wipeOut(this.containerNode, 250).play();
this.open=false;
} else {
dojo.lfx.wipeIn(this.containerNode, 250).play();
this.open=true;
}
},
setLabel: function(/*String*/ label) {
// summary: sets the text of the label
this.labelNode.innerHTML=label;
}
});