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());
     }