Represents a filter that can be applied to a MixedCollection. Can either simply filter on a property/value pair or pass in a filter function with custom logic. Filters are always used in the context of MixedCollections, though Stores frequently create them when filtering and searching on their records. Example usage:
//set up a fictional MixedCollection containing a few people to filter on
var allNames = new Ext.util.MixedCollection();
allNames.addAll([
{id: 1, name: 'Ed', age: 25},
{id: 2, name: 'Jamie', age: 37},
{id: 3, name: 'Abe', age: 32},
{id: 4, name: 'Aaron', age: 26},
{id: 5, name: 'David', age: 32}
]);
var ageFilter = new Ext.util.Filter({
property: 'age',
value : 32
});
var longNameFilter = new Ext.util.Filter({
filterFn: function(item) {
return item.name.length > 4;
}
});
//a new MixedCollection with the 3 names longer than 4 characters
var longNames = allNames.filter(longNameFilter);
//a new MixedCollection with the 2 people of age 24:
var youngFolk = allNames.filter(ageFilter);
True to allow any match - no regex start/end line anchors will be added. Defaults to false
True to allow any match - no regex start/end line anchors will be added. Defaults to false
True to make the regex case sensitive (adds 'i' switch to regex). Defaults to false.
True to make the regex case sensitive (adds 'i' switch to regex). Defaults to false.
True to force exact match (^ and $ characters added to the regex). Defaults to false. Ignored if anyMatch is true.
True to force exact match (^ and $ characters added to the regex). Defaults to false. Ignored if anyMatch is true.
A custom filter function which is passed each item in the Ext.util.MixedCollection in turn. Should return true to accept each item or false to reject it
Optional root property. This is mostly useful when filtering a Store, in which case we set the root to 'data' to make the filter pull the property out of the data object of each item