| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 | /*	Copyright (c) 2004-2012, 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.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||","));	};};}
 |