diff options
Diffstat (limited to 'includes/js/dijit/_base/manager.js')
-rw-r--r-- | includes/js/dijit/_base/manager.js | 194 |
1 files changed, 0 insertions, 194 deletions
diff --git a/includes/js/dijit/_base/manager.js b/includes/js/dijit/_base/manager.js deleted file mode 100644 index cfb5337..0000000 --- a/includes/js/dijit/_base/manager.js +++ /dev/null @@ -1,194 +0,0 @@ -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, { - // summary: - // A set of widgets indexed by id - - constructor: function(){ - this._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 - } - }); - -/*===== -dijit.registry = { - // summary: A list of widgets on a page. - // description: Is an instance of dijit.WidgetSet -}; -=====*/ -dijit.registry = new dijit.WidgetSet(); - -dijit._widgetTypeCtr = {}; - -dijit.getUniqueId = function(/*String*/widgetType){ - // summary - // Generates a unique id for a given widgetType - - var id; - do{ - id = widgetType + "_" + - (widgetType in dijit._widgetTypeCtr ? - ++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 node - return 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 widget - while(node){ - if(node.getAttribute && node.getAttribute("widgetId")){ - return dijit.registry.byId(node.getAttribute("widgetId")); - } - node = node.parentNode; - } - return null; -}; - -// elements that are tab-navigable if they have no tabindex value set -// (except for "a", which must have an href attribute) -dijit._tabElements = { - area: true, - button: true, - input: true, - object: true, - select: true, - textarea: true -}; - -dijit._isElementShown = function(/*Element*/elem){ - var style = dojo.style(elem); - return (style.visibility != "hidden") - && (style.visibility != "collapsed") - && (style.display != "none"); -} - -dijit.isTabNavigable = function(/*Element*/elem){ - // summary: - // Tests if an element is tab-navigable - if(dojo.hasAttr(elem, "disabled")){ return false; } - var hasTabindex = dojo.hasAttr(elem, "tabindex"); - var tabindex = dojo.attr(elem, "tabindex"); - if(hasTabindex && tabindex >= 0) { - return true; // boolean - } - var name = elem.nodeName.toLowerCase(); - if(((name == "a" && dojo.hasAttr(elem, "href")) - || dijit._tabElements[name]) - && (!hasTabindex || tabindex >= 0)){ - return true; // boolean - } - return false; // boolean -}; - -dijit._getTabNavigable = function(/*DOMNode*/root){ - // summary: - // Finds the following descendants of the specified root node: - // * the first tab-navigable element in document order - // without a tabindex or with tabindex="0" - // * the last tab-navigable element in document order - // without a tabindex or with tabindex="0" - // * the first element in document order with the lowest - // positive tabindex value - // * the last element in document order with the highest - // positive tabindex value - var first, last, lowest, lowestTabindex, highest, highestTabindex; - var walkTree = function(/*DOMNode*/parent){ - dojo.query("> *", parent).forEach(function(child){ - var isShown = dijit._isElementShown(child); - if(isShown && dijit.isTabNavigable(child)){ - var tabindex = dojo.attr(child, "tabindex"); - if(!dojo.hasAttr(child, "tabindex") || tabindex == 0){ - if(!first){ first = child; } - last = child; - }else if(tabindex > 0){ - if(!lowest || tabindex < lowestTabindex){ - lowestTabindex = tabindex; - lowest = child; - } - if(!highest || tabindex >= highestTabindex){ - highestTabindex = tabindex; - highest = child; - } - } - } - if(isShown){ walkTree(child) } - }); - }; - if(dijit._isElementShown(root)){ walkTree(root) } - return { first: first, last: last, lowest: lowest, highest: highest }; -} - -dijit.getFirstInTabbingOrder = function(/*String|DOMNode*/root){ - // summary: - // Finds the descendant of the specified root node - // that is first in the tabbing order - var elems = dijit._getTabNavigable(dojo.byId(root)); - return elems.lowest ? elems.lowest : elems.first; // Element -}; - -dijit.getLastInTabbingOrder = function(/*String|DOMNode*/root){ - // summary: - // Finds the descendant of the specified root node - // that is last in the tabbing order - var elems = dijit._getTabNavigable(dojo.byId(root)); - return elems.last ? elems.last : elems.highest; // Element -}; - -} |