final CellDecorator<C> cell = new CellDecorator<C>(nodeInfo, level);
final PagingListView<C> listView = createPagingListView(nodeInfo, cell);
assert (listView instanceof Widget) : "createPagingListView() must return a widget";
// Create a pager and wrap the components in a scrollable container.
ScrollPanel scrollable = new ScrollPanel();
final Pager<C> pager = createPager(listView);
if (pager != null) {
assert (pager instanceof Widget) : "createPager() must return a widget";
FlowPanel flowPanel = new FlowPanel();
flowPanel.add((Widget) listView);
flowPanel.add((Widget) pager);
scrollable.setWidget(flowPanel);
} else {
scrollable.setWidget((Widget) listView);
}
scrollable.setStyleName(style.column());
if (level == 0) {
scrollable.addStyleName(style.firstColumn());
}
// Create a delegate list view so we can trap data changes.
ListView<C> listViewDelegate = new ListView<C>() {
public Range getRange() {