Le code suivant est le texte du fichier MainHandler.egl à la fin de la leçon 12.
package handlers;
import com.ibm.egl.rui.infobus.InfoBus;
import utils.portal.Portal;
import utils.portal.Portlet;
handler MainHandler type RUIhandler{initialUI =[mortgagePortal ],
onConstructionFunction = start,
cssFile = "css/MortgageUIProject.css",
title = "MainHandler"}
mortgagePortal Portal{columns = 2, columnWidths =[350, 650]};
calculatorHandler MortgageCalculatorHandler{};
resultsHandler CalculationResultsHandler{};
historyHandler CalculationHistoryHandler{};
mapHandler MapLocatorHandler{};
calculatorPortlet Portlet{children =[calculatorHandler.ui ],
title = "Calculator"};
resultsPortlet Portlet{children =[resultsHandler.ui ],
title = "Results", canMove = true, canMinimize = true};
historyPortlet Portlet{children = [historyHandler.historyResults_ui],
title = "History", canMove = TRUE, canMinimize = TRUE};
mapPortlet Portlet{children = [mapHandler.ui],
title = "Map", canMove = FALSE, canMinimize = TRUE};
function start()
mortgagePortal.addPortlet(calculatorPortlet, 1);
mortgagePortal.addPortlet(resultsPortlet, 1);
mortgagePortal.addPortlet(historyPortlet, 1);
mortgagePortal.addPortlet(mapPortlet, 2);
// Abonnement aux événements de calcul
InfoBus.subscribe("mortgageApplication.mortgageCalculated",
restorePortlets);
// L'état initial est réduit
resultsPortlet.minimize();
historyPortlet.minimize();
end
function restorePortlets(eventName string in, dataObject any in)
if(resultsPortlet.isMinimized())
resultsPortlet.restore();
end
if(historyPortlet.isMinimized())
historyPortlet.restore();
end
end
end