1
resposta

setLabel() não aparece no gráfico.

O label atribuído ao ChartSeries não aparece (a imagem) no gráfico. No vídeo reparei que também não aparece. Meu código abaixo: é identico ao do curso. Porque não aparece?

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

import org.apache.jasper.tagplugins.jstl.core.ForEach;
import org.primefaces.model.chart.BarChartModel;
import org.primefaces.model.chart.ChartSeries;

import br.com.caelum.livraria.dao.DAO;
import br.com.caelum.livraria.modelo.Livro;
import br.com.caelum.livraria.modelo.Venda;

@ManagedBean
@ViewScoped
public class VendasBean {

    public BarChartModel getVendasModel() {

        BarChartModel model = new BarChartModel();
        model.setAnimate(true);

        ChartSeries vendasSerie = new ChartSeries();
        vendasSerie.setLabel("2018");

        List<Venda> vendas = this.getVendas(1234L);

        for(Venda venda : vendas) {
            vendasSerie.set(venda.getLivro().getTitulo(), venda.getQuantidade());
        }

        model.addSeries(vendasSerie);


        ChartSeries vendasSerie2 = new ChartSeries();
        vendasSerie2.setLabel("2017");

        vendas = this.getVendas(2345L);

        for(Venda venda : vendas) {
            vendasSerie2.set(venda.getLivro().getTitulo(), venda.getQuantidade());
        }

        model.addSeries(vendasSerie2);

        return model;

    }

    public List<Venda> getVendas(Long seed) {

        List<Livro> livros = new DAO<Livro>(Livro.class).listaTodos();
        List<Venda> vendas = new ArrayList<Venda>();

        Random ramdom = new Random(seed);

        for (Livro livro : livros) {
            Integer quantidade = ramdom.nextInt(500);
            vendas.add(new Venda(livro, quantidade));
        }

        return vendas;
    }
}
1 resposta

Bom, não sei pq não aparece :(. Fui olhar na documentação do primefaces => https://www.primefaces.org/showcase/ui/chart/bar.xhtml

Parece que o código realmente está correto. Versão do prime talvez? Algum detalhe de layout da página? Talvez valha a pena fazer uns testes e ver se dá algum resultado.