//>>built
define("dojox/grid/_SelectionPreserver",["dojo/_base/declare","dojo/_base/connect","dojo/_base/lang","dojo/_base/array"],function(_1,_2,_3,_4){return _1("dojox.grid._SelectionPreserver",null,{constructor:function(_5){this.selection=_5;var _6=this.grid=_5.grid;this.reset();this._connects=[_2.connect(_6,"_setStore",this,"reset"),_2.connect(_6,"_addItem",this,"_reSelectById"),_2.connect(_5,"onSelected",_3.hitch(this,"_selectById",true)),_2.connect(_5,"onDeselected",_3.hitch(this,"_selectById",false)),_2.connect(_5,"deselectAll",this,"reset")];},destroy:function(){this.reset();_4.forEach(this._connects,_2.disconnect);delete this._connects;},reset:function(){this._selectedById={};},_reSelectById:function(_7,_8){if(_7&&this.grid._hasIdentity){this.selection.selected[_8]=this._selectedById[this.grid.store.getIdentity(_7)];}},_selectById:function(_9,_a){if(this.selection.mode=="none"||!this.grid._hasIdentity){return;}var _b=_a,g=this.grid;if(typeof _a=="number"||typeof _a=="string"){var _c=g._by_idx[_a];_b=_c&&_c.item;}if(_b){this._selectedById[g.store.getIdentity(_b)]=!!_9;}return _b;}});});