<\/HEAD>
Em alguns casos, há a necessidade de acessar informações de um widget em outro widget. Então surge a pergunta:
como tornar os dados de um widget disponíveis para outro widget.<\/P>
Para esse caso de uso, um widget possui as funções publishData(), fetchData(), fetchDataByName(), onReceiveData() e onNoData(). Essas funções são automaticamente herdadas por um widget próprio da BaseWidget.<\/P>
Para entender melhor o uso dessas funções, vamos analisar um exemplo simples com dois widgets. O
primeiro widget chamado SetLocation serve para inserir uma coordenada X\/Y, na qual o mapa pode ser centralizado:<\/P>
<\/P>
O segundo widget chamado GetLocation deve simplesmente exibir essa coordenada X\/Y novamente:<\/P>
<\/P>
Como os valores das coordenadas chegam ao segundo widget?<\/P>
No widget que envia os dados, ou seja, SetLocation, os valores das coordenadas são inseridos em dois campos de entrada e lidos em uma função,
que é chamada ao clicar no botão. Se houver vários dados individuais, eles podem ser agrupados, por exemplo, em uma string JSON. Para tornar esses dados disponíveis para outros widgets, a função publishData() é chamada e os dados são passados para ela:<\/P>
<\/P>
No widget que deve receber os dados, ou seja, no GetLocation, os dados são recuperados com a função fetchData(widgetId).
A função pode ser chamada, por exemplo, no método startUp():<\/P>
<\/P>
O parâmetro widgetId é o ID do widget que envia os dados (aqui SetLocation), conforme registrado no arquivo de configuração config.json
do App.<\/P>
Se houver dados para receber, eles são disponibilizados na função manipuladora de eventos onReceiveData(), que deve ser implementada no
widget receptor. Se não houver dados, a função manipuladora de eventos onNoData() é chamada.<\/P>
<\/P>
Na função onReceiveData(), os dados transmitidos são passados como parâmetro para que possam ser usados aqui, por exemplo,
para exibi-los no widget.<\/P>
Resumindo o processo:<\/P>
1) No widget emissor, disponibilizar os dados com a função publishData().<\/P>
2) No widget receptor, solicitar os dados com a função fetchData() e lê-los e usá-los na função onReceiveData().<\/P>
Happy coding!<\/P><\/BODY><\/HTML>