MVPでCellTableを使用しました。
UI:
<g:HTMLPanel>
    <g:ScrollPanel>
        <p1:CellTable ui:field="cellTable" width="100%" styleName="style.cellTable" height="100%" />
    </g:ScrollPanel>
</g:HTMLPanel>
ビュー インターフェイス:
public interface SomeCellListView extends IsWidget {
    void setPresenter(Presenter listener);
      // Method to set the CellTable data
    void setCellList(ArrayList<ObjectDTO> list);
    public interface Presenter {
        void goTo(Place place);
        void doSomething(int id);
    }
}
ビューの実装:
   public class SomeCellListViewImpl extends Composite implements SomeCellListView {
... all Ui Binder stuff here
@UiField(provided = true)
CellTable<ObjectDTO>cellTable = new CellTable<ObjectDTO>();
SomeCellListViewImpl(){
    TextColumn<ObjectDTO> someColumn= new TextColumn<ObjectDTO>(){
        @Override
        public String getValue(ObjectDTO o) {
            return o.getSomeFieldValue();
        }
    };
    cellTable.addColumn(someColumn, "column1");
    ... add other columns here
}
// This method is called from Presenter to set CellTable data
public void setCellList(ArrayList<ObjectDTO> list) {
    cellTable.setRowCount(list.size(), true);
    cellTable.setRowData(0, list);
}
}
アクティビティ (またはプレゼンター):
// コンストラクターでビューとサービスを設定 (ClientFactory からビューを取得)
public void start(AcceptsOneWidget containerWidget, EventBus eventBus) {
// Make RPC call
this.service
.getCellList(new AsyncCallback<ArrayList<ObjectDTO>>(){
    @Override
    public void onFailure(Throwable caught) {
        view.setError("Error fetching details");
    }
    @Override
    public void onSuccess(ArArrayList<ObjectDTO> result) {
        view.setCelllist(result);
    }
});
view.setPresenter(this);
containerWidget.setWidget(view.asWidget());
}
ここで、ビューはすでに ClientFactory によって作成されています。ビューには、CellTable のレイアウトのみが含まれています。ビューの作成時にデータがロードされません。アクティビティ (別名プレゼンター) が開始されると、「開始」メソッドが呼び出されます。ここでは、Cell データを取得する RPC を作成し、ビューでメソッドを呼び出してデータを設定します。
私はCellTreeを使用していません。しかし、あなたはセルウィジェットについて一般的に尋ねました。したがって、これを共有することを考えました。お役に立てれば。