2013-02-25 50 views
0

問題是在繪圖上點擊或調整瀏覽器大小。我有TabPanel放置與RowData,兩個TabItems與圖表(谷歌Vizualization)在一個和表與相同的數據在下。我在頁面加載時創建它們。 然後我點擊從數據庫加載數據(按鈕),我重繪此二:ExtGWT使用ChartsVizualization調整大小TabPanel(TabItem)圖表

public void reDraw(final List<Double> slices, final String[] devices) 
    { 
     pcPie.draw(createTable(slices,devices),createOptions("По автомобилям")); 
     tPie.draw(createTable(slices, devices),CreateTableOptions()); 
    } 

這是工作僅適用於主動的TabItem以及與此尺寸替換從後面圖紙空間(400像素,200像素),在生成的HTML和我發現數據在後面的部分沒有改變。

此外,當我調整瀏覽器的大小時,圖表和表格不會調整大小。我試圖使用一些佈局,他們不工作。可能是我不明白如何正確使用它們。 所以,

  1. 我如何調整我的圖表和表格在兩個 部分(主動和背後)的正確嗎?
  2. 如何在瀏覽器調整大小事件時調整我的圖表和表格 ?

回答

0

我們的第一個問題來自於:當你在一些TabItem中使用TabPanel組件時,後面的TabItems沒有被精確地創建,並且你不能重新繪製它們,因爲沒有創建對象。所以我們在激活的部分更改我們的代碼:

public void run() { 
    tpLineCharts.setBorders(true);     
     TabItem tiGraph = new TabItem("График"); 
      tableData = createTable(); 
      lcLines = new LineChart(tableData, 
            createOptions("По компании")); 
      lcLines.addSelectHandler(createSelectHandler(lcLines)); 
     tiGraph.setLayout(new FitLayout()); 
     tiGraph.add(lcLines); 
    tpLineCharts.add(tiGraph); 
     TabItem tiTable = new TabItem("Таблица");      
      tLine = new Table(tableData, CreateTableOptions());             
     tiTable.add(tLine);            
     tiTable.addListener(Events.Select, new Listener<BaseEvent>() 
     { 
      @Override 
      public void handleEvent(BaseEvent be) {           
       tLine.draw(tableData); 
      } 
     }); 
    tpLineCharts.add(tiTable);     
}}, CoreChart.PACKAGE, Table.PACKAGE); 

where tableData - AbstractTableData。此修改後,我們可以重繪我們的組件:

public void reDrawLineChart(final ArrayList <Double> sumCompanyTraffic, 
    final ArrayList<Integer> axisName, String title) 
{   
    tableData =createTable(sumCompanyTraffic, axisName); 
    tLine.draw(tableData, CreateTableOptions()); 
    lcLines.draw(tableData, createOptions(title)); 
} 

你也需要添加此選項:

private Options createOptions(String title) 
{ 
    Options options = Options.create(); 
    options.setTitleX("Период");     
    options.setTitle(title);  
    if(tpLineCharts.isRendered()) 
     options.setSize(tpLineCharts.getWidth(true), 
       tpLineCharts.getHeight(true)); 

    return options; 
}