Aula 1.4 - Adicionando dados em uma aplicação Flex.

Nessa aula você vai aprender como usar um arquivo XML para popular controles DropDownList e TextInput com dados dinâmicos obtidos remotamente.

Requisitos

Aula 1.1 O espaço de trabalho padrão e manipulação de arquivos no Flash Builder 4.

Software necessário:

Flash Builder 4 (Download trial)

Arquivo de exemplo dessa aula:

Exercício 1.4: ex1_04_inicial.zip - Adicionando dados em uma aplicação Flex.

 

 

Introdução

Nessa aula você vai aprender como usar um arquivo XML para popular controles DropDownList e TextInput com dados dinâmicos obtidos remotamente. (Veja a figura 1)

Figura 1: exercício pronto.

 

Nessa aula você aprenderá:

  • I. Visualizar o arquivo de exemplo;
  • II. Recuperar dados do arquivo de exemplo;
  • III. Usar o Network Monitor para confirmar a recuperação dos dados remotamente;
  • IV. Mostrar os dados nos controles

 

I. Visualizando os dados de exemplo

1. Abra seu browser e navegue até o endereço: http://www.aprendofacil.com.br/curso/flex/arquivos/aula01/estados.xml

Você deverá ver o arquivo "estados.xml" no seu browser (figura 2).Repare a estrutura do arquivo.

Figura 2: Estrutura do arquivo xml remoto.

Neste exemplo, estados.xml é um arquivo estático. Contudo se você estiver usando uma aplicação no servidor você pode simplesmente fazer uma chamada a rotina de geração dinâmica de arquivos XML no servidor e mostrá-los em sua aplicação desktop ou web usando as mesmas técnicas vistas nesse exercício.

 

II. Recuperando dados do arquivo de exemplo

1. Abra o Flash Builder

2. Baixe e descompacte o arquivo ex1_04_inicial.zip e importe o arquivo ex1_04_inicial.fxp (File | Import Flex Project FXP)

3. Abra o arquivo ex1_04_inicial.mxml.

4. Na seção "Source" localize o bloco "<Declarations>"

5. Dentro do bloco Declarations crie um objeto HTTPService.

<fx:Declarations>
<s:HTTPService />
</fx:declarations>

 

6. Adicione ao objeto HTTPService uma identificação (id property) chamada "estadosService" e para a propriedade URL o valor de http://www.aprendofacil.com.br/curso/flex/arquivos/aula01/estados.xml

 

<fx:Declarations>
<s:HTTPService
id="estadosService"
url="http://www.aprendofacil.com.br/curso/flex/arquivos/aula01/estados.xml" />
</fx:Declarations>

 

7. Dentro da tag Application use o assistente de conteúdo para criar o evento "creationComplete" para a aplicação (Figura 3).

Figura 3: Usando a ferramenta de assistente de conteúdo para gerar declaração de evento creationComplete para o aplicativo.

Para usar o assistente de conteúdo inicie digitando as primeiras letras da propriedade ou evento desejado, em seguida use a janela que aparece para selecionar a propriedade ou evento dê duplo clique com o mouse ou pressione a tecla "Enter" (figura 3).

8. Para o valor do evento creationComplete digite estadosService.send().

O método estadosService.send() dirá ao objeto HTTPService para recuperar os dados XML da URL especificada.

9. Salve o arquivo.

 

III. Usando o Network Monitor para confirmar a recuperação de dados

Nota: Para completar esse seção da aula é necessário ter o Flash Builder Premium Edition instalado. Se você tiver instalado o Flash Builder Standard Edition, pule essa parte e continue na próxima seção.

 

Se quiser experimentar a versão Premium você deve fazer um backup de seus dados, desinstalar a versão Standard e em seguida instalar a versão Premium.

Clique aqui para comparar as duas versões

Nesta seção usaremos o Flash Builder 4 Network Monitor para ver os dados recuperados da chamada ao HTTPService.

1. Abra o Network Monitor (veja Figura 4).

Figura 4: Abrindo o painel Network Monitor.

 

2. Clique no botão Enable Monitor (veja Figura 5).

Figura 5: Habilitando o Network Monitor.

 

3. Clique no botão Run para executar a aplicação (Figura 6).

Figura 6: Clicando no botão Run para executar o aplicativo.

Você verá o browser abrir.

4. Minimize-o e retorne ao Flash Builder e dê um duplo clique na tab "Network Monitor" para maximizar a tela.

5. Selecione a URL da chamada ao HTTPService (veja Figura 7).

Figura 7: Selecionando o registro HTTPService.

6. Do lado direito da janela, clique na tab "Response".

7. Expanda a árvore de dados para revelar os dados obtidos.

Repare que a estrutura mostrada no Network Monitor bate com a do arquivo estados.xml que você viu no início da primeira seção (veja Figura 8).

Figura 8: Expandindo Response body na tab Response para visualizar dados dos Estados do Brasil.

8. Dê duplo clique na tab "Network Monitor" para minimizá-la.

 

IV. Mostrando os dados em controles

Nesta seção usaremos o objeto HTTPService para popular controles Flex com dados.

1. Localize o controle DropDownList dentro do primeiro FormItem container.

2. No controle DropDownList adicione uma propriedade "dataProvider" e ligue-a ao valor estadosService.lastResult.estados.estado.

A propriedade lastResult de "estadosService" do objeto HTTPService acessa um array de dados que você viu no Network Monitor. A outra parte da declaração estado.sigla usa a notação de ponto (dot notation) para acessar  e detalhar os dados XML e exibí-los no controle DropDownList.

<mx:FormItem label="Sigla do Estado:">
<s:DropDownList id="dropDownList" width="76"
dataProvider="{estadosService.lastResult.estados.estado}" />
</mx:FormItem>

3. Adicione a propriedade labelField com o valor lastResult.estados.estado.

...
<s:DropDownList id="dropDownList" width="76"
dataProvider="{estadosService.lastResult.estados.estado}"
labelField="sigla"/>
...

 

4. Salve o arquivo e rode a aplicação.

5. Clique no controle DropDownList e verá que o mesmo foi populado com os dados referente às siglas dos Estados Brasileiros (veja Figura 9).

Figura 9: Visualizando os dados dos Estados no controle DropDownList.

6. Retorne ao Flash Builder.

7. Dentro do bloco "Form" localize o container FormItem label="Nome do Estado".

8. Para a controle TextInput id="txt_nomeEstado" adicione a propriedade text ligando-a ao valor de dropDownList.selectedItem.nome.

A propriedade selectItem do DropDownList é usada para referenciar o objeto selecionado dentro do controle. Neste caso refere-se ao objeto estado. Acrescentando .nome para vincular o valor do nome e mostrá-lo no controle TextInput.

<mx:FormItem label="Nome do Estado:">

<s:TextInput id="txt_nomeEstado"
text="{dropDownList.selectedItem.nome}" />
</mx:FormItem>

9. Repita o passo 8 agora para vincular o valor referente ao nome da Capital do Estado. Para isso localize o TextInput "txt_nomeCapital e acrescente à propriedade text o codigo:

<s:TextInput id="txt_nomeCapital"
text="{dropDownList.selectedItem.capital}"/>

10. Repita o passo 9 agora para vincular o valor referente ao nome da Região brasileira a que pertence o Estado. Para isso localize o TextInput "txt_regiao e acrescente à propriedade text o codigo:

<s:TextInput id="txt_regiao"
text="{dropDownList.selectedItem.regiao}"/>

11. Repita o passo 10 agora para vincular o valor referente a quantidade de municípios que o Estado tem. Para isso localize o TextInput "txt_numeroMunicipios e acrescente à propriedade text o codigo:

<s:TextInput id="txt_numeroMunicipios"
text="{dropDownList.selectedItem.numeromunicipios}"/>

12. Salve o arquivo e rode a aplicação.

13. Selecione uma sigla de um Estado Brasileiro no controle DropDownList e você verá informações correspondentes (veja Figura 10).

Figura 10: Exercício pronto.

Nota: A rotina para os demais controles TextInput é a mesma. Para os demais controles TextInput os dados são:

População de 2000:
<s:TextInput id="txt_censo2000"
text="{dropDownList.selectedItem.populacao2000}"/>
População de 2010:
<s:TextInput id="txt_censo2010"
text="{dropDownList.selectedItem.populacao2010}"/>
Arrecadação de Tributos Federais em 2009:
<s:TextInput id="txt_arrecadacao2009"
text="{dropDownList.selectedItem.arrecadacao2009}"/>

 

Conhecimentos adquiridos

Neste tutorial você aprendeu como criar uma aplicação Flex e como navegar pelo espaço de trabalho do Flash Builder 4.

Agora já sabemos como responder, por exemplo as perguntas abaixo:

P.1. Qual o método da classe HTTPService é usada para acionar o objeto HTTPService?

R.1. O método send().

P.2. Qual a propriedade de um objeto HTTPService pode ser usada para acessar dados retornadas?

R.2. A propriedade lastResult.

P.3 Qual a propriedade do controle DropDownList podem ser usados para fazer referência ao item de dados que está sendo exibido?

R.3. A propriedade selectedItem.

  • Written by: Toni Pereira
  • Terça, 09 Novembro 2010

Comments (1)

  • Alessandra
    Alessandra
    15 Novembro 2010 at 21:58 |

    Flex 4 | Gostei. Espero dessa vez ir até o final no aprendizado dessa ferramenta de desenvolvimento.

Leave a comment

You are commenting as guest.

Cancelar Submitting comment...