Finished code for CalculationHistoryHandler.egl after Lesson 8

The following code is the text of the CalculationHistoryHandler.egl file after Lesson 8.
package handlers;

import com.ibm.egl.rui.infobus.InfoBus;
import com.ibm.egl.rui.widgets.DataGrid;
import com.ibm.egl.rui.widgets.DataGridColumn;
import com.ibm.egl.rui.widgets.DataGridFormatters;
import com.ibm.egl.rui.widgets.DataGridLib;
import libraries.MortgageLib;
import services.MortgageCalculationResult;

handler CalculationHistoryHandler type RUIhandler 
   {initialUI = [ historyResults_ui ],
    onConstructionFunction = start,
    cssFile="css/MortgageUIProject.css",
    title="CalculationHistoryHandler"}
	
   historyResults MortgageCalculationResult[0];
	
   historyResults_ui DataGrid {
		   selectionMode = DataGridLib.SINGLE_SELECTION,
      selectionListeners ::= cellClicked,
      columns = [
         new DataGridColumn {name = "loanAmount", displayName = "Principal", 
                             width = 80, alignment = DataGridLib.ALIGN_RIGHT, 
                             formatters = [ formatDollars ]},
         new DataGridColumn {name = "interestRate", displayName = "Rate", 
                             width = 80, alignment = DataGridLib.ALIGN_RIGHT, 
                             formatters = [ DataGridFormatters.percentage ]},
         new DataGridColumn {name = "term", displayName = "Years", 
                             width = 50, alignment = DataGridLib.ALIGN_RIGHT},
         new DataGridColumn {name = "monthlyPayment", displayName = "Payment", 
                             width = 70, alignment = DataGridLib.ALIGN_RIGHT, 
                             formatters = [ formatDollars ]}
      ],
      data = historyResults as any[] };
	
   function start()
      InfoBus.subscribe("mortgageApplication.mortgageCalculated", addResultRecord);
   end	
	
   // Update the grid to include the latest mortgage calculation
   function addResultRecord(eventName STRING in, dataObject ANY in)
      resultRecord MortgageCalculationResult = 
         dataObject as MortgageCalculationResult;
      historyResults.appendElement(resultRecord);
      historyResults_ui.data = historyResults as ANY[];
   end
	
   // Publish an event to the InfoBus whenever the user selects an old calculation
   function cellClicked(myGrid DataGrid in)
      updateRec MortgageCalculationResult = 
         myGrid.getSelection()[1] as MortgageCalculationResult;
      InfoBus.publish("mortgageApplication.mortgageResultSelected", updateRec);
   end
	
   function formatDollars(class string, value string, rowData any in)
      value = mortgageLib.formatMoney(value);
   end
end

Feedback