Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Duvidas na tag <p:chart>

Estou com duvida, estou tentando de varias maneiras ja alterei de varias formas mas fica salvo na vendas.xhtml o BarCharModel, ou seja ele ainda carrega duas series mesmo eu excluindo uma até alterei o nome das variáveis mas ele carrega duas series com os valores antigos.

VendasBean.class

package br.com.caelum.livraria.bean;

import java.io.Serializable;
import java.util.List;

import javax.faces.view.ViewScoped;
import javax.inject.Inject;
import javax.inject.Named;
import javax.persistence.EntityManager;

import org.primefaces.model.chart.BarChartModel;
import org.primefaces.model.chart.ChartSeries;

import br.com.caelum.livraria.modelo.Venda;

@Named
@ViewScoped
public class VendasBean implements Serializable {

    private static final long serialVersionUID = 1L;

    @Inject
    EntityManager manager;

    public BarChartModel getVendasModel() {

        BarChartModel chart = new BarChartModel();

        ChartSeries serie = new ChartSeries();
        serie.setLabel("Vendas 2016");

        List<Venda> vendas = getVendas();
        for (Venda venda : vendas) {
            serie.set(venda.getLivro().getTitulo(), venda.getQuantidade());
        }

        chart.addSeries(serie);

        return chart;
    }

    public List<Venda> getVendas() {
        List<Venda> vendas = manager.createQuery("select v from Venda v", Venda.class).getResultList();
        return vendas;
    }
}

Vendas.xhtml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://xmlns.jcp.org/jsf/html"
    xmlns:f="http://xmlns.jcp.org/jsf/core"
    xmlns:p="http://primefaces.org/ui"
    xmlns:ui="http://xmlns.jcp.org/jsf/facelets">

    <ui:composition template="_template.xhtml">

        <ui:define name="titulo">
            <p:outputPanel>Vendas</p:outputPanel>
        </ui:define>

        <ui:define name="conteudo">
            <p:chart type="bar" model="#{vendasBean.vendasModel}" style="height:300px"/>
        </ui:define>

    </ui:composition>

</html>
1 resposta
solução!

Oi Gabriel,

o código está correto. Me parece que seu projeto não está compilando e vc está executando uma versão antiga. Possível?

abs

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software