/* Copyright (c) 2004-2009, 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.grid.Selection"]){dojo._hasResource["dojox.grid.Selection"]=true;dojo.provide("dojox.grid.Selection");dojo.declare("dojox.grid.Selection",null,{constructor:function(_1){this.grid=_1;this.selected=[];this.setMode(_1.selectionMode);},mode:"extended",selected:null,updating:0,selectedIndex:-1,setMode:function(_2){if(this.selected.length){this.deselectAll();}if(_2!="extended"&&_2!="multiple"&&_2!="single"&&_2!="none"){this.mode="extended";}else{this.mode=_2;}},onCanSelect:function(_3){return this.grid.onCanSelect(_3);},onCanDeselect:function(_4){return this.grid.onCanDeselect(_4);},onSelected:function(_5){},onDeselected:function(_6){},onChanging:function(){},onChanged:function(){},isSelected:function(_7){if(this.mode=="none"){return false;}return this.selected[_7];},getFirstSelected:function(){if(!this.selected.length||this.mode=="none"){return -1;}for(var i=0,l=this.selected.length;i=0?_12:_13),e=_13;if(s>e){e=s;s=_13;}for(var i=s;i<=e;i++){_14(i);}},selectRange:function(_15,_16){this._range(_15,_16,dojo.hitch(this,"addToSelection"));},deselectRange:function(_17,_18){this._range(_17,_18,dojo.hitch(this,"deselect"));},insert:function(_19){this.selected.splice(_19,0,false);if(this.selectedIndex>=_19){this.selectedIndex++;}},remove:function(_1a){this.selected.splice(_1a,1);if(this.selectedIndex>=_1a){this.selectedIndex--;}},deselectAll:function(_1b){for(var i in this.selected){if((i!=_1b)&&(this.selected[i]===true)){this.deselect(i);}}},clickSelect:function(_1c,_1d,_1e){if(this.mode=="none"){return;}this._beginUpdate();if(this.mode!="extended"){this.select(_1c);}else{var _1f=this.selectedIndex;if(!_1d){this.deselectAll(_1c);}if(_1e){this.selectRange(_1f,_1c);}else{if(_1d){this.toggleSelect(_1c);}else{this.addToSelection(_1c);}}}this._endUpdate();},clickSelectEvent:function(e){this.clickSelect(e.rowIndex,dojo.isCopyKey(e),e.shiftKey);},clear:function(){this._beginUpdate();this.deselectAll();this._endUpdate();}});}