a:29:{s:9:"#provides";s:21:"dojox.widget.Iterator";s:9:"#resource";s:18:"widget/Iterator.js";s:9:"#requires";a:1:{i:0;a:3:{i:0;s:6:"common";i:1;s:17:"dijit.Declaration";i:2;s:5:"dijit";}}s:21:"dojox.widget.Iterator";a:4:{s:4:"type";s:8:"Function";s:6:"chains";a:2:{s:9:"prototype";a:1:{i:0;s:17:"dijit.Declaration";}s:4:"call";a:1:{i:0;s:17:"dijit.Declaration";}}s:9:"classlike";b:1;s:7:"summary";s:0:"";}s:33:"dojox.widget.Iterator.constructor";a:2:{s:9:"prototype";s:21:"dojox.widget.Iterator";s:7:"summary";s:0:"";}s:27:"dojox.widget.Iterator.start";a:2:{s:9:"prototype";s:21:"dojox.widget.Iterator";s:7:"summary";s:0:"";}s:30:"dojox.widget.Iterator.fetchMax";a:2:{s:9:"prototype";s:21:"dojox.widget.Iterator";s:7:"summary";s:0:"";}s:27:"dojox.widget.Iterator.query";a:3:{s:9:"prototype";s:21:"dojox.widget.Iterator";s:4:"type";s:6:"Object";s:7:"summary";s:0:"";}s:27:"dojox.widget.Iterator.attrs";a:3:{s:9:"prototype";s:21:"dojox.widget.Iterator";s:8:"instance";s:21:"dojox.widget.Iterator";s:7:"summary";s:0:"";}s:34:"dojox.widget.Iterator.defaultValue";a:2:{s:9:"prototype";s:21:"dojox.widget.Iterator";s:7:"summary";s:0:"";}s:32:"dojox.widget.Iterator.widgetCtor";a:3:{s:9:"prototype";s:21:"dojox.widget.Iterator";s:8:"instance";s:21:"dojox.widget.Iterator";s:7:"summary";s:0:"";}s:32:"dojox.widget.Iterator.dataValues";a:2:{s:9:"prototype";s:21:"dojox.widget.Iterator";s:7:"summary";s:0:"";}s:26:"dojox.widget.Iterator.data";a:2:{s:9:"prototype";s:21:"dojox.widget.Iterator";s:7:"summary";s:0:"";}s:27:"dojox.widget.Iterator.store";a:2:{s:9:"prototype";s:21:"dojox.widget.Iterator";s:7:"summary";s:0:"";}s:31:"dojox.widget.Iterator._srcIndex";a:4:{s:9:"prototype";s:21:"dojox.widget.Iterator";s:8:"instance";s:21:"dojox.widget.Iterator";s:7:"private";b:1;s:7:"summary";s:0:"";}s:32:"dojox.widget.Iterator._srcParent";a:4:{s:9:"prototype";s:21:"dojox.widget.Iterator";s:8:"instance";s:21:"dojox.widget.Iterator";s:7:"private";b:1;s:7:"summary";s:0:"";}s:34:"dojox.widget.Iterator._setSrcIndex";a:6:{s:9:"prototype";s:21:"dojox.widget.Iterator";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:1:"s";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:152:" this._srcIndex = 0;
this._srcParent = s.parentNode;
var ts = s;
while(ts.previousSibling){
this._srcIndex++;
ts = ts.previousSibling;
};";s:7:"private";b:1;s:7:"summary";s:0:"";}s:32:"dojox.widget.Iterator.postscript";a:5:{s:9:"prototype";s:21:"dojox.widget.Iterator";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:1:"p";a:1:{s:4:"type";s:0:"";}s:1:"s";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:2364:"dojo.provide("dojox.widget.Iterator");
dojo.require("dijit.Declaration");
dojo.experimental("dojox.widget.Iterator"); // level: prototype, designed for dijit.chat.demo
/*
example:
from markup:
|
|
|
|
| ${name} is a ${type}
|
|
example:
programmatic:
| var store = new dojo.data.ItemFileReadStore({ url: "countries.json" });
|
| var iter = new dojox.widget.Iterator({
| store: store,
| template: ""
| });
|
example:
programmatic from an array of objects:
| var dataArr = [
| { name: "foo", valueAttr: "bar" },
| { name: "thinger", valueAttr: "blah" }
| ];
|
| var iter = new dojox.widget.Iterator({
| data: dataArr,
| template: ""
| });
example:
programmatic from an array of strings:
| var dataArr = [
| { name: "foo", valueAttr: "bar" },
| { name: "thinger", valueAttr: "blah" }
| ];
|
| var iter = new dojox.widget.Iterator({
| data: dataArr,
| template: ""
| });
*/
dojo.declare("dojox.widget.Iterator",
[ dijit.Declaration ],
{
constructor: (function(){
var ctr = 0;
return function(){
this.attrs = [];
this.children = [];
this.widgetClass = "dojox.widget.Iterator._classes._"+(ctr++);
}
})(),
start: 0,
fetchMax: 1000,
query: { name: "*" },
attrs: [],
defaultValue: "",
widgetCtor: null,
dataValues: [], // an array of strings
data: null, // should be a reference to an Array
store: null,
_srcIndex: 0,
_srcParent: null,
_setSrcIndex: function(s){
this._srcIndex = 0;
this._srcParent = s.parentNode;
var ts = s;
while(ts.previousSibling){
this._srcIndex++;
ts = ts.previousSibling;
};
},
postscript: function(p, s){
// figure out the position of the source node in it's parent
this._setSrcIndex(s);
// this._srcIndex = dojo.query(">", this._srcParent).indexOf(s);
this.inherited("postscript", arguments);
var wc = this.widgetCtor = dojo.getObject(this.widgetClass);
this.attrs = dojo.map(
wc.prototype.templateString.match(/\$\{([^\s\:\}]+)(?:\:([^\s\:\}]+))?\}/g),
function(s){ return s.slice(2, -1); }
);
dojo.forEach(
this.attrs,
function(m){ wc.prototype[m] = ""; }
);
this.update();";s:7:"summary";s:0:"";}s:27:"dojox.widget.Iterator.clear";a:4:{s:9:"prototype";s:21:"dojox.widget.Iterator";s:4:"type";s:8:"Function";s:6:"source";s:151:" if(this.children.length){
this._setSrcIndex(this.children[0].domNode);
}
dojo.forEach(this.children, "item.destroy();");
this.children = [];";s:7:"summary";s:0:"";}s:28:"dojox.widget.Iterator.update";a:4:{s:9:"prototype";s:21:"dojox.widget.Iterator";s:4:"type";s:8:"Function";s:6:"source";s:178:" if(this.store){
// we're executing a query
this.fetch();
}else{
// we came from an array of objects. Easier!
this.onDataAvailable(this.data||this.dataValues);
}";s:7:"summary";s:0:"";}s:30:"dojox.widget.Iterator._addItem";a:6:{s:9:"prototype";s:21:"dojox.widget.Iterator";s:4:"type";s:8:"Function";s:10:"parameters";a:2:{s:6:"config";a:1:{s:4:"type";s:6:"Object";}s:3:"idx";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:204:" if(dojo.isString(config)){
config = { value: config };
}
var widget = new this.widgetCtor(config);
this.children.push(widget);
dojo.place(widget.domNode, this._srcParent, this._srcIndex+idx);";s:7:"private";b:1;s:7:"summary";s:0:"";}s:38:"dojox.widget.Iterator.getAttrValuesObj";a:5:{s:9:"prototype";s:21:"dojox.widget.Iterator";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:4:"item";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:399:" var obj = {};
if(dojo.isString(item)){
dojo.forEach(this.attrs, function(attr){
obj[attr] = (attr == "value") ? item : this.defaultValue;
}, this);
}else{
dojo.forEach(this.attrs, function(attr){
if(this.store){
obj[attr] = this.store.getValue(item, attr)||this.defaultValue;
}else{
obj[attr] = item[attr]||this.defaultValue;
}
}, this);
}
return obj;";s:7:"summary";s:0:"";}s:37:"dojox.widget.Iterator.onDataAvailable";a:5:{s:9:"prototype";s:21:"dojox.widget.Iterator";s:4:"type";s:8:"Function";s:10:"parameters";a:1:{s:4:"data";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:147:" this.clear();
// console.debug(data);
dojo.forEach(data, function(item, idx){
this._addItem(this.getAttrValuesObj(item), idx);
}, this);";s:7:"summary";s:0:"";}s:27:"dojox.widget.Iterator.fetch";a:5:{s:9:"prototype";s:21:"dojox.widget.Iterator";s:4:"type";s:8:"Function";s:10:"parameters";a:3:{s:5:"query";a:1:{s:4:"type";s:0:"";}s:5:"start";a:1:{s:4:"type";s:0:"";}s:3:"end";a:1:{s:4:"type";s:0:"";}}s:6:"source";s:164:" this.store.fetch({
query: query||this.query,
start: start||this.start,
count: end||this.fetchMax,
onComplete: dojo.hitch(this,"onDataAvailable")
});";s:7:"summary";s:0:"";}s:32:"dojox.widget.Iterator.query.name";a:1:{s:7:"summary";s:0:"";}s:30:"dojox.widget.Iterator.children";a:2:{s:8:"instance";s:21:"dojox.widget.Iterator";s:7:"summary";s:0:"";}s:30:"dojox.widget.Iterator._classes";a:3:{s:4:"type";s:6:"Object";s:7:"private";b:1;s:7:"summary";s:0:"";}s:12:"dojox.widget";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:0:"";}s:5:"dojox";a:2:{s:4:"type";s:6:"Object";s:7:"summary";s:0:"";}}