code: function(grid) {
  		var me = this;
  
  		me.grid = grid;
  		me.visible = !me.renderHidden;
  		me.autoStores = Ext.create('Ext.util.MixedCollection');
  		me.autoStoresLoaded = false;
  		me.columns = Ext.create('Ext.util.MixedCollection');
  		me.containers = Ext.create('Ext.util.MixedCollection');
  		me.fields = Ext.create('Ext.util.MixedCollection');
  		me.actionColumn = me.grid.down('actioncolumn') || me.grid.down('actioncolumnpro');
  		me.extraColumn = null;
  		me.clearAllEl = null;
  		me.showHideEl = null;
  		me.task = Ext.create('Ext.util.DelayedTask');
  		me.filterArray = [];
  
  		me.overrideProxy();
  		me.parseFiltersConfig(); 	// sets me.columns and me.autoStores
  		me.parseInitialFilters();   // sets me.filterArray with the store previous filters if any (adds operator and type if missing)
  		me.renderExtraColumn(); 	// sets me.extraColumn if applicable
  
  		// renders the filter's bar
  		if (grid.rendered) {
  			me.renderFilterBar(grid);
  		} else {
  			grid.on('afterrender', me.renderFilterBar, me, { single: true });
  		}
  	}
docs: private