Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>The following code is what I'm woking on, hope it'll be helpful:</p> <pre><code>protected void init() { VerticalPanel container = new VerticalPanel(); initWidget(container); int pageSize = 10; CellTable&lt;User&gt; cellTable = new CellTable&lt;User&gt;(pageSize); setColumns(cellTable); setSelectionModel(cellTable); setDataSize(cellTable); int pageStart = 0; loadData(pageStart, pageSize, cellTable); SimplePager&lt;User&gt; pager = createPager(cellTable); container.add(cellTable); container.add(pager); } private SimplePager&lt;User&gt; createPager(final CellTable&lt;User&gt; cellTable) { SimplePager&lt;User&gt; pager = new SimplePager&lt;User&gt;(cellTable, SimplePager.TextLocation.CENTER) { public void onRangeOrSizeChanged(PagingListView&lt;User&gt; listView) { loadData(listView.getPageStart(), listView.getPageSize(), listView); super.onRangeOrSizeChanged(listView); } }; return pager; } private void setColumns(CellTable&lt;User&gt; cellTable) { cellTable.addColumn(new TextColumn&lt;User&gt;() { @Override public String getValue(User user) { return user.getName(); } }, new TextHeader("Name")); cellTable.addColumn(new TextColumn&lt;User&gt;() { @Override public String getValue(User user) { return user.getLocation(); } }, new TextHeader("Location")); } private void setSelectionModel(CellTable&lt;User&gt; cellTable) { final SingleSelectionModel&lt;User&gt; selectionModel = new SingleSelectionModel&lt;User&gt;(); 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&lt;User&gt; cellTable) { employeeRequest.countUsers(new AsyncCallback&lt;Integer&gt;() { 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&lt;User&gt; cellTable) { employeeRequest.getUsers(start, size, new AsyncCallback&lt;PagingData&lt;User&gt;&gt;() { public void onFailure(Throwable caught) { Window.alert("Request failure: " + caught.getMessage()); } public void onSuccess(PagingData&lt;User&gt; result) { cellTable.setData(result.getStart(), result.getLength(), result.getValues()); } }); } public class PagingData&lt;T&gt; implements IsSerializable { private int start; private int length; private List&lt;T&gt; values; public PagingData() { } public PagingData(int start, int length, List&lt;T&gt; values) { super(); this.start = start; this.length = length; this.values = values; } public int getStart() { return start; } public void setStart(int start) { this.start = start; } public int getLength() { return length; } public void setLength(int length) { this.length = length; } public List&lt;T&gt; getValues() { return values; } public void setValues(List&lt;T&gt; values) { this.values = values; } } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload