< Anterior | Próximo >

Lição 9: Integrar o Manipulador de Histórico do Cálculo no Aplicativo

Para incluir o manipulador de histórico do cálculo em sua página, você deve alterar o portlet de resultados e o portal principal.

Alterar o Portlet de Resultados

Conforme o final da lição anterior, o manipulador CalculationResultsHandler subscreve-se a um único evento: mortgageApplication.mortgageCalculated. Quando esse evento ocorre, o manipulador atualiza e exibe novamente o gráfico de setores circulares. Entretanto, o usuário pode selecionar uma linha no histórico do portlet e fazer com que um evento diferente seja publicado: mortgageApplication.mortgageResultSelected. Se o CalculationResultsHandler também subscreve esse evento, o manipulador pode responder à seleção do usuário da mesma forma, atualizando e exibindo novamente o gráfico de setores circulares.

A maneira mais simples de subscrever-se a ambos os eventos é usar o asterisco (*), que é um caractere curinga que representa qualquer evento em um conjunto de eventos. Faça conforme a seguir:

  1. No editor Rich UI, abra o arquivo CalculationResultsHandler.egl e alterne para a visualização Origem.
  2. Na função start(), localize a seguinte linha:
    InfoBus.subscribe("mortgageApplication.mortgageCalculated", displayChart);
  3. Substitua o qualificador de nível mais inferior no nome do evento pelo asterisco:
    InfoBus.subscribe("mortgageApplication.*", displayChart);
    O EGL agora chama a função displayChart sempre que um evento ocorre se o nome do evento iniciar com mortgageApplication..
  4. Salve e feche o arquivo.

Alterar o Portal Principal

Para o portlet de histórico, inclua linhas que são semelhantes às linhas dos outros dois portlets:

  1. No editor Rich UI, abra o arquivo MainHandler.egl e clique na guia Origem.
  2. Imediatamente abaixo da declaração de resultsHandler, inclua uma declaração semelhante para historyHandler:
    historyHandler CalculationHistoryHandler{};
  3. Imediatamente abaixo da declaração de resultsPortlet, inclua uma declaração semelhante para historyPortlet:
    historyPortlet Portlet{children =
    [historyHandler.historyResults_ui], 
    			title = "History", canMove = TRUE, canMinimize = TRUE};
  4. Na função start, abaixo das chamadas existentes de addPortlet, inclua o novo portlet no portal:
    	mortgagePortal.addPortlet(historyPortlet, 1);
  5. Como foi feito com resultsPortlet, configure historyPortlet para estar inicialmente minimizado:
    	historyPortlet.minimize();
  6. Inclua o código para historyPortlet no final da função restorePortlets():
    		if(historyPortlet.isMinimized())
    			historyPortlet.restore();
    		end	
  7. Salve o arquivo. Se erros forem vistos em seu arquivo de origem, compare seu código com o conteúdo do arquivo em Código Concluído para MainHandler.egl após a Lição 9.

Testar o Portal

Teste o portal principal para certificar-se de que o novo portlet de histórico seja exibido e funcione corretamente.
  1. Na parte inferior do editor, clique em Visualizar. O EGL exibe o portal principal e os três portlets subsidiários.
  2. Clique em Calcular. Uma imagem animada indica que o trabalho está em andamento. Quando o cálculo é concluído, o gráfico de setores circulares e o histórico são exibidos.
    O portlet de Resultados restaurado mostra o gráfico de setores circulares.
  3. Altere o prazo da hipoteca para 5 anos e clique em Calcular novamente. Uma linha é incluída na lista de históricos.
  4. Clique em uma célula na primeira linha da lista de históricos.
    A primeira linha da lista de históricos contém o cálculo de 30 anos.
  5. O gráfico de setores circulares exibe os valores para a linha selecionada na lista de históricos.
    O gráfico de setores circulares atualizado possui os valores do primeiro cálculo.

Ponto de Verificação da Lição

Você aprendeu como subscrever em diversos eventos nomeados de forma semelhante.

Na próxima lição, você incluirá um portlet para exibir um mapa das empresas de hipoteca que estão em uma área especificada dos Estados Unidos.

< Anterior | Próximo >

Feedback