| /* |
| Copyright (c) 2004-2009, 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.Iterator"]){ |
| dojo._hasResource["dojox.widget.Iterator"]=true; |
| dojo.provide("dojox.widget.Iterator"); |
| dojo.require("dijit.Declaration"); |
| dojo.experimental("dojox.widget.Iterator"); |
| dojo.declare("dojox.widget.Iterator",[dijit.Declaration],{constructor:(function(){ |
| var _1=0; |
| return function(){ |
| this.attrs=[]; |
| this.children=[]; |
| this.widgetClass="dojox.widget.Iterator._classes._"+(_1++); |
| }; |
| })(),start:0,fetchMax:1000,query:{name:"*"},attrs:[],defaultValue:"",widgetCtor:null,dataValues:[],data:null,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){ |
| this._setSrcIndex(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(); |
| },clear:function(){ |
| if(this.children.length){ |
| this._setSrcIndex(this.children[0].domNode); |
| } |
| dojo.forEach(this.children,"item.destroy();"); |
| this.children=[]; |
| },update:function(){ |
| if(this.store){ |
| this.fetch(); |
| }else{ |
| this.onDataAvailable(this.data||this.dataValues); |
| } |
| },_addItem:function(_2,_3){ |
| if(dojo.isString(_2)){ |
| _2={value:_2}; |
| } |
| var _4=new this.widgetCtor(_2); |
| this.children.push(_4); |
| dojo.place(_4.domNode,this._srcParent,this._srcIndex+_3); |
| },getAttrValuesObj:function(_5){ |
| var _6={}; |
| if(dojo.isString(_5)){ |
| dojo.forEach(this.attrs,function(_7){ |
| _6[_7]=(_7=="value")?_5:this.defaultValue; |
| },this); |
| }else{ |
| dojo.forEach(this.attrs,function(_8){ |
| if(this.store){ |
| _6[_8]=this.store.getValue(_5,_8)||this.defaultValue; |
| }else{ |
| _6[_8]=_5[_8]||this.defaultValue; |
| } |
| },this); |
| } |
| return _6; |
| },onDataAvailable:function(_9){ |
| this.clear(); |
| dojo.forEach(_9,function(_a,_b){ |
| this._addItem(this.getAttrValuesObj(_a),_b); |
| },this); |
| },fetch:function(_c,_d,_e){ |
| this.store.fetch({query:_c||this.query,start:_d||this.start,count:_e||this.fetchMax,onComplete:dojo.hitch(this,"onDataAvailable")}); |
| }}); |
| dojox.widget.Iterator._classes={}; |
| } |