| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 | /*	Copyright (c) 2004-2012, The Dojo Foundation All Rights Reserved.	Available via Academic Free License >= 2.1 OR the modified BSD license.	see: http://dojotoolkit.org/license for details*/if(!dojo._hasResource["dojox.widget.TitleGroup"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.dojo._hasResource["dojox.widget.TitleGroup"] = true;dojo.provide("dojox.widget.TitleGroup");dojo.require("dijit._Widget");dojo.require("dijit.TitlePane");(function(d){		var tp = dijit.TitlePane.prototype,		lookup = function(){			// generic handler function for click and keypress			var parent = this._dxfindParent && this._dxfindParent();			parent && parent.selectChild(this);		}	;		// this might hide this uberprivate function from the docparser.	tp._dxfindParent = function(){		// summary: TitlePane's MUST be first-children of a TitleGroup. only used by		//		`dojox.widget.TitleGroup`. Find a possible parent TitleGroup of a TitlePane		var n = this.domNode.parentNode;		if(n){			n = dijit.getEnclosingWidget(n);			return n && n instanceof dojox.widget.TitleGroup && n;		}		return n;	};	// if we click our own title, hide everyone	d.connect(tp, "_onTitleClick", lookup);	d.connect(tp, "_onTitleKey", function(e){		// if we're tabbing through the items in a group, don't do toggles.		// if we hit enter, let it happen.		if(!(e && e.type && e.type == "keypress" && e.charOrCode == d.keys.TAB)){			lookup.apply(this, arguments);		}	});			d.declare("dojox.widget.TitleGroup", dijit._Widget, {		// summary: A container which controls a series of `dijit.TitlePane`s,		//		allowing one to be visible and hiding siblings		//		// description:		//		A container which controls a series of `dijit.TitlePane`s,		//		allowing one to be visible and hiding siblings. Behaves similarly		//		to a `dijit.layout.AccordionContainer` in that the children		//		are all stacked, though merges the TitlePane behavior of		//		variable height		//		// example:		//	|	var group = new dojox.widget.TitleGroup().placeAt(dojo.body());		//	|	new dijit.TitlePane({ title:"One" }, "fromsource").placeAt(group);		//	|	new dijit.TitlePane({ title:"Remote", href:"foo.html" }).placeAt(group);				"class":"dojoxTitleGroup",		addChild: function(widget, position){			// summary: Add a passed widget reference to this container at an optional			//		position index.			//			// widget: dijit.TitlePane			//		A widget reference to add			// position: String?|Int?			//		An optional index or position to pass. defaults to "last"			return widget.placeAt(this.domNode, position); // dijit.TitlePane		},				removeChild: function(widget){			// summary: Remove the passed widget from this container. Does not destroy			//		child.						this.domNode.removeChild(widget.domNode);			return widget;		},				selectChild: function(widget){			// summary: close all found titlePanes within this group, excluding			// the one the we pass to select			widget && dojo.query("> .dijitTitlePane", this.domNode).forEach(function(n){				var tp = dijit.getEnclosingWidget(n);				tp && tp !== widget && tp.open && tp.set("open", false);			});			return widget; // dijit.TitlePane		}		});})(dojo);}
 |