function (config) {
        var me = this,
            columns = me.getGridPanel().columns,
            i, columnsLength, column, filtersLength, filter;

        
        for (i = 0, columnsLength = columns.length; i < columnsLength; i++) {
            column = columns[i];
            if (column.dataIndex === config.dataIndex) {
                column.filter = config;
            }
        }
        
        if (me.view.headerCt.menu) {
            me.createFilters();
        } else {
            // Call getMenu() to ensure the menu is created, and so, also are the filters. We cannot call
            // createFilters() withouth having a menu because it will cause in a recursion to applyState()
            // that ends up to clear all the filter values. This is likely to happen when we reorder a column
            // and then add a new filter before the menu is recreated.
            me.view.headerCt.getMenu();
        }
        
        for (i = 0, filtersLength = me.filters.items.length; i < filtersLength; i++) {
            filter = me.filters.items[i];
            if (filter.dataIndex === config.dataIndex) {
                return filter;
            }
        }
    }
function (config) {
        var me = this,
            columns = me.getGridPanel().columns,
            i, columnsLength, column, filtersLength, filter;

        
        for (i = 0, columnsLength = columns.length; i < columnsLength; i++) {
            column = columns[i];
            if (column.dataIndex === config.dataIndex) {
                column.filter = config;
            }
        }
        
        if (me.view.headerCt.menu) {
            me.createFilters();
        } else {
            
            
            
            
            me.view.headerCt.getMenu();
        }
        
        for (i = 0, filtersLength = me.filters.items.length; i < filtersLength; i++) {
            filter = me.filters.items[i];
            if (filter.dataIndex === config.dataIndex) {
                return filter;
            }
        }
    }
function ( config ) { var me = this , columns = me . getGridPanel ( ) . columns , i , columnsLength , column , filtersLength , filter ; for ( i = 0 , columnsLength = columns . length ; i < columnsLength ; i ++ ) { column = columns [ i ] ; if ( column . dataIndex === config . dataIndex ) { column . filter = config ; } } if ( me . view . headerCt . menu ) { me . createFilters ( ) ; } else { // Call getMenu() to ensure the menu is created, and so, also are the filters. We cannot call // createFilters() withouth having a menu because it will cause in a recursion to applyState() // that ends up to clear all the filter values. This is likely to happen when we reorder a column // and then add a new filter before the menu is recreated. me . view . headerCt . getMenu ( ) ; } for ( i = 0 , filtersLength = me . filters . items . length ; i < filtersLength ; i ++ ) { filter = me . filters . items [ i ] ; if ( filter . dataIndex === config . dataIndex ) { return filter ; } } }
Adds a filter to the collection and observes it for state change.
@param {Object/Ext.ux.grid.filter.Filter} config A filter configuration or a filter object.
@return {Ext.ux.grid.filter.Filter} The existing or newly created filter object.
Adds a filter to the collection and observes it for state change .