<\/HEAD>
In sommige gevallen is er de eis dat je in een widget toegang moet hebben tot informatie van een andere widget. Dan rijst de vraag hoe je de gegevens van de ene widget beschikbaar kunt maken voor een andere widget.<\/P>
Voor dit toepassingsgeval beschikt een widget over de functies publishData(), fetchData(), fetchDataByName(), onReceiveData() en onNoData(). Deze functies worden automatisch overgenomen door een eigen widget van BaseWidget.<\/P>
Om het gebruik van deze functies beter te begrijpen, bekijken we dit aan de hand van een heel eenvoudig voorbeeld met twee widgets. De eerste widget met de naam SetLocation dient voor het invoeren van een X\/Y-coördinaat waarop de kaart gecentreerd kan worden:<\/P>
<\/P>
De tweede widget met de naam GetLocation moet eenvoudigweg deze X\/Y-coördinaat weergeven:<\/P>
<\/P>
Hoe komen nu de coördinatenwaarden in de tweede widget? <\/P>
In de widget die de gegevens verzendt, dus SetLocation, worden de coördinatenwaarden in twee invoervelden ingevuld en in een functie, die wordt aangeroepen door het klikken op de knop, uitgelezen. Als je meerdere afzonderlijke gegevens hebt, kun je deze bijvoorbeeld samenvoegen in een JSON-string. Om deze gegevens nu beschikbaar te maken voor andere widgets, wordt de functie publishData() aangeroepen en worden deze gegevens meegegeven:<\/P>
<\/P>
In de widget die de gegevens moet ontvangen, dus in GetLocation, worden de gegevens opgevraagd met de functie fetchData(widgetId). De functie kan bijvoorbeeld worden aangeroepen in de methode startUp():<\/P>
<\/P>
De parameter widgetId is daarbij de ID van de widget die de gegevens verzendt (hier SetLocation), zoals deze is ingevoerd in het configuratiebestand config.json van de app.<\/P>
Als er gegevens zijn om te ontvangen, worden deze beschikbaar gesteld in de eventhandler-functie onReceiveData(), die je in de ontvangende widget moet implementeren. Zijn er geen gegevens aanwezig, dan wordt de eventhandler-functie onNoData() aangeroepen.<\/P>
<\/P>
In de functie onReceiveData() worden de overgedragen gegevens als parameter meegegeven, zodat je ze hier kunt gebruiken, bijvoorbeeld om ze in de widget weer te geven.<\/P>
Samenvattend nogmaals het proces:<\/P>
1) In de verzendende widget stel je de gegevens beschikbaar met behulp van de functie publishData().<\/P>
2) In de ontvangende widget vraag je de gegevens op via de functie fetchData() en lees je ze uit en gebruik je ze in de functie onReceiveData().<\/P>
<\/P>
Happy coding!<\/P><\/BODY><\/HTML>