2011-12-07 4 views
1

코드 선 그래프 시각화 아래에 putted했습니다. gwt vissualization 그래프의 선형 차트에서 동적 widht를 설정하는 방법을 말해 줄 수 있습니까? options.setWidth (1000); 나는 대신에 약간의 역동적 인 가치를 원한다.GWT 선형 차트의 동적 폭

여기

public class CPUChart extends VerticalPanel{ 
    private LineChart lineChart; 
    private DataTable data; 

    public CPUChart(final CPUChartDataQueue cpuChartDataQueue) { 
     VisualizationUtils.loadVisualizationApi(new Runnable() { 
      public void run() { 

       setLayoutData(new FitLayout()); 
       lineChart = new LineChart(createTable(cpuChartDataQueue), createOptions("CPU Chart")); 
       add(lineChart); 

      }}, LineChart.PACKAGE); 
    } 

    private Options createOptions(String title) { 
     Options options = Options.create(); 
     **options.setWidth(1000); 
     options.setHeight(300);** 
     options.setTitleFontSize(11); 
     options.setShowCategories(true); 
     options.setLegend(LegendPosition.BOTTOM); 
     options.setTitle(title); 
     options.setSmoothLine(true); 
     options.setAxisFontSize(12); 
     options.setColors(Color3D.create("#A4C735", "#4F7512"),Color3D.create("#FF4C4C", "#FF0303")); 
     options.setMin(0); 
     options.setMax(100); 
     options.setTitleY("Percentage(%)"); 
     options.setTitleX("Time"); 
     return options; 
    } 
    private AbstractDataTable createTable(CPUChartDataQueue cpuChartDataQueue) { 
     DataTable data = DataTable.create(); 
     data.addColumn(ColumnType.STRING, "Time"); 
     data.addColumn(ColumnType.NUMBER, "CPU Usage Percentage"); 

     Queue<CPUChartData> chartDatas = cpuChartDataQueue.getQue(); 
     if(chartDatas!=null && chartDatas.size()>0){ 
      data.addRows(chartDatas.size()); 
      int i=0; 
      for (CPUChartData chartData : chartDatas) { 
       data.setValue(i, 0, chartData.getLable()); 
       data.setValue(i, 1, Integer.parseInt(chartData.getValue()));   
       i++; 
      } 
     } 

     return data; 
    } 

    public void refreshChart(CPUChartDataQueue cpuChartDataQueue){ 
     data = DataTable.create(); 
     data.addColumn(ColumnType.STRING, "Time"); 
     data.addColumn(ColumnType.NUMBER, "CPU Usage Percentage"); 

     Queue<CPUChartData> chartDatas = cpuChartDataQueue.getQue(); 
     if(chartDatas!=null && chartDatas.size()>0){ 
      data.addRows(chartDatas.size()); 
      int i=0; 
      for (CPUChartData chartData : chartDatas) { 
       data.setValue(i, 0, chartData.getLable()); 
       data.setValue(i, 1, Integer.parseInt(chartData.getValue()));   
       i++; 
      } 
     } 

     lineChart.draw(data,createOptions("CPU Chart")); 
    } 
} 

답변

0

대부분의 Google 시각화 차트 픽셀에 명시 적으로 크기를 필요로 코드를 입력합니다. 일부 FLASH 차트 만 비율 치수를 지원합니다.
해결 방법은 브라우저 창 크기를 조정할 때마다 창에 onResize 처리기를 추가하고 차트를 다시 그리거나 다시 작성하는 것입니다.

관련 문제