Subversion Repositories Applications.papyrus

Rev

Blame | Last modification | View Log | RSS feed

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||","));
        };
};

}