LoginSignup
2
2

More than 5 years have passed since last update.

wicketstuff-googlechartsを試してみる

Posted at

後輩にwicketstuff-googlechartsの使い方を教えた時のサンプルコードがもったいないのであげておく。

pom.xmlにdependencyを追加

pom.xml
  <dependency>
    <groupId>org.wicketstuff</groupId>
    <artifactId>wicketstuff-googlecharts</artifactId>
    <version>6.12.0</version>
  </dependency>

HomePage.html

HomePage.html
  <img wicket:id="chart"></img>
  <button type="button" wicket:id="refresh">更新</button>

HomePage.java

HomePage.java
public class HomePage extends WebPage {

  public HomePage() {
    IChartData data = new AbstractChartData() {

      @Override
      public double[][] getData() {
        Random r = new Random();
        int n = r.nextInt(10);
        return new double[][] { { n, 10 - n } };
      }
    };

    ChartProvider provider = 
      new ChartProvider(new Dimension(250, 100), ChartType.PIE, data);
    provider.setPieLabels(new String[] { "a", "b" });

    final Chart chart = new Chart("chart", provider) {

      @Override
      protected void onInitialize() {
        super.onInitialize();
        setOutputMarkupId(true);
      }
    };
    add(chart);

    add(new AjaxLink<Void>("refresh") {

      @Override
      public void onClick(AjaxRequestTarget target) {
        chart.invalidate();
        target.add(chart);
      }
    });

  }
}

注)serialVersionUIDは省略している。

AbstractChartDataのオブジェクトでグラフに表示するデータを、ChartProviderのオブジェクトでグラフの設定(サイズや形式、ラベルなど)が設定される。

Chart#invalicate()メソッドは、Ajaxでの更新時にグラフの設定やデータを再読み込み(Google ChartsへのURLの再生成)をするために実行している。

実行結果

wicketstuff-googleCharts.png

更新ボタン押すと、グラフが更新される。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2