recordset-min.js revision cd9cac4bf3a2269cbfcd93238311a194be800b5f
YUI.add("recordset-base",function(C){function A(D){A.superclass.constructor.apply(this,arguments);}A.NAME="record";A.ATTRS={id:{valueFn:"_setId",writeOnce:true},data:{}};C.extend(A,C.Base,{_setId:function(){return C.guid();},initializer:function(D){},destructor:function(){},getValue:function(D){if(D===undefined){return this.get("data");}else{return this.get("data")[D];}return null;}});C.Record=A;function B(D){B.superclass.constructor.apply(this,arguments);}B.NAME="recordset";B.ATTRS={records:{value:null,setter:"_setRecords"}};C.extend(B,C.Base,{_setRecords:function(F){var E=[];function D(G){if(!(G instanceof C.Record)){E.push(new C.Record({data:G}));}else{E.push(G);}}C.Array.each(F,D);return E;},initializer:function(){this._recordsetChanged();},destructor:function(){},_add:function(E,D){D=(C.Lang.isNumber(D)&&(D>-1))?D:this.get("records").length;this.get("records").splice(D,0,E);return E;},_updateGivenArray:function(D,E,G){var F=0,I=[],H=[];for(;F<D.length;F++){H[F]=this._changeToRecord(D[F]);if(F===0){I[F]=this.get("records").splice(E,1,H[F])[0];}else{I[F]=this._updateGivenObject(H[F],E+F,G).overwritten[0];if(I[F]===undefined){I.pop();}}}return({updated:H,overwritten:I});},_updateGivenObject:function(F,D,E){var H=[],G=[];H[0]=this._changeToRecord(F);if(E){G[0]=this.get("records").splice(D,1,H[0])[0];}else{this.get("records").splice(D,0,H[0]);}return({updated:H,overwritten:G});},_changeToRecord:function(E){var D;if(E instanceof C.Record){D=E;}else{D=new C.Record({data:E});}return D;},_recordsetChanged:function(){this.on(["recordsetUpdatedEvent","recordsetAddedEvent","recordsetRemovedEvent","recordsetEmptiedEvent"],function(){this.fire("recordsetChangedEvent",{});});},_recordAdded:function(E,D){this.fire("recordsetAddedEvent",{data:E,index:D});},_recordRemoved:function(E,D){this.fire("recordsetRemovedEvent",{data:E,index:D});},_recordsetEmptied:function(){this.fire("recordsetEmptiedEvent",{});},_recordsetUpdated:function(G,E,D){var F={data:{updated:G,overwritten:E},index:D};this.fire("recordsetUpdatedEvent",F);},getRecord:function(D){return this.get("records")[D];},getRecords:function(F,E){var G=0,D=[];E=(C.Lang.isNumber(E)&&(E>0))?E:1;for(;G<E;G++){D.push(this.get("records")[F+G]);}return D;},getLength:function(){return this.get("records").length;},getValuesByKey:function(F){var E=0,D=this.get("records").length,G=[];for(;E<D;E++){G.push(this.getRecord(E).getValue(F));}return G;},filter:function(F,E){var I=[],G=0,H,D;D=this.get("records").length;for(;G<D;G++){H=this.getRecord(G);if((C.Lang.isFunction(F)&&E===undefined&&F(H))||(C.Lang.isString(F)&&C.Lang.isValue(E)&&H.getValue(F)===E)){I.push(H);}}return new this.constructor({records:I});},add:function(I,E){var G,H=[],D,F;if(C.Lang.isArray(I)){H=[];D=(C.Lang.isNumber(E)&&(E>-1))?E:this.get("records").length;for(F=0;F<I.length;F++){G=new C.Record({data:I[F]});H[F]=this._add(G,D);D++;}}else{if(C.Lang.isObject(I)&&!(I instanceof C.Record)){G=new C.Record({data:I});H[0]=this._add(G,E);}else{if(I instanceof C.Record){H[0]=this._add(G,E);}}}this._recordAdded(H,E);return({data:H,index:E});},remove:function(E,D){var F=[];E=(C.Lang.isNumber(E)&&(E>-1))?E:this.get("records").length-1;D=(C.Lang.isNumber(D)&&(D>0))?D:1;F=this.get("records").splice(E,D);this._recordRemoved(F,E);return({data:F,index:E});},empty:function(){this.set("records").value=[];this._recordsetEmptied();return null;},update:function(G,D,E){var F;if(C.Lang.isArray(G)){F=this._updateGivenArray(G,D,E);}else{if(C.Lang.isObject(G)){F=this._updateGivenObject(G,D,true);}}this._recordsetUpdated(F.updated,F.overwritten,D);return null;}});C.Recordset=B;},"@VERSION@",{requires:["base","record"]});YUI.add("recordset-sort",function(C){var A=C.ArraySort.compare;function B(D,E,F){B.superclass.constructor.apply(this,arguments);}C.mix(B,{NS:"sort",NAME:"recordsetSort",ATTRS:{lastSortProperties:{value:{field:undefined,desc:undefined,sorter:undefined}},defaultSorter:{value:function(F,D,G,H){var E=A(F.getValue(G),D.getValue(G),H);if(E===0){return A(F.get("id"),D.get("id"),H);}else{return E;}}}}});C.extend(B,C.Plugin.Base,{initializer:function(D){this.publish("sort",{defaultFn:C.bind("_defSortFn",this)});},destructor:function(D){},_defSortFn:function(D){this.set("lastSortProperties",D);this.get("host").get("records").sort(function(F,E){return(D.sorter)(F,E,D.field,D.desc);});},sort:function(D,E,F){this.fire("sort",{field:D,desc:E,sorter:F||this.get("defaultSorter")});},resort:function(){var D=this.get("lastSortProperties");this.fire("sort",{field:D.field,desc:D.desc,sorter:this.get("defaultSorter")});},reverse:function(){var E=this.get("host"),D=E.getLength()-1,G=0;for(;G<=D;G++){if(G<(D-G)){var H=E.getRecord(G);var F=E.getRecord(D-G);E.update(H,D-G);E.update(F,G);}}}});C.namespace("Plugin").RecordsetSort=B;},"@VERSION@",{requires:["recordset-base","arraysort","plugin"]});YUI.add("recordset",function(A){},"@VERSION@",{use:["recordset-base","recordset-sort"]});