72 lines
2.1 KiB
JavaScript
72 lines
2.1 KiB
JavaScript
![]() |
/*
|
||
|
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.AccordionContainer");
|
||
|
|
||
|
dojo.require("dojo.widget.*");
|
||
|
dojo.require("dojo.widget.AccordionPane");
|
||
|
|
||
|
dojo.widget.defineWidget(
|
||
|
"dojo.widget.AccordionContainer",
|
||
|
dojo.widget.HtmlWidget,
|
||
|
{
|
||
|
widgetType: "AccordionContainer",
|
||
|
isContainer: true,
|
||
|
labelNodeClass: "",
|
||
|
containerNodeClass: "",
|
||
|
allowCollapse: false,
|
||
|
|
||
|
addChild: function(widget, overrideContainerNode, pos, ref, insertIndex){
|
||
|
if (widget.widgetType != "AccordionPane") {
|
||
|
var wrapper=dojo.widget.createWidget("AccordionPane",{label: widget.label, open: widget.open, labelNodeClass: this.labelNodeClass, containerNodeClass: this.containerNodeClass, allowCollapse: this.allowCollapse });
|
||
|
wrapper.addChild(widget);
|
||
|
this.addWidgetAsDirectChild(wrapper);
|
||
|
this.registerChild(wrapper);
|
||
|
wrapper.setSizes();
|
||
|
return wrapper;
|
||
|
} else {
|
||
|
dojo.html.addClass(widget.containerNode, this.containerNodeClass);
|
||
|
dojo.html.addClass(widget.labelNode, this.labelNodeClass);
|
||
|
this.addWidgetAsDirectChild(widget);
|
||
|
this.registerChild(widget);
|
||
|
widget.setSizes();
|
||
|
return widget;
|
||
|
}
|
||
|
},
|
||
|
|
||
|
postCreate: function() {
|
||
|
var tmpChildren = this.children;
|
||
|
this.children=[];
|
||
|
dojo.html.removeChildren(this.domNode);
|
||
|
dojo.lang.forEach(tmpChildren, dojo.lang.hitch(this,"addChild"));
|
||
|
},
|
||
|
|
||
|
removeChild: function(widget) {
|
||
|
dojo.widget.AccordionContainer.superclass.removeChild.call(this, widget);
|
||
|
if(this.children[0]){
|
||
|
this.children[0].setSizes();
|
||
|
}
|
||
|
},
|
||
|
|
||
|
onResized: function(){
|
||
|
this.children[0].setSizes();
|
||
|
}
|
||
|
}
|
||
|
);
|
||
|
|
||
|
// These arguments can be specified for the children of a Accordion
|
||
|
// Since any widget can be specified as a child, mix them
|
||
|
// into the base widget class. (This is a hack, but it's effective.)
|
||
|
dojo.lang.extend(dojo.widget.Widget, {
|
||
|
label: "",
|
||
|
open: false
|
||
|
});
|
||
|
|