Использовать 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);
Другие вопросы по тегам