< Indietro | Avanti >

Lezione 9: Integrazione del gestore della cronologia dei calcoli nell'applicazione

Per aggiungere il gestore della cronologia dei calcoli alla pagina, è necessario modificare il portlet dei risultati ed il portale principale.

Modifica del portlet dei risultati

A partire dalla fine della lezione precedente, il gestore CalculationResultsHandler esegue la sottoscrizione ad un singolo evento: mortgageApplication.mortgageCalculated. Quando si verifica tale evento, il gestore aggiorna e visualizza nuovamente il grafico a torta. Tuttavia, l'utente potrebbe selezionare una riga nel portlet della cronologia e causare la pubblicazione di un evento differente: mortgageApplication.mortgageResultSelected. Se CalculationResultsHandler esegue la sottoscrizione anche a tale evento, il gestore può rispondere alla selezione dell'utente nello stesso modo, aggiornando e visualizzando nuovamente il grafico a torta.

Il modo più semplice per eseguire la sottoscrizione ad entrambi gli eventi è quello di utilizzare l'asterisco (*), un carattere jolly che rappresenta qualsiasi evento in un insieme di eventi. Effettuare le operazioni riportate di seguito:

  1. Nell'editor Rich UI, aprire il file CalculationResultsHandler.egl e passare alla vista Origine.
  2. Nella funzione start(), individuare la riga riportata di seguito:
    InfoBus.subscribe("mortgageApplication.mortgageCalculated", displayChart);
  3. Sostituire il qualificatore di livello più basso nel nome dell'evento con l'asterisco:
    InfoBus.subscribe("mortgageApplication.*", displayChart);
    EGL ora richiama la funzione displayChart ogni volta che si verifica un evento se il nome dell'evento inizia con mortgageApplication..
  4. Salvare e chiudere il file.

Modifica del portale principale

Per il portlet della cronologia, aggiungere righe simili alle righe per gli altri due portlet:

  1. Nell'editor Rich UI, aprire il file MainHandler.egl e fare clic sulla scheda Origine.
  2. Immediatamente dopo la dichiarazione resultsHandler, aggiungere una dichiarazione simile per historyHandler:
    historyHandler CalculationHistoryHandler{};
  3. Immediatamente dopo la dichiarazione resultsPortlet, aggiungere una dichiarazione simile per historyPortlet:
    historyPortlet Portlet{children = [historyHandler.historyResults_ui], 
    			title = "Cronologia", canMove = TRUE, canMinimize = TRUE};
  4. Nella funzione start, al di sotto delle chiamate a addPortlet esistenti, aggiungere il nuovo portlet al portale:
    	mortgagePortal.addPortlet(historyPortlet, 1);
  5. Come è stato fatto con resultsPortlet, impostare historyPortlet in modo che inizialmente sia ridotto ad icona:
    	historyPortlet.minimize();
  6. Aggiungere il codice per historyPortlet alla fine della funzione restorePortlets():
    		if(historyPortlet.isMinimized())
    			historyPortlet.restore();
    		end	
  7. Salvare il file. Se vengono visualizzati errori nel file sorgente, confrontare il codice con il contenuto del file in Codice terminato per MainHandler.egl dopo la Lezione 9.

Verifica del portale

Eseguire il test del portale principale per verificare che il nuovo portlet della cronologia sia visualizzato e funzioni correttamente.
  1. Nella parte inferiore dell'editor, fare clic su Anteprima. EGL visualizza il portale principale ed i tre portlet secondari.
  2. Fare clic su Calcola. Un'immagine animata indica che l'elaborazione è in corso. Una volta terminato il calcolo, vengono visualizzati il grafico a torta e la cronologia.
    Il portlet dei risultati ripristinato mostra il grafico a torta.
  3. Impostare il termine del prestito ipotecario su 5 anni e fare nuovamente clic su Calcola. Viene aggiunta una riga all'elenco della cronologia.
  4. Fare clic su una cella nella prima riga dell'elenco della cronologia.
    La prima riga dell'elenco della cronologia contiene il calcolo a 30 anni.
  5. Il grafico a torta visualizza i valori per la riga selezionata nell'elenco della cronologia.
    Il grafico a torta aggiornato contiene i valori dal primo calcolo.

Riepilogo della lezione

È stato illustrato come eseguire la sottoscrizione a più eventi con nomi simili.

Nella lezione successiva, verrà aggiunto un portlet per visualizzare una mappa delle società di prestiti ipotecari presenti in un'area degli Stati Uniti specificata.

< Indietro | Avanti >

Feedback