134 lines
3.4 KiB
JavaScript
134 lines
3.4 KiB
JavaScript
|
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||","));
|
||
|
};
|
||
|
};
|
||
|
|
||
|
}
|