Your making it overly complicated: For the case where you have all the data in a list already:
Column<ResidentListDO, String> unitColumn = new Column<ResidentListDO, String>(new TextCell()) { @Override public String getValue(ResidentListDO object) { return object.getUnit(); } }; Column<ResidentListDO, String> nameColumn = new Column<ResidentListDO, String>(new TextCell()) { @Override public String getValue(ResidentListDO object) { return object.getName(); } }; residentTable.addColumn(unitColumn, "Unit"); residentTable.addColumn(nameColumn, "Name"); SimplePager<ResidentListDO> thePager = new SimplePager<ResidentListDO>(residentTable); residentTable.setPager(thePager); mainGridContainer.add(residentTable); pagerContainer.add(thePager); residentTableAdapter = new residentAsyncAdapter(); On Jun 2, 11:18 pm, Andrew <yenchu.chen...@gmail.com> wrote: > The following code is what I'm woking on, hope it can help you: > > protected void init() { > VerticalPanel container = new VerticalPanel(); > initWidget(container); > > int pageSize = 10; > CellTable<User> cellTable = new CellTable<User>(pageSize); > setColumns(cellTable); > setSelectionModel(cellTable); > > setDataSize(cellTable); > int pageStart = 0; > loadData(pageStart, pageSize, cellTable); > > SimplePager<User> pager = createPager(cellTable); > > container.add(cellTable); > container.add(pager); > } > > private SimplePager<User> createPager(final CellTable<User> > cellTable) { > SimplePager<User> pager = new SimplePager<User>(cellTable, > SimplePager.TextLocation.CENTER) { > public void onRangeOrSizeChanged(PagingListView<User> > listView) { > loadData(listView.getPageStart(), > listView.getPageSize(), > listView); > super.onRangeOrSizeChanged(listView); > } > }; > return pager; > } > > private void setColumns(CellTable<User> cellTable) { > cellTable.addColumn(new TextColumn<User>() { > @Override > public String getValue(User user) { > return user.getName(); > } > }, new TextHeader("Name")); > > cellTable.addColumn(new TextColumn<User>() { > @Override > public String getValue(User user) { > return user.getLocation(); > } > }, new TextHeader("Location")); > } > > private void setSelectionModel(CellTable<User> cellTable) { > final SingleSelectionModel<User> selectionModel = new > SingleSelectionModel<User>(); > SelectionChangeHandler selectionHandler = new > SelectionChangeHandler() { > @Override > public void onSelectionChange(SelectionChangeEvent > event) { > User user = > selectionModel.getSelectedObject(); > Window.alert(user.getId() + ": " + > user.getName()); > } > }; > selectionModel.addSelectionChangeHandler(selectionHandler); > cellTable.setSelectionEnabled(true); > cellTable.setSelectionModel(selectionModel); > } > > private void setDataSize(final PagingListView<User> cellTable) { > employeeRequest.countUsers(new AsyncCallback<Integer>() { > public void onFailure(Throwable caught) { > Window.alert("Request failure: " + > caught.getMessage()); > } > > public void onSuccess(Integer result) { > cellTable.setDataSize(result, true); > } > }); > } > > private void loadData(int start, int size, > final PagingListView<User> cellTable) { > employeeRequest.getUsers(start, size, > new AsyncCallback<PagingData<User>>() { > public void onFailure(Throwable > caught) { > Window.alert("Request > failure: " + caught.getMessage()); > } > > public void > onSuccess(PagingData<User> result) { > > cellTable.setData(result.getStart(), > > result.getLength(), result.getValues()); > } > }); > } -- You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group. To post to this group, send email to google-web-tool...@googlegroups.com. To unsubscribe from this group, send email to google-web-toolkit+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.