In questa lezione, vengono eseguite operazioni direttamente con il codice sorgente EGL, a partire da una libreria EGL scritta dall'utente. Una libreria può contenere costanti, variabili e funzioni, a ciascuna delle quali possono accedere le differenti unità di logica nell'applicazione. Un'importante caratteristica di una libreria è che le modifiche ad una variabile sono disponibili per qualsiasi unità di logica che accede alla libreria. Tuttavia, in questa esercitazione, l'attenzione principale è rivolta alle funzioni, che vengono inserite in una libreria per evitare di dover gestire la stessa logica utilizzata in più punti.
Per gestire alcuni problemi ordinari, è possibile utilizzare il framework MVC (Model View Controller) EGL, fornito dal progetto com.ibm.egl.rui. Sebbene le iniziali "MVC" generalmente indichino i diversi componenti di un'applicazione enterprise, il framework MVC in Rich UI fa riferimento solo ai componenti di un'interfaccia utente. In questo caso, il modello (model) è un campo record o variabile, la vista (view) è un widget ed il controller è una dichiarazione che gestisce il trasferimento dei dati tra il modello e la vista. In alcuni casi, tale trasferimento di dati è automatico, mentre in altri casi è una risposta al richiamo di una funzione, come illustrato successivamente.
La azioni di trascinamento e rilascio della lezione precedente hanno aggiunto non solo le dichiarazioni del controller, ma anche un gestore moduli, che è una dichiarazione che consente di considerare altre dichiarazioni come componenti di un singolo modulo. Un gestore moduli include un insieme di campi modulo, ciascuno dei quali può contenere un campo errore, etichetta e controller.
EGL ha creato una funzione inputRec_form_Submit stub. L'obiettivo è quello di consentire alla funzione di convalidare tutti i campi del modulo e di eseguirne il “commit”. Il commit è parte dell'implementazione MVC ed indica che il record inputRec viene aggiornato con i valori nei widget.
Verrà aggiunto il codice per richiamare altre due funzioni. La prima funzione rende visibile l'immagine processImage ed, in questo modo, indica all'utente che l'applicazione è in funzione. La seconda funzione richiama il servizio per il calcolo del pagamento dell'ipoteca.
if(inputRec_form.isValid()) inputRec_form.commit(); showProcessImage(); calculateMortgage(); else errorLabel.text = "Convalida del modulo di input non riuscita."; end

function showProcessImage() processImage.visible = yes; end
function hideProcessImage() processImage.visible = no; end
function calculateMortgage()
call mortService.amortize(inputRec)
returning to displayResults
onException handleException;
end
function displayResults(retResult MortgageCalculationResult in) paymentLabel.text = MortgageLib.formatMoney(retResult.monthlyPayment as STRING); inputRec_form.publish(); hideProcessImage(); end
Con tale sequenza di eventi, la funzione publish a livello del modulo viene spesso richiamata come in questo caso: in una funzione di callback che riceve dati da un servizio.
Effettuare le operazioni riportate di seguito:
Nella lezione successiva, viene creato un grafico a torta per confrontare il capitale totale con l'interesse totale in un determinato calcolo.