Reverting behavior in DefaultCellTableBuilder so it renders Cells using Column#render(), if available. CellTableBuilder uses the HasCell interface to define the Cells used in the table. If the HasCell is an instance of Column, we should defer to Column#render() for legacy support instead of calling HasCell#getCell()#render(). Some users override Column#render() to add custom html to the rendered cell.
Review at http://gwt-code-reviews.appspot.com/1513805
Review by: katerina@google.com
git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@10513 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/user/cellview/client/AbstractCellTable.java b/user/src/com/google/gwt/user/cellview/client/AbstractCellTable.java
index 5c27f59..0619dcd 100644
--- a/user/src/com/google/gwt/user/cellview/client/AbstractCellTable.java
+++ b/user/src/com/google/gwt/user/cellview/client/AbstractCellTable.java
@@ -855,7 +855,16 @@
// Render the cell into the builder.
SafeHtmlBuilder cellBuilder = new SafeHtmlBuilder();
- column.getCell().render(context, column.getValue(rowValue), cellBuilder);
+ if (column instanceof Column) {
+ /*
+ * If the HasCell is a Column, let it render the Cell itself. This is
+ * here for legacy support.
+ */
+ Column<T, C> theColumn = (Column<T, C>) column;
+ theColumn.render(context, rowValue, cellBuilder);
+ } else {
+ column.getCell().render(context, column.getValue(rowValue), cellBuilder);
+ }
builder.html(cellBuilder.toSafeHtml());
}