DataFilterLib – Filtrez votre donnée de manière simple et dynamique
Introduction à la DataFilterLib
DataFilterLib est une librairie Flex permettant d'effectuer un filtrage sur des données, principalement sur un ArrayCollection. De nombreux composants Flex tels que DataGrid, TileList, AdvancedDataGrid, ... utilisent des ArrayCollection comme fournisseur de données (data provider). Grâce aux mécanismes internes de mise à jour des ArrayCollection, un changement dans la donnée impacte directement les éléments affichés.
La classe ArrayCollection de Flex permet d'effectuer un filtrage grâce à la propriété filterFunction. Celle-ci permet d'assigner une fonction de callback qui va décider, pour chaque élément, s'il doit être filtré.
Cette méthode est pratique mais elle pose plusieurs inconvénients:
- Le filtrage doit obligatoirement se faire par une fonction ActionScript
- Il est difficile de faire du filtrage multiple (Voir comparatif de 5 méthodes de filtrage multiple)
- Il n'existe pas de filtres de base, il faut toujours faire ses propres fonctions de filtrage
Les fonctionnalités de la DataFilterLib
La librairie DataFilterLib résout ces problèmes grâce à un ensemble de classes paramétrables. Ces classes peuvent être directement définies en MXML ou en ActionScript (à l'exécution). Elle contient un ensemble de classes de base permettant de filtrer la donnée grâce aux manière les plus courantes (filtrage par intervalle de valeur ou bien recherche de chaînes). Des classes de filtre personnalisées peuvent aussi être ajoutées pour des traitement spécialisés.
Elle permet notamment:
- Filtrage par recherche de chaîne (commence par, contient, strictement égal)
- Filtrage par intervalle de valeur (nombre compris entre 2 valeurs
- Filtrage par valeurs multiples, plusieurs catégories par exemple
- Possibilité d'inverser tous les filtres, c'est-à-dire d'afficher seulement les données filtrées
- Possibilité d'activer / désactiver des filtres
Exemples
Voici une série d'exemples pour montrer l'ensemble des capacités de la Flex DataFilterLib. La plupart font effet sur un ArrayCollection qui remplit une DataGrid pour simplifier mais rappelez vous que cet ArrayCollection peut aussi peupler d'autres composants comme les Charts ou une TileList. Les changements dus au filtrage auraient donc aussi un effet sur l'affichage de ces composants.
Tutoriaux
Voici la liste des tutoriaux en français présents sur flex-tutorial:
- DataFilterLib - Filtrage simple d'une liste
- DataFilterLib - Filtres de type DataFilterSingleValue, opérateurs et valeurs multiples
- DataFilterLib - Filtres de type DataFilterInterval, opérateurs et sliders
- DataFilterLib - Filtrer plusieurs vues en utilisant le DataBinding
- DataFilterLib - Utilisation de multiple filtres sur une même collection
- DataFilterLib – Utilisation de filtres personnalisés
- DataFilterLib – Utilisation des jokers /wildcards sur les filtres (v1.0.2)
- DataFilterLib – Pagination de données filtrées (ArrayCollection avec filterFunction)
Suivre le projet et télécharger les sources
Le projet Flex DataFilterLib est hébergé sur Google Code. Le code est libre d'utilisation, y compris commerciale.
Flex DataFilterLib sur Google Code
A partir de là, vous pourrez voir les derniers changements sur le projet et les demos mises à jour. Vous pourrez aussi y trouver la dernière version release en téléchargement:
Page de téléchargement de Flex DataFilterLib (SWC)
Les fichiers sources peuvent être récupérés par SVN (instructions). Vous pouvez bien sûr contribuer à ce projet en m'envoyant vos patches
.





