tu as une discu à ce sujet sur sencha
http://www.sencha.com/forum/showthre...en-controllers
lorsque la vue est crée le controleur (CtrlB) qui gère la notification peut faire
this.fireEvent("viewCreated", this); //le this ici est l'argument de la méthode qui gère l'événement
le contrôleur qui veut être informé lui dans son ini peut faire
getCtrlB().addListener("viewCreated", this.onNotifCreated, this)
il suffit alors de définir la méthode
1 2 3 4
| onNotifCreated : function(Ctrl) //l'argument ici est le this passé au fireEvent
{
this.notificationStatut = "created";
} |
Il s'agit de mettre en place les principes de la programmation événementielle.
Un action vas généré un événement qui sera utilisé par qui le veux
la réaction a un événement va agir sur le système et générer de nouveaux événements.
ce principe est bien implémenté dans le data package.
dans le datapackage tu as un datastore
tu ouvre une vue qui affiche son contenu
les actions utilisateur déclenchent des méthodes du contrôleur
le contrôleur affiche une formulaire et y place un enregistrement
l'utilisateur fait des modifs ce qui déclenche des événements. le controleur
enregistre alors les données dans le datastore
le datastore déclenche un événement de modif
le controleur de la grille réagit et mets à jour la grille
mais le proxy du datastore réagit aussi et envoie les données au serveur.
le serveur réponds est le proxy mets à jour l'enregistrement dans le datastore
qui émet un événement pour permettre au controleur de modifier la grid
etc.
avec ce principe chacun ne s'occupe que de sa partie et émet des événement pour notifier le reste du système de ce qu'il se passe chez lui.
on obtient ainsi des composants très autonomes qui ne font que réagir aux événements des autres, faire leur job et émettre à leur tour des événements.
on est habitué à réagir au click 2click et autres événements de base.
Mais on a tendance à oublier que l'on peut gérer tout sortes d'événements et en créer soit même.
l'exemple typique est la gestion des utilisateur.
lorsqu'un nouvel utilisateur est crée ou lorsqu'un utilisateur est supprimé d'un système il y a toute sorte de chose à faire.
une des solution est de créer deux événement userAdded et userRemoved. ainsi peut importe comment est fait le système chaque sous système qui en a besoin peut s'abonner à ses événement et faire ce qu'il faut dans sa partie.
j'ai souvent tendance à dire que si le problème s'exprime "Lorsque .... faire... et faire... puis faire"
Il est nécessaire de se poser la question événement où pas.
A+JYT
Partager