summaryrefslogtreecommitdiff
path: root/includes/js/dojox/widget/Iterator.js
diff options
context:
space:
mode:
Diffstat (limited to 'includes/js/dojox/widget/Iterator.js')
-rw-r--r--includes/js/dojox/widget/Iterator.js177
1 files changed, 0 insertions, 177 deletions
diff --git a/includes/js/dojox/widget/Iterator.js b/includes/js/dojox/widget/Iterator.js
deleted file mode 100644
index c2f510d..0000000
--- a/includes/js/dojox/widget/Iterator.js
+++ /dev/null
@@ -1,177 +0,0 @@
-if(!dojo._hasResource["dojox.widget.Iterator"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
-dojo._hasResource["dojox.widget.Iterator"] = true;
-dojo.provide("dojox.widget.Iterator");
-dojo.require("dijit.Declaration");
-
-dojo.experimental("dojox.widget.Iterator"); // level: prototype, designed for dijit.chat.demo
-
-/*
- example:
- from markup:
- | <span dojoType="dojo.data.ItemFileReadStore"
- | jsId="cstore" url="countries.json"></span>
- |
- | <div>
- | <div dojoType="dojox.widget.Iterator" store="cstore"
- | query="{ name: 'A*'}">
- | ${name} is a ${type}
- | </div>
- | </div>
-
- 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();
- },
-
- 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){
- // we're executing a query
- this.fetch();
- }else{
- // we came from an array of objects. Easier!
- this.onDataAvailable(this.data||this.dataValues);
- }
- },
-
- _addItem: function(/*Object*/config, idx){
- 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);
- },
-
- getAttrValuesObj: function(item){
- 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;
- },
-
- onDataAvailable: function(data){
- this.clear();
- // console.debug(data);
- dojo.forEach(data, function(item, idx){
- this._addItem(this.getAttrValuesObj(item), idx);
- }, this);
- },
-
- fetch: function(query, start, end){
- this.store.fetch({
- query: query||this.query,
- start: start||this.start,
- count: end||this.fetchMax,
- onComplete: dojo.hitch(this,"onDataAvailable")
- });
- }
-});
-
-dojox.widget.Iterator._classes = {};
-
-}