Shawn Quinn - 2011-09-27

You indeed should be able to change the data of a chart after it has been rendered. You can either change data on a series via one of the overloaded Series.addPoint() or Series.setPoints() methods, or you can update an individual point via the Point.update() method. Note that in order to use Point.update() though you need to have retrieved the Point instance either from a series (via Series.getPoints()) or from an event (like PointSelectEvent.getPoint()). The following shows an example of the update() method in use:

    Chart chart = new Chart();
    final Series series = chart.createSeries()
        .setPoints(new Number[]{3.1, 2.7, 4.3});
    chart.addSeries(series);
    Timer tempTimer = new Timer() {
        @Override
        public void run() {
            Point[] points = series.getPoints();
            for (Point point : points) {
                point.update(point.getX(), point.getY().floatValue() + 1.0);
            }
        }
    };
    tempTimer.schedule(2000);

There's also an example in the Showcase application that shows using the Series.addPoint() method here:

http://www.moxiegroup.com/moxieapps/gwt-highcharts/showcase/#dynamic-spline-updating

I hope that helps. But, if you're still experiencing a null pointer issue, can post a trimmed down code example that demonstrates the issue?