1

GWT 2.5 RC1 と GAE 1.7.2 を使用しています。UiRenderer Rendering HTML for Cellsを使用してカスタム セルを作成しました。
Google Chart Tools API for GWT を使用してグラフをレンダリングしたい GWTで Google Chart Tools を使用
する方法 以下に、render メソッドのスニペットがありますが、これは機能しません。

カスタムセルで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);
}
4

1 に答える 1

0

競合状態になっているようです。sb.appendHTMLConstant を呼び出すと、onLoadCallback がまだ起動されていないため、テスト要素はおそらく空です。最後の 2 行をコールバックの最後に移動すると、競合状態が解消されます。

@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);
}
于 2012-10-08T01:23:22.237 に答える