@Override
public final void setDataSource(DataSource dataSource)
{
	if (dataSource instanceof DefinitionBackedDataSource)
	{
		this.definitionBackedDataSource = (DefinitionBackedDataSource) dataSource;

		if (useServerSideSummary)
		{
			SummaryRowDataSource summaryRowDataSource = (SummaryRowDataSource) getSummaryRowDataSource();
			summaryRowDataSource.setDefinition(definitionBackedDataSource.getDefinition());
		}

		ListGridField[] fields = Utils.createFields(definitionBackedDataSource.getColumns(), this.getVisibleWidth(), this);

		/* SmartGWT 3.0 needs to know the fields before it can show the summary */
		super.setDataSource(dataSource, fields);
		hasSummaryFunction(fields);
	}
	else
	{
		super.setDataSource(dataSource);
	}
	super.fetchData();
}