package com.akjava.gwt.lib.client.widget.cell; import com.google.gwt.cell.client.Cell; import com.google.gwt.cell.client.FieldUpdater; import com.google.gwt.user.cellview.client.CellTable; import com.google.gwt.user.cellview.client.Column; public class ColumnBuilder<C,T> { CellTable<T> table; public ColumnBuilder(CellTable<T> table){ this.table=table; } @SuppressWarnings("hiding") public <C> void addColumn(Cell<C> cell, String headerText, final GetValue<C,T> getter, FieldUpdater<T, C> fieldUpdater) { Column<T, C> column = new Column<T, C>(cell) { @Override public C getValue(T object) { return getter.getValue(object); } }; column.setFieldUpdater(fieldUpdater); table.addColumn(column, headerText); } public static interface GetValue<C,T> { C getValue(T contact); } }