//>>built define("dojo/_base/declare dojo/_base/lang ../_Plugin ./Dialog ./filter/FilterLayer ./filter/FilterBar ./filter/FilterDefDialog ./filter/FilterStatusTip ./filter/ClearFilterConfirm ../../EnhancedGrid dojo/i18n!../nls/Filter".split(" "),function(c,e,f,g,d,h,k,l,m,n,p){c=c("dojox.grid.enhanced.plugins.Filter",f,{name:"filter",constructor:function(b,a){this.grid=b;this.nls=p;a=this.args=e.isObject(a)?a:{};if("number"!=typeof a.ruleCount||0>a.ruleCount)a.ruleCount=3;void 0===(this.ruleCountToConfirmClearFilter= a.ruleCountToConfirmClearFilter)&&(this.ruleCountToConfirmClearFilter=2);this._wrapStore();a={plugin:this};this.clearFilterDialog=new g({refNode:this.grid.domNode,title:this.nls.clearFilterDialogTitle,content:new m(a)});this.filterDefDialog=new k(a);this.filterBar=new h(a);this.filterStatusTip=new l(a);b.onFilterDefined=function(){};this.connect(b.layer("filter"),"onFilterDefined",function(a){b.onFilterDefined(b.getFilter(),b.getFilterRelation())})},destroy:function(){this.inherited(arguments);try{this.grid.unwrap("filter"), this.filterBar.destroyRecursive(),this.filterBar=null,this.clearFilterDialog.destroyRecursive(),this.clearFilterDialog=null,this.filterStatusTip.destroy(),this.filterStatusTip=null,this.filterDefDialog.destroy(),this.args=this.grid=this.filterDefDialog=null}catch(b){console.warn("Filter.destroy() error:",b)}},_wrapStore:function(){var b=this.grid,a=this.args,a=a.isServerSide?new d.ServerSideFilterLayer(a):new d.ClientSideFilterLayer({cacheSize:a.filterCacheSize,fetchAll:a.fetchAllOnFirstFilter,getter:this._clientFilterGetter}); d.wrap(b,"_storeLayerFetch",a);this.connect(b,"_onDelete",e.hitch(a,"invalidate"))},onSetStore:function(b){this.filterDefDialog.clearFilter(!0)},_clientFilterGetter:function(b,a,c){return a.get(c,b)}});n.registerPlugin(c);return c});