Set style name in AbstractCellTable instead of CellTable.

Bug: issue 8309
Change-Id: I37865162199dc2841e4945d84aa13fb258f48589
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 8ddb093..740d028 100644
--- a/user/src/com/google/gwt/user/cellview/client/AbstractCellTable.java
+++ b/user/src/com/google/gwt/user/cellview/client/AbstractCellTable.java
@@ -2529,6 +2529,8 @@
     if (template == null) {
       template = GWT.create(Template.class);
     }
+    // Set the cell table style
+    setStyleName(style.widget());
 
     // Sink events.
     Set<String> eventTypes = new HashSet<String>();
diff --git a/user/src/com/google/gwt/user/cellview/client/CellTable.java b/user/src/com/google/gwt/user/cellview/client/CellTable.java
index a3a1d57..823b1de 100644
--- a/user/src/com/google/gwt/user/cellview/client/CellTable.java
+++ b/user/src/com/google/gwt/user/cellview/client/CellTable.java
@@ -632,7 +632,6 @@
       table.appendChild(tbodyLoading);
     }
     tfoot = table.createTFoot();
-    setStyleName(resources.cellTableStyle().cellTableWidget());
 
     // Attach the messages panel.
     {
diff --git a/user/test/com/google/gwt/user/cellview/client/CellTableTest.java b/user/test/com/google/gwt/user/cellview/client/CellTableTest.java
index 965e59a..00ca2d7 100644
--- a/user/test/com/google/gwt/user/cellview/client/CellTableTest.java
+++ b/user/test/com/google/gwt/user/cellview/client/CellTableTest.java
@@ -335,6 +335,19 @@
     assertNotSame("fixed", table.getElement().getStyle().getTableLayout());
   }
 
+  /**
+   * Test if the tableWidget style is applied.
+   */
+  public void testTableWidgetStyle() {
+    Resources res = GWT.create(Resources.class);
+    CellTable<String> table = new CellTable<String>(10, res);
+
+    String tableWidgetStyle = res.cellTableStyle().cellTableWidget();
+
+    TableElement tableElem = table.getElement().cast();
+    assertTrue(tableElem.getClassName().contains(tableWidgetStyle));
+  }
+
   @Override
   protected CellTable<String> createAbstractHasData() {
     return new CellTable<String>();
diff --git a/user/test/com/google/gwt/user/cellview/client/DataGridTest.java b/user/test/com/google/gwt/user/cellview/client/DataGridTest.java
index d3fcac3..f3515e9 100644
--- a/user/test/com/google/gwt/user/cellview/client/DataGridTest.java
+++ b/user/test/com/google/gwt/user/cellview/client/DataGridTest.java
@@ -15,17 +15,32 @@
  */
 package com.google.gwt.user.cellview.client;
 
+import com.google.gwt.core.client.GWT;
 import com.google.gwt.dom.client.TableCellElement;
 import com.google.gwt.dom.client.TableElement;
 import com.google.gwt.dom.client.TableRowElement;
 import com.google.gwt.dom.client.TableSectionElement;
+import com.google.gwt.user.cellview.client.DataGrid.Resources;
 import com.google.gwt.user.client.ui.RootPanel;
 
 /**
  * Tests for {@link DataGrid}.
  */
 public class DataGridTest extends AbstractCellTableTestBase<DataGrid<String>> {
-
+  
+  /**
+   * Test if the dataGridWidget style is applied.
+   */
+  public void testDataGridWidgetStyle() {
+    Resources res = GWT.create(Resources.class); 
+    DataGrid<String> dataGrid = new DataGrid<String>(20, res);
+    
+    String dataGridWidgetStyle = res.dataGridStyle().dataGridWidget();
+    
+    TableElement tableElem = dataGrid.getElement().cast();
+    assertTrue(tableElem.getClassName().contains(dataGridWidgetStyle));
+  }
+  
   /**
    * Test that if a header builder does not add any rows, the header is hidden.
    */