private void addWidget(final M m) { // This call is always synchronous, since the list can only be manipulated after // onItemsRendered was called. At that point the code of a potential split point must have // already been downloaded. AsyncBeanDef<W> itemBeanDef = IOC.getAsyncBeanManager().lookupBean(getItemWidgetType()); itemBeanDef.getInstance( new CreationalCallback<W>() { @Override public void callback(W widget) { widget.setModel(m); panel.add(widget); } }); }