
com.github.apetrelli.gwtintegration.cellview.client.widget.PagedTable Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of gwt-integration-cellview Show documentation
Show all versions of gwt-integration-cellview Show documentation
Additional code to ease development of Cell-based widgets.
The newest version!
package com.github.apetrelli.gwtintegration.cellview.client.widget;
import java.util.List;
import java.util.Set;
import com.github.apetrelli.gwtintegration.cellview.client.builder.CellTableWithListDataBuilder;
import com.google.gwt.uibinder.client.UiConstructor;
import com.google.gwt.user.cellview.client.CellTable;
import com.google.gwt.user.cellview.client.ColumnSortList;
import com.google.gwt.user.cellview.client.SimplePager;
import com.google.gwt.user.client.ui.Composite;
import com.google.gwt.view.client.ListDataProvider;
import com.google.gwt.view.client.SelectionModel;
import com.google.gwt.view.client.SetSelectionModel;
public abstract class PagedTable extends Composite {
private ListDataProvider dataProvider;
private Integer defaultSortColumnIndex;
private CellTable dataTable;
@UiConstructor
public PagedTable(CellTableWithListDataBuilder tableBuilder) {
dataProvider = tableBuilder.getDataProvider();
dataTable = tableBuilder.construct();
setDataTable(dataTable);
initWidget();
tableBuilder.setPager(getPager()).connect();
}
public void setPageSize(int pageSize) {
getPager().setPageSize(pageSize);
}
protected abstract void initWidget();
protected abstract void setDataTable(CellTable dataTable);
protected abstract SimplePager getPager();
public void setDefaultSortColumnIndex(Integer defaultSortColumnIndex) {
this.defaultSortColumnIndex = defaultSortColumnIndex;
}
public void setItems(List persons) {
List list = dataProvider.getList();
list.clear();
if (persons != null) {
list.addAll(persons);
}
SetSelectionModel selectionModel = getSelectionModel();
if (selectionModel != null) {
selectionModel.clear();
}
dataProvider.flush();
ColumnSortList sortList = dataTable.getColumnSortList();
sortList.clear();
if (defaultSortColumnIndex != null) {
sortList.push(dataTable.getColumn(defaultSortColumnIndex));
}
getPager().setDisplay(dataTable);
getPager().setPage(0);
}
@SuppressWarnings({ "rawtypes", "unchecked" })
private SetSelectionModel getSelectionModel() {
SelectionModel selectionModel = dataTable.getSelectionModel();
if (selectionModel == null) {
return null;
}
if (selectionModel instanceof SetSelectionModel) {
return (SetSelectionModel) selectionModel;
}
throw new IllegalStateException("The selection model is not a SetSelectionModel");
}
public Set getSelectedItems() {
SetSelectionModel selectionModel = getSelectionModel();
return selectionModel != null ? selectionModel.getSelectedSet() : null;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy