aboutsummaryrefslogtreecommitdiff
path: root/includes/js/dojox/collections/SortedList.js
diff options
context:
space:
mode:
Diffstat (limited to 'includes/js/dojox/collections/SortedList.js')
-rw-r--r--includes/js/dojox/collections/SortedList.js198
1 files changed, 0 insertions, 198 deletions
diff --git a/includes/js/dojox/collections/SortedList.js b/includes/js/dojox/collections/SortedList.js
deleted file mode 100644
index e9f1235..0000000
--- a/includes/js/dojox/collections/SortedList.js
+++ /dev/null
@@ -1,198 +0,0 @@
-if(!dojo._hasResource["dojox.collections.SortedList"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
-dojo._hasResource["dojox.collections.SortedList"] = true;
-dojo.provide("dojox.collections.SortedList");
-dojo.require("dojox.collections._base");
-
-dojox.collections.SortedList=function(/* object? */ dictionary){
- // summary
- // creates a collection that acts like a dictionary but is also internally sorted.
- // Note that the act of adding any elements forces an internal resort, making this object potentially slow.
- var _this=this;
- var items={};
- var q=[];
- var sorter=function(a,b){
- if (a.key > b.key) return 1;
- if (a.key < b.key) return -1;
- return 0;
- };
- var build=function(){
- q=[];
- var e=_this.getIterator();
- while (!e.atEnd()){
- q.push(e.get());
- }
- q.sort(sorter);
- };
- var testObject={};
-
- this.count=q.length;
- this.add=function(/* string */ k,/* object */v){
- // summary
- // add the passed value to the dictionary at location k
- if (!items[k]) {
- items[k]=new dojox.collections.DictionaryEntry(k,v);
- this.count=q.push(items[k]);
- q.sort(sorter);
- }
- };
- this.clear=function(){
- // summary
- // clear the internal collections
- items={};
- q=[];
- this.count=q.length;
- };
- this.clone=function(){
- // summary
- // create a clone of this sorted list
- return new dojox.collections.SortedList(this); // dojox.collections.SortedList
- };
- this.contains=this.containsKey=function(/* string */ k){
- // summary
- // Check to see if the list has a location k
- if(testObject[k]){
- return false; // bool
- }
- return (items[k]!=null); // bool
- };
- this.containsValue=function(/* object */ o){
- // summary
- // Check to see if this list contains the passed object
- var e=this.getIterator();
- while (!e.atEnd()){
- var item=e.get();
- if(item.value==o){
- return true; // bool
- }
- }
- return false; // bool
- };
- this.copyTo=function(/* array */ arr, /* int */ i){
- // summary
- // copy the contents of the list into array arr at index i
- var e=this.getIterator();
- var idx=i;
- while(!e.atEnd()){
- arr.splice(idx,0,e.get());
- idx++;
- }
- };
- this.entry=function(/* string */ k){
- // summary
- // return the object at location k
- return items[k]; // dojox.collections.DictionaryEntry
- };
- this.forEach=function(/* function */ fn, /* object? */ scope){
- // summary
- // functional iterator, following the mozilla spec.
- dojo.forEach(q, fn, scope);
- };
- this.getByIndex=function(/* int */ i){
- // summary
- // return the item at index i
- return q[i].valueOf(); // object
- };
- this.getIterator=function(){
- // summary
- // get an iterator for this object
- return new dojox.collections.DictionaryIterator(items); // dojox.collections.DictionaryIterator
- };
- this.getKey=function(/* int */ i){
- // summary
- // return the key of the item at index i
- return q[i].key;
- };
- this.getKeyList=function(){
- // summary
- // return an array of the keys set in this list
- var arr=[];
- var e=this.getIterator();
- while (!e.atEnd()){
- arr.push(e.get().key);
- }
- return arr; // array
- };
- this.getValueList=function(){
- // summary
- // return an array of values in this list
- var arr=[];
- var e=this.getIterator();
- while (!e.atEnd()){
- arr.push(e.get().value);
- }
- return arr; // array
- };
- this.indexOfKey=function(/* string */ k){
- // summary
- // return the index of the passed key.
- for (var i=0; i<q.length; i++){
- if (q[i].key==k){
- return i; // int
- }
- }
- return -1; // int
- };
- this.indexOfValue=function(/* object */ o){
- // summary
- // return the first index of object o
- for (var i=0; i<q.length; i++){
- if (q[i].value==o){
- return i; // int
- }
- }
- return -1; // int
- };
- this.item=function(/* string */ k){
- // summary
- // return the value of the object at location k.
- if(k in items && !testObject[k]){
- return items[k].valueOf(); // object
- }
- return undefined; // object
- };
- this.remove=function(/* string */k){
- // summary
- // remove the item at location k and rebuild the internal collections.
- delete items[k];
- build();
- this.count=q.length;
- };
- this.removeAt=function(/* int */ i){
- // summary
- // remove the item at index i, and rebuild the internal collections.
- delete items[q[i].key];
- build();
- this.count=q.length;
- };
- this.replace=function(/* string */ k, /* object */ v){
- // summary
- // Replace an existing item if it's there, and add a new one if not.
- if (!items[k]){
- // we're adding a new object, return false
- this.add(k,v);
- return false; // bool
- }else{
- // we're replacing an object, return true
- items[k]=new dojox.collections.DictionaryEntry(k,v);
- build();
- return true; // bool
- }
- };
- this.setByIndex=function(/* int */ i, /* object */ o){
- // summary
- // set an item by index
- items[q[i].key].value=o;
- build();
- this.count=q.length;
- };
- if (dictionary){
- var e=dictionary.getIterator();
- while (!e.atEnd()){
- var item=e.get();
- q[q.length]=items[item.key]=new dojox.collections.DictionaryEntry(item.key,item.value);
- }
- q.sort(sorter);
- }
-}
-
-}