function() {
		var me = this;
		var columns = this.grid.headerCt.getGridColumns();
		me.columns.clear();
		me.autoStores.clear();

        
		Ext.each(columns, function(column) {
			if (column.filter) {
				if (column.filter === true || column.filter === 'auto') { // automatic types configuration (store based)
					var type = 'auto'//me.grid.store.model.prototype.fields.get(column.dataIndex).type.type;
					if (type == 'auto') type = 'string';
					column.filter = type;
				}
				if (Ext.isString(column.filter)) {
					column.filter = {
						type: column.filter // only set type to then use templates
					};
				}
				if (column.filter.type) {
					column.filter = Ext.applyIf(column.filter, me[column.filter.type + 'Tpl']); // also use templates but with user configuration
				}

				if (column.filter.xtype == 'combo' && !column.filter.store) {
					column.autoStore = true;
					column.filter.store = Ext.create('Ext.data.ArrayStore', {
						fields: [{
							name: 'text'
						},{
							name: 'id'
						}]
					});
					me.autoStores.add(column.dataIndex, column.filter.store);
					column.filter = Ext.apply(column.filter, {
						displayField: 'text',
						valueField: 'id'
					});
				}

				if (!column.filter.type) {
					switch(column.filter.xtype) {
						case 'combo':
							column.filter.type = (column.filter.multiSelect ? 'list' : 'combo');
							break;
						case 'datefield':
							column.filter.type = 'date';
							break;
						case 'numberfield':
							column.filter.type = (column.filter.allowDecimals ? 'float' : 'int');
							break;
						default:
							column.filter.type = 'string'
					}
				}

				if (!column.filter.operator) {
					column.filter.operator = me[column.filter.type + 'Tpl'].operator;
				}
				me.columns.add(column.dataIndex, column);
			}
		}, me);
		if (me.autoStores.getCount()) {
			if (me.grid.store.getCount() > 0) {
				me.fillAutoStores(me.grid.store);
			}
			if (me.grid.store.remoteFilter) {
				var autoStores = [];
				me.autoStores.eachKey(function(key, item) {
					autoStores.push(key);
				});
				me.grid.store.proxy.extraParams = me.grid.store.proxy.extraParams || {};
				me.grid.store.proxy.extraParams[me.autoStoresRemoteProperty] = autoStores;
			}
			me.grid.store.on('load', me.fillAutoStores, me);
		}
	}
function() {
		var me = this;
		var columns = this.grid.headerCt.getGridColumns();
		me.columns.clear();
		me.autoStores.clear();

        
		Ext.each(columns, function(column) {
			if (column.filter) {
				if (column.filter === true || column.filter === 'auto') { 
					var type = 'auto'
					if (type == 'auto') type = 'string';
					column.filter = type;
				}
				if (Ext.isString(column.filter)) {
					column.filter = {
						type: column.filter 
					};
				}
				if (column.filter.type) {
					column.filter = Ext.applyIf(column.filter, me[column.filter.type + 'Tpl']); 
				}

				if (column.filter.xtype == 'combo' && !column.filter.store) {
					column.autoStore = true;
					column.filter.store = Ext.create('Ext.data.ArrayStore', {
						fields: [{
							name: 'text'
						},{
							name: 'id'
						}]
					});
					me.autoStores.add(column.dataIndex, column.filter.store);
					column.filter = Ext.apply(column.filter, {
						displayField: 'text',
						valueField: 'id'
					});
				}

				if (!column.filter.type) {
					switch(column.filter.xtype) {
						case 'combo':
							column.filter.type = (column.filter.multiSelect ? 'list' : 'combo');
							break;
						case 'datefield':
							column.filter.type = 'date';
							break;
						case 'numberfield':
							column.filter.type = (column.filter.allowDecimals ? 'float' : 'int');
							break;
						default:
							column.filter.type = 'string'
					}
				}

				if (!column.filter.operator) {
					column.filter.operator = me[column.filter.type + 'Tpl'].operator;
				}
				me.columns.add(column.dataIndex, column);
			}
		}, me);
		if (me.autoStores.getCount()) {
			if (me.grid.store.getCount() > 0) {
				me.fillAutoStores(me.grid.store);
			}
			if (me.grid.store.remoteFilter) {
				var autoStores = [];
				me.autoStores.eachKey(function(key, item) {
					autoStores.push(key);
				});
				me.grid.store.proxy.extraParams = me.grid.store.proxy.extraParams || {};
				me.grid.store.proxy.extraParams[me.autoStoresRemoteProperty] = autoStores;
			}
			me.grid.store.on('load', me.fillAutoStores, me);
		}
	}
function ( ) { var me = this ; var columns = this . grid . headerCt . getGridColumns ( ) ; me . columns . clear ( ) ; me . autoStores . clear ( ) ; Ext . each ( columns , function ( column ) { if ( column . filter ) { if ( column . filter === true || column . filter === 'auto' ) { // automatic types configuration (store based)
 var type = 'auto' //me.grid.store.model.prototype.fields.get(column.dataIndex).type.type;
 if ( type == 'auto' ) type = 'string' ; column . filter = type ; } if ( Ext . isString ( column . filter ) ) { column . filter = { type : column . filter // only set type to then use templates
 } ; } if ( column . filter . type ) { column . filter = Ext . applyIf ( column . filter , me [ column . filter . type + 'Tpl' ] ) ; // also use templates but with user configuration
 } if ( column . filter . xtype == 'combo' && ! column . filter . store ) { column . autoStore = true ; column . filter . store = Ext . create ( 'Ext.data.ArrayStore' , { fields : [ { name : 'text' } , { name : 'id' } ] } ) ; me . autoStores . add ( column . dataIndex , column . filter . store ) ; column . filter = Ext . apply ( column . filter , { displayField : 'text' , valueField : 'id' } ) ; } if ( ! column . filter . type ) { switch ( column . filter . xtype ) { case 'combo' : column . filter . type = ( column . filter . multiSelect ? 'list' : 'combo' ) ; break ; case 'datefield' : column . filter . type = 'date' ; break ; case 'numberfield' : column . filter . type = ( column . filter . allowDecimals ? 'float' : 'int' ) ; break ; default : column . filter . type = 'string' } } if ( ! column . filter . operator ) { column . filter . operator = me [ column . filter . type + 'Tpl' ] . operator ; } me . columns . add ( column . dataIndex , column ) ; } } , me ) ; if ( me . autoStores . getCount ( ) ) { if ( me . grid . store . getCount ( ) > 0 ) { me . fillAutoStores ( me . grid . store ) ; } if ( me . grid . store . remoteFilter ) { var autoStores = [ ] ; me . autoStores . eachKey ( function ( key , item ) { autoStores . push ( key ) ; } ) ; me . grid . store . proxy . extraParams = me . grid . store . proxy . extraParams || { } ; me . grid . store . proxy . extraParams [ me . autoStoresRemoteProperty ] = autoStores ; } me . grid . store . on ( 'load' , me . fillAutoStores , me ) ; } }
private
private