I don't use GWT, but assuming your data source returns a JSON representation of a DataTable object, then you could use something like this (I use jQuery, but you can accomplish the same thing using vanilla JS or other frameworks):
google.load('visualization', '1.0', {'packages': ['corechart']});
google.setOnLoadCallback(init);
function init () {
$('#myButton').click(function () {
// get parameters to submit to data source
var params;
// get data w/ AJAX call
$.ajax({
url: '/path/to/data.source',
data: params,
type: json,
success: function (json) {
var data = new google.visualization.DataTable(json);
var pie = new google.visualization.PieChart(document.getElementById('pie_1_div'));
pie.draw(data, {/*options*/});
}
});
});
}
This will fetch data and redraw the chart every time the user clicks 'myButton'