public void createChart(
      DataModel<String, Long> data, String label, String title, String axisX, String axisY) {
    if (data == null) {
      MetaUtils.setMsg("No data to display", FacesMessage.SEVERITY_INFO);
      return;
    }

    barModel = init(data, label);

    barModel.setTitle(title);
    barModel.setLegendPosition("ne");

    Axis xAxis = barModel.getAxis(AxisType.X);
    xAxis.setLabel(axisX);

    Axis yAxis = barModel.getAxis(AxisType.Y);
    yAxis.setLabel(axisY);
    yAxis.setMin(0);

    long max = 0;
    for (DataPoint<String, Long> p : data.getPoints()) {
      max = Math.max(max, p.getY());
    }
    yAxis.setMax(max);
  }
  private BarChartModel init(DataModel<String, Long> data, String label) {
    barModel = new BarChartModel();

    ChartSeries series = new ChartSeries();
    series.setLabel(label);

    for (DataPoint<String, Long> p : data.getPoints()) {
      series.set(p.getX(), p.getY());
    }

    barModel.addSeries(series);

    return barModel;
  }