function(index, filters) {
        // We begin by making sure we are dealing with an array of sorters
        if (!Ext.isArray(filters)) {
            filters = [filters];
        }

        var ln = filters.length,
            filterRoot = this.getFilterRoot(),
            currentFilters = this.getFilters(),
            newFilters = [],
            filterConfig, i, filter;

        if (!currentFilters) {
            currentFilters = this.createFiltersCollection();
        }

        // We first have to convert every sorter into a proper Sorter instance
        for (i = 0; i < ln; i++) {
            filter = filters[i];
            filterConfig = {
                root: filterRoot
            };

            if (Ext.isFunction(filter)) {
                filterConfig.filterFn = filter;
            }
            // If we are dealing with an object, we assume its a Sorter configuration. In this case
            // we create an instance of Sorter passing this configuration.
            else if (Ext.isObject(filter)) {
                if (!filter.isFilter) {
                    if (filter.fn) {
                        filter.filterFn = filter.fn;
                        delete filter.fn;
                    }

                    filterConfig = Ext.apply(filterConfig, filter);
                }
                else {
                    newFilters.push(filter);
                    if (!filter.getRoot()) {
                        filter.setRoot(filterRoot);
                    }
                    continue;
                }
            }
            // Finally we get to the point where it has to be invalid
            // <debug>
            else {
                Ext.Logger.warn('Invalid filter specified:', filter);
            }
            // </debug>

            // If a sorter config was created, make it an instance
            filter = Ext.create('Ext.util.Filter', filterConfig);
            newFilters.push(filter);
        }

        // Now lets add the newly created sorters.
        for (i = 0, ln = newFilters.length; i < ln; i++) {
            currentFilters.insert(index + i, newFilters[i]);
        }

        this.dirtyFilterFn = true;

        if (currentFilters.length) {
            this.filtered = true;
        }

        return currentFilters;
    }
function(index, filters) {
        // We begin by making sure we are dealing with an array of sorters
        if (!Ext.isArray(filters)) {
            filters = [filters];
        }

        var ln = filters.length,
            filterRoot = this.getFilterRoot(),
            currentFilters = this.getFilters(),
            newFilters = [],
            filterConfig, i, filter;

        if (!currentFilters) {
            currentFilters = this.createFiltersCollection();
        }

        // We first have to convert every sorter into a proper Sorter instance
        for (i = 0; i < ln; i++) {
            filter = filters[i];
            filterConfig = {
                root: filterRoot
            };

            if (Ext.isFunction(filter)) {
                filterConfig.filterFn = filter;
            }
            // If we are dealing with an object, we assume its a Sorter configuration. In this case
            // we create an instance of Sorter passing this configuration.
            else if (Ext.isObject(filter)) {
                if (!filter.isFilter) {
                    if (filter.fn) {
                        filter.filterFn = filter.fn;
                        delete filter.fn;
                    }

                    filterConfig = Ext.apply(filterConfig, filter);
                }
                else {
                    newFilters.push(filter);
                    if (!filter.getRoot()) {
                        filter.setRoot(filterRoot);
                    }
                    continue;
                }
            }
            // Finally we get to the point where it has to be invalid
            // <debug>
            else {
                Ext.Logger.warn('Invalid filter specified:', filter);
            }
            // </debug>

            // If a sorter config was created, make it an instance
            filter = Ext.create('Ext.util.Filter', filterConfig);
            newFilters.push(filter);
        }

        // Now lets add the newly created sorters.
        for (i = 0, ln = newFilters.length; i < ln; i++) {
            currentFilters.insert(index + i, newFilters[i]);
        }

        this.dirtyFilterFn = true;

        if (currentFilters.length) {
            this.filtered = true;
        }

        return currentFilters;
    }
function ( index , filters ) { // We begin by making sure we are dealing with an array of sorters if ( ! Ext . isArray ( filters ) ) { filters = [ filters ] ; } var ln = filters . length , filterRoot = this . getFilterRoot ( ) , currentFilters = this . getFilters ( ) , newFilters = [ ] , filterConfig , i , filter ; if ( ! currentFilters ) { currentFilters = this . createFiltersCollection ( ) ; } // We first have to convert every sorter into a proper Sorter instance for ( i = 0 ; i < ln ; i ++ ) { filter = filters [ i ] ; filterConfig = { root : filterRoot } ; if ( Ext . isFunction ( filter ) ) { filterConfig . filterFn = filter ; } // If we are dealing with an object, we assume its a Sorter configuration. In this case // we create an instance of Sorter passing this configuration. else if ( Ext . isObject ( filter ) ) { if ( ! filter . isFilter ) { if ( filter . fn ) { filter . filterFn = filter . fn ; delete filter . fn ; } filterConfig = Ext . apply ( filterConfig , filter ) ; } else { newFilters . push ( filter ) ; if ( ! filter . getRoot ( ) ) { filter . setRoot ( filterRoot ) ; } continue ; } } // Finally we get to the point where it has to be invalid // <debug> else { Ext . Logger . warn ( 'Invalid filter specified:' , filter ) ; } // </debug> // If a sorter config was created, make it an instance filter = Ext . create ( 'Ext.util.Filter' , filterConfig ) ; newFilters . push ( filter ) ; } // Now lets add the newly created sorters. for ( i = 0 , ln = newFilters . length ; i < ln ; i ++ ) { currentFilters . insert ( index + i , newFilters [ i ] ) ; } this . dirtyFilterFn = true ; if ( currentFilters . length ) { this . filtered = true ; } return currentFilters ; }
This method inserts all the filters in the passed array at the given index.
@param {Number} index The index at which to insert the filters.
@param {Array} filters Each filter can be an instance of {@link Ext.util.Filter},
an object representing an Ext.util.Filter configuration, or a filter function.
@return {Array}
This method inserts all the filters in the passed array at the given index .