Pti truc du jour : Les CollectionEvent
Par Erick, dans [Dev] Flash / Flex / AIR... # 381
Bon je suis peut être le dernier, mais en farfouillant la doc de Flex, j’ai découvert une petite classe qui simplifie la vie : les CollectionEvent.
Ce type d’évenement, géré par toutes les classes implémentant ICollectionView, est généré lors d’un changement de la collection . Il en devient du coup un complément très intéressant au Databinding.
Imaginons par exemple une application de gestion de notes :

L’affichage des notes dans le Datagrid est assuré grâce à un databinding avec une arrayCollection.
<mx:DataGrid id="notesDGrid" dataProvider="{notesCollection}" />
Lorsqu’on ajoute un élément, la collection change, l’affichage est automatiquement mis à jour.
Par contre, pour la note moyenne, calculée à l’ouverture à partir des élements présents, le binding ne permettra pas la mise à jour automatique.
C’est là qu’interviennent les CollectionEvent : en ajoutant un écouteur sur la collection, on peut réagir à ses modifications :
notesCollection.addEventListener(CollectionEvent.COLLECTION_CHANGE , updateMoyenne );
Dans notre exemple, l’application va recalculer la moyenne lors de chaque ajout.
Plus fort encore, les CollectionEvent possédent une propriété 'kind', qui permet de savoir quel type d’opération a été effectué ( Ajout, deplacement, supression ) et une 'items' de récupérer des informations sur la dîte opération ( item ajouté, nouvelle position .. ) .
L’exemple est très simpliste, mais dans le cas d’un dév avec Cairngorm par exemple, je vous laisse imaginer l’intérêt de cette fonctionnalité utilisée sur les collections d’un modelLocator
Toutes les infos sur LiveDocs

Commentaires
1. Le jeudi 7 février 2008 à 09:18, par Hervé
2. Le mercredi 20 février 2008 à 14:12, par Fransiouz
Allez soit pas timide ! Dis quelque chose...