Java 在Vaadin中基于容器构建dChart

Java 在Vaadin中基于容器构建dChart,java,widget,vaadin,vaadin7,Java,Widget,Vaadin,Vaadin7,我得到了一个基于SQLContainer构建的表。我还想基于SQLContainer构建一个图表。使用VaadinChartadd-on会很容易,但是我不想为此付费,我正在寻找免费的东西。因此,我安装了基于容器的dChartwidget构建图,如下所示: void refreshPieDChart(Container container){ Collection<?> itemIDS= container.getItemIds(); Map<String, In

我得到了一个基于
SQLContainer
构建的表。我还想基于
SQLContainer
构建一个图表。使用
VaadinChart
add-on会很容易,但是我不想为此付费,我正在寻找免费的东西。因此,我安装了基于容器的
dChart
widget构建图,如下所示:

void refreshPieDChart(Container container){
    Collection<?> itemIDS= container.getItemIds();
    Map<String, Integer> countMap = new HashMap<String, Integer>();
    //1
    for (Object itemID : itemIDS)
    {
         Property property= container.getContainerProperty(itemID, "status");
         String status = (String)property.getValue();

         if (countMap.containsKey(status)) {
             countMap.put(status, countMap.get(status) + 1);
         } else {
             countMap.put(status, 1);
         }
    }

    DataSeries dataSeries = new DataSeries();

    if (countMap == null || countMap.size() < 1) {
        dataSeries.newSeries().add("No records", 1);
    }else{
        for (String key : countMap.keySet()) {
            String legendRow = key + "\t" + countMap.get(key).toString();
            dataSeries.newSeries().add(legendRow, countMap.get(key));
        }
    }
    chart.setDataSeries(dataSeries).show();
}
这意味着用户需要等待2秒,直到页面将被重新绘制

有没有比我实现的更快的方法从
容器
构建
dChart
?或者可能已经有其他免费的图表小部件实现了这一点

编辑:

我做了更多的测试,并调用了所有的
getContainerProperty(id,prop)
花了5/6的时间处理:/n还有其他方法吗?

请看下面的答案:

我能够计算成千上万的
状态
e

300 - 1400 records : 500 - 1800 ms