2011-11-17 27 views
1

的代碼(下面)該位工作,以顯示1..N在屏幕上LineCharts沒有發生任何事件。我想知道的是它有多高效。我打電話每次VisualizationsUtils.loadVisualizationApi(onLoadCallback, LineChart.PACKAGE)。必須以這種方式完成嗎?顯示多個圖形瓦特/ GWT可視化

public void getData(List<GraphWrapper> graphWrapperList) { 
    for (GraphWrapper graphWrapper : graphWrapperList) { 
     populateResources.populateResourcesService(graphWrapper.getSeriesWrapperList(), 
       new AsyncCallback<GraphWrapper>() { 
        public void onFailure(Throwable caught) { 
         displayDialogBox("*** An Error Occurred ***", caught.toString()); 
        } 

        public void onSuccess(final GraphWrapper response) { 
         Runnable onLoadCallback = new Runnable() { 
          private Widget chart; 

          public void run() { 
           this.chart = new LineChart(createTable(response), createOptions(response)); 
           graphPanel.add(this.chart); 
          } 
         }; 
         VisualizationUtils.loadVisualizationApi(onLoadCallback, LineChart.PACKAGE); 
        } 
       }); 
    } 
} 

回答

2

通過加載LineChart.PACKAGE,你只允許一個單一的圖表類型(LineChart)的。既然你可以一次只裝載一個「包」,你堅持這一決定。試試這個:

VisualizationUtils.loadVisualizationApi(onLoadCallback, CoreChart.PACKAGE); 

使用CoreChart包,您可以加載任何是CoreChart(折線圖,條形圖,餅圖,面積,柱和散射)一個孩子。您還可以加載任何數量/圖表的組合。此外,你不需要每次調用loadVisualizationApi(...)方法,但是你要創建一個圖表只是第一次。之後每一個人都會使用該庫。

1

我認爲,一旦加載線型圖包應該是足夠的。你是否嘗試在回調中運行循環?

public void getData(List<GraphWrapper> graphWrapperList) { 
Runnable onLoadCallback = new Runnable() { 
    public void run() { 
      for (GraphWrapper graphWrapper : graphWrapperList) { 
       populateResources.populateResourcesService(graphWrapper.getSeriesWrapperList(), 
       new AsyncCallback<GraphWrapper>() { 
         public void onFailure(Throwable caught) { 
          displayDialogBox("*** An Error Occurred ***", caught.toString()); 
         } 
         public void onSuccess(final GraphWrapper response) { 
          private Widget chart; 
          this.chart = new LineChart(createTable(response), createOptions(response)); 
          graphPanel.add(this.chart);     
         } 
       }); 
      } 
     } 
    }; 
VisualizationUtils.loadVisualizationApi(onLoadCallback, LineChart.PACKAGE); 
} 
+0

+1代表如何實現答案的代碼示例。 –