Blame | Last modification | View Log | RSS feed
if(!dojo._hasResource["dijit._base.manager"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.dojo._hasResource["dijit._base.manager"] = true;dojo.provide("dijit._base.manager");dojo.declare("dijit.WidgetSet", null, {constructor: function(){// summary:// A set of widgets indexed by idthis._hash={};},add: function(/*Widget*/ widget){if(this._hash[widget.id]){throw new Error("Tried to register widget with id==" + widget.id + " but that id is already registered");}this._hash[widget.id]=widget;},remove: function(/*String*/ id){delete this._hash[id];},forEach: function(/*Function*/ func){for(var id in this._hash){func(this._hash[id]);}},filter: function(/*Function*/ filter){var res = new dijit.WidgetSet();this.forEach(function(widget){if(filter(widget)){ res.add(widget); }});return res; // dijit.WidgetSet},byId: function(/*String*/ id){return this._hash[id];},byClass: function(/*String*/ cls){return this.filter(function(widget){ return widget.declaredClass==cls; }); // dijit.WidgetSet}});// registry: list of all widgets on pagedijit.registry = new dijit.WidgetSet();dijit._widgetTypeCtr = {};dijit.getUniqueId = function(/*String*/widgetType){// summary// Generates a unique id for a given widgetTypevar id;do{id = widgetType + "_" +(dijit._widgetTypeCtr[widgetType] !== undefined ?++dijit._widgetTypeCtr[widgetType] : dijit._widgetTypeCtr[widgetType] = 0);}while(dijit.byId(id));return id; // String};if(dojo.isIE){// Only run this for IE because we think it's only necessary in that case,// and because it causes problems on FF. See bug #3531 for details.dojo.addOnUnload(function(){dijit.registry.forEach(function(widget){ widget.destroy(); });});}dijit.byId = function(/*String|Widget*/id){// summary:// Returns a widget by its id, or if passed a widget, no-op (like dojo.byId())return (dojo.isString(id)) ? dijit.registry.byId(id) : id; // Widget};dijit.byNode = function(/* DOMNode */ node){// summary:// Returns the widget as referenced by nodereturn dijit.registry.byId(node.getAttribute("widgetId")); // Widget};dijit.getEnclosingWidget = function(/* DOMNode */ node){// summary:// Returns the widget whose dom tree contains node or null if// the node is not contained within the dom tree of any widgetwhile(node){if(node.getAttribute && node.getAttribute("widgetId")){return dijit.registry.byId(node.getAttribute("widgetId"));}node = node.parentNode;}return null;};}