/ / Render Google Chart в персонализирана клетка GWT 2.5 (използвах UiRenderer) - gwt, cell, google-visualization, gwt-celltable

Render Google Chart в GWT 2.5 персонализирана клетка (използвах UiRenderer) - gwt, cell, google-visualization, gwt-celltable

Използвам GWT 2.5 RC1 и GAE 1.7.2. Създадох персонализирана клетка с помощта на UiRenderer Представяне на HTML за клетки.
Искам да изобразя диаграма, използвайки API на Google Chart Tools за GWT Първи стъпки с помощта на Google Chart Tools с GWT
По-долу има фрагмент от метода на изобразяване, който не работи.

Някой знае ли как да превърне google диаграма в персонализирана клетка?

Ще се радвам, ако той / тя ми даде някои указания или примерен код. Благодаря предварително.

    @Override
public void render(com.google.gwt.cell.client.Cell.Context context, Value value, final SafeHtmlBuilder sb) {
final HTMLPanel test = new HTMLPanel("");
Runnable onLoadCallback = new Runnable() {
public void run() {
//Panel panel = RootPanel.get();

// Create a pie chart visualization.
PieChart pie = new PieChart(createTable(), createOptions());

pie.addSelectHandler(GoogleCharts.createSelectHandler(pie));
test.add(pie);
}
};
// Load the visualization api, passing the onLoadCallback to be called
// when loading is done.
VisualizationUtils.loadVisualizationApi(onLoadCallback, PieChart.PACKAGE);

sb.appendHtmlConstant(test.getElement().getInnerHTML());
renderer.render(sb);
}

Отговори:

0 за отговор № 1

Изглежда, че имате състояние на състезание. Когато се обадите на sb.appendHTMLConstant, тестовият елемент вероятно е празен, тъй като onLoadCallback все още не е стартиран. Ако преместите последните два реда до края на обратния разговор, това ще премахне състоянието на състезанието.

@Override
public void render(com.google.gwt.cell.client.Cell.Context context, Value value, final SafeHtmlBuilder sb) {
final HTMLPanel test = new HTMLPanel("");

Runnable onLoadCallback = new Runnable() {
@Override
public void run() {
// Create a pie chart visualization.
PieChart pie = new PieChart(createTable(), createOptions());
pie.addSelectHandler(GoogleCharts.createSelectHandler(pie));
test.add(pie);

sb.appendHtmlConstant(test.getElement().getInnerHTML());
renderer.render(sb);
}
};

// Load the visualization api, passing the onLoadCallback to be called
// when loading is done.
VisualizationUtils.loadVisualizationApi(onLoadCallback, PieChart.PACKAGE);
}