UNPKG

dojox

Version:

Dojo eXtensions, a rollup of many useful sub-projects and varying states of maturity – from very stable and robust, to alpha and experimental. See individual projects contain README files for details.

131 lines (129 loc) 3.41 kB
define(["dojo/_base/kernel", "dojo/_base/array", "./_base"], function(dojo, darray, dxc){ dxc.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 dxc.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 dxc.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: // Remove the element located at the given index. 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||",")); }; }; return dxc.ArrayList; });