Использовать API визуализации Google в GWT
Я хочу использовать API визуализации javascript от Google в моем проекте GWT. Я использую методы JSNI, но это не сработало:
private native void drawChart() /*-{
drawChart = function() {
// Create the data table.
var data = new $wnd.google.visualization.DataTable();
$wnd.data.addColumn('string', 'Topping');
$wnd.data.addColumn('number', 'Slices');
$wnd.data.addRows([
['Mushrooms', 3],
['Onions', 1],
['Olives', 1],
['Zucchini', 1],
['Pepperoni', 2]
]);
// Set chart options
var options = {'title':'How Much Pizza I Ate Last Night',
'width':400,
'height':300};
// Instantiate and draw our chart, passing in some options.
var chart = new $wnd.google.visualization.PieChart($doc.getElementById('chart_div'));
$wnd.chart.draw(data, options);
}
$wnd.google.load('visualization', '1.0', {'packages':['corechart']});
$wnd.google.setOnLoadCallback(drawChart);
}-*/;
Я знаю, что для этого API есть обертка GWT, но API визуализации JavaScript содержит больше типов диаграмм и больше функций; например я хочу использовать ChartEditor
в моем проекте GWT: как здесь
У кого-нибудь есть пример или идея заставить его работать?
1 ответ
Убедитесь, что у вас есть
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
в вашем HTML и
google.load('visualization', '1.0', {'packages':['corechart']});
где-то на самом деле загрузить API.
Также не пытайтесь использовать API до его загрузки. Используйте этот обратный вызов:
// Set a callback to run when the Google Visualization API is loaded.
google.setOnLoadCallback(drawChart);