package handlers; // RUI Handler 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.Div; // // handler secondHandlerUsingLibrary type RUIhandler {initialUI = [ ui ],onConstructionFunction = start, title="secondhandler"} ui Div{ children = [ dataGrid ] }; dataGrid DataGrid{ height = 304, showScrollbar = true, columns = [ new DataGridColumn{name = "field1", displayName = "Column 1 Header", width=50}, new DataGridColumn{name = "field2", displayName = "Column 2 Header", width=50} ]//,showCheckBoxes = true, //checkboxListeners = [checkboxListener] }; checkedrows string[0]; data Dictionary[0]; function start() // In this example we're not using infobus, but retrieve the data from a Library. // infobus.subscribe("LISTEN",arrayfunction); arrayfunction(); end // I changed this function to a plain old function. // function arrayfunction(eventName String in, dataObject any in) function arrayfunction() //datagrid.data = dataObject as any[]; // The data on the Library is passed as an array of Dictionaries, so you have to handle it as an array. // resultRecord Dictionary = // dataObject as Dictionary; resultRecord Dictionary[] = ParametersLib.array; for (i int from 1 to resultRecord.getSize()) data.appendElement(resultRecord[i]); end dataGrid.data = data as any[]; syslib.writestdout(resultRecord.getsize()); syslib.writestdout(resultRecord.getsize()); end end