diff options
Diffstat (limited to 'includes/js/dojox/collections/ArrayList.js')
-rw-r--r-- | includes/js/dojox/collections/ArrayList.js | 133 |
1 files changed, 133 insertions, 0 deletions
diff --git a/includes/js/dojox/collections/ArrayList.js b/includes/js/dojox/collections/ArrayList.js new file mode 100644 index 0000000..d57f6e7 --- /dev/null +++ b/includes/js/dojox/collections/ArrayList.js @@ -0,0 +1,133 @@ +if(!dojo._hasResource["dojox.collections.ArrayList"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. +dojo._hasResource["dojox.collections.ArrayList"] = true; +dojo.provide("dojox.collections.ArrayList"); +dojo.require("dojox.collections._base"); + +dojox.collections.ArrayList=function(/* array? */arr){ + // summary + // Returns a new object of type dojox.collections.ArrayList + var items=[]; + if(arr) items=items.concat(arr); + this.count=items.length; + this.add=function(/* object */obj){ + // summary + // Add an element to the collection. + items.push(obj); + this.count=items.length; + }; + this.addRange=function(/* array */a){ + // summary + // Add a range of objects to the ArrayList + if(a.getIterator){ + var e=a.getIterator(); + while(!e.atEnd()){ + this.add(e.get()); + } + this.count=items.length; + }else{ + for(var i=0; i<a.length; i++){ + items.push(a[i]); + } + this.count=items.length; + } + }; + this.clear=function(){ + // summary + // Clear all elements out of the collection, and reset the count. + items.splice(0, items.length); + this.count=0; + }; + this.clone=function(){ + // summary + // Clone the array list + return new dojox.collections.ArrayList(items); // dojox.collections.ArrayList + }; + this.contains=function(/* object */obj){ + // summary + // Check to see if the passed object is a member in the ArrayList + for(var i=0; i < items.length; i++){ + if(items[i] == obj) { + return true; // bool + } + } + return false; // bool + }; + this.forEach=function(/* function */ fn, /* object? */ scope){ + // summary + // functional iterator, following the mozilla spec. + dojo.forEach(items, fn, scope); + }; + this.getIterator=function(){ + // summary + // Get an Iterator for this object + return new dojox.collections.Iterator(items); // dojox.collections.Iterator + }; + this.indexOf=function(/* object */obj){ + // summary + // Return the numeric index of the passed object; will return -1 if not found. + for(var i=0; i < items.length; i++){ + if(items[i] == obj) { + return i; // int + } + } + return -1; // int + }; + this.insert=function(/* int */ i, /* object */ obj){ + // summary + // Insert the passed object at index i + items.splice(i,0,obj); + this.count=items.length; + }; + this.item=function(/* int */ i){ + // summary + // return the element at index i + return items[i]; // object + }; + this.remove=function(/* object */obj){ + // summary + // Look for the passed object, and if found, remove it from the internal array. + var i=this.indexOf(obj); + if(i >=0) { + items.splice(i,1); + } + this.count=items.length; + }; + this.removeAt=function(/* int */ i){ + // summary + // return an array with function applied to all elements + items.splice(i,1); + this.count=items.length; + }; + this.reverse=function(){ + // summary + // Reverse the internal array + items.reverse(); + }; + this.sort=function(/* function? */ fn){ + // summary + // sort the internal array + if(fn){ + items.sort(fn); + }else{ + items.sort(); + } + }; + this.setByIndex=function(/* int */ i, /* object */ obj){ + // summary + // Set an element in the array by the passed index. + items[i]=obj; + this.count=items.length; + }; + this.toArray=function(){ + // summary + // Return a new array with all of the items of the internal array concatenated. + return [].concat(items); + } + this.toString=function(/* string */ delim){ + // summary + // implementation of toString, follows [].toString(); + return items.join((delim||",")); + }; +}; + +} |