En esta lección, trabajará directamente con el código fuente EGL, empezando con una biblioteca EGL que escribirá. Una biblioteca puede contener constantes, variables y funciones, y diferentes unidades de lógica de la aplicación pueden acceder a cualquiera de ellas. Una característica importante de una biblioteca es que los cambios realizados en una variables están disponibles en cualquier unidad de lógica que accede a la biblioteca. Sin embargo, esta guía de aprendizaje se centra en las funciones, que se colocan en una biblioteca para no tener que mantener en varios lugares la misma lógica de uso habitual.
Para manejar algunos problemas comunes, puede utilizar la infraestructura MVC (Modelo Vista Controlador) de EGL, que proporciona el proyecto com.ibm.egl.rui. A pesar de que las iniciales "MVC" normalmente describen los diferentes componentes de una aplicación empresarial, la infraestructura MVC de la IU enriquecida sólo hace referencia a los componentes de una interfaz de usuario. Aquí, el modelo es un campo de variable o de registro, la vista es un widget y el controlador es una declaración que supervisa la transferencia de datos entre el modelo y la vista. Dicha transferencia de datos a veces es automática y a veces es una respuesta a una invocación de función, como se mostrará más adelante.
Las acciones de arrastrar y soltar de la lección anterior no sólo han añadido declaraciones de controlador, sino también un gestor de formularios, que es una declaración que le permite tratar otras declaraciones como componentes de un solo formulario. Un gestor de formularios incluye un conjunto de campos de formulario, cada uno de los cuales puede incluir una etiqueta, un controlador y un campo de error.
EGL ha creado una función inputRec_form_Submit de apéndice. El objetivo es que la función valide todos los campos del formulario y que los "comprometa". El compromiso forma parte de la implementación MVC y significa que el registro inputRec se actualiza con los valores de los widgets.
Añadirá código para llamar a otras dos funciones. La primera función hace visible la imagen processImage y, de esta manera, indica al usuario que la aplicación está operativa. La segunda función llama al servicio para calcular la cuota de la hipoteca.
if(inputRec_form.isValid()) inputRec_form.commit(); showProcessImage(); calculateMortgage(); else errorLabel.text = "Input form validation failed."; 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
A partir de esta secuencia de eventos, la función publish a nivel de formulario a menudo se invoca tal como está aquí: en una función callback que recibe datos de un servicio.
Realice lo siguiente:
En la lección siguiente, creará un gráfico circular para comparar el principal total respecto al interés total de un determinado cálculo.