<\/HEAD>
Dans certains cas, il est nécessaire d'accéder aux informations d'un autre widget depuis un widget. Alors se pose la question de savoir comment rendre les données d'un widget disponibles pour un autre widget.<\/P>
Pour ce cas d'utilisation, un widget dispose des fonctions publishData(), fetchData(), fetchDataByName(), onReceiveData() et onNoData(). Ces fonctions sont automatiquement héritées par un widget personnalisé de BaseWidget.<\/P>
Pour mieux comprendre l'utilisation de ces fonctions, examinons un exemple très simple avec deux widgets. Le premier widget nommé SetLocation sert à saisir une coordonnée X\/Y sur laquelle la carte peut être centrée :<\/P>
<\/P>
Le second widget nommé GetLocation doit simplement afficher à nouveau cette coordonnée X\/Y :<\/P>
<\/P>
Comment les valeurs des coordonnées arrivent-elles dans le second widget ?<\/P>
Dans le widget qui envoie les données, donc SetLocation, les valeurs des coordonnées sont saisies dans deux champs de saisie et lues dans une fonction appelée par le clic sur le bouton.
Si vous avez plusieurs données individuelles, vous pouvez par exemple les regrouper dans une chaîne JSON. Pour rendre ces données disponibles pour d'autres widgets, la fonction publishData() est appelée et les données lui sont transmises :<\/P>
<\/P>
Dans le widget qui doit recevoir les données, donc GetLocation, les données sont récupérées avec la fonction fetchData(widgetId).
La fonction peut être appelée par exemple dans la méthode startUp() :<\/P>
<\/P>
Le paramètre widgetId est l'ID du widget qui envoie les données (ici SetLocation), telle qu'elle a été inscrite dans le fichier de configuration config.json
de l'application.<\/P>
Si des données sont disponibles pour la réception, elles sont mises à disposition dans la fonction gestionnaire d'événements onReceiveData() que vous devez fournir dans le widget récepteur. S'il n'y a pas de données, la fonction gestionnaire d'événements onNoData() est appelée.<\/P>
<\/P>
Dans la fonction onReceiveData(), les données transmises sont passées en paramètre, ce qui permet de les utiliser ici, par exemple pour les afficher dans le widget.<\/P>
Pour résumer encore une fois le processus :<\/P>
1) Dans le widget émetteur, fournir les données avec la fonction publishData().<\/P>
2) Dans le widget récepteur, interroger les données via la fonction fetchData() et les lire et utiliser dans la fonction onReceiveData().<\/P>
<\/P>
Bon codage !<\/P><\/BODY><\/HTML>