polardbxengine/storage/ndb/mcc/frontend/dojo/dojox/mobile/viewRegistry.js.uncompresse...

95 lines
2.2 KiB
JavaScript

define("dojox/mobile/viewRegistry", [
"dojo/_base/array",
"dojo/dom-class",
"dijit/registry"
], function(array, domClass, registry){
// module:
// dojox/mobile/viewRegistry
var viewRegistry = {
// summary:
// A registry of existing views.
// length: Number
// The number of registered views.
length: 0,
// hash: [private] Object
// The object used to register views.
hash: {},
// initialView: [private] dojox/mobile/View
// The initial view.
initialView: null,
add: function(/*dojox/mobile/View*/ view){
// summary:
// Adds a view to the registry.
this.hash[view.id] = view;
this.length++;
},
remove: function(/*String*/ id){
// summary:
// Removes a view from the registry.
if(this.hash[id]){
delete this.hash[id];
this.length--;
}
},
getViews: function(){
// summary:
// Gets all registered views.
// returns: Array
var arr = [];
for(var i in this.hash){
arr.push(this.hash[i]);
}
return arr;
},
getParentView: function(/*dojox/mobile/View*/ view){
// summary:
// Gets the parent view of the specified view.
// returns: dojox/mobile/View
for(var v = view.getParent(); v; v = v.getParent()){
if(domClass.contains(v.domNode, "mblView")){ return v; }
}
return null;
},
getChildViews: function(/*dojox/mobile/View*/ parent){
// summary:
// Gets the children views of the specified view.
// returns: Array
return array.filter(this.getViews(), function(v){ return this.getParentView(v) === parent; }, this);
},
getEnclosingView: function(/*DomNode*/ node){
// summary:
// Gets the view containing the specified DOM node.
// returns: dojox/mobile/View
for(var n = node; n && n.tagName !== "BODY"; n = n.parentNode){
if(n.nodeType === 1 && domClass.contains(n, "mblView")){
return registry.byNode(n);
}
}
return null;
},
getEnclosingScrollable: function(/*DomNode*/ node){
// summary:
// Gets the dojox/mobile/scrollable object containing the specified DOM node.
// returns: dojox/mobile/scrollable
for(var w = registry.getEnclosingWidget(node); w; w = w.getParent()){
if(w.scrollableParams && w._v){ return w; }
}
return null;
}
};
return viewRegistry;
});