package com.algaworks.pedidovenda.controller; import java.math.BigDecimal; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Map; import javax.enterprise.context.RequestScoped; import javax.inject.Inject; import javax.inject.Named; import org.primefaces.model.chart.AxisType; import org.primefaces.model.chart.CategoryAxis; import org.primefaces.model.chart.ChartSeries; import org.primefaces.model.chart.LineChartModel; import com.algaworks.pedidovenda.model.Usuario; import com.algaworks.pedidovenda.repository.Pedidos; import com.algaworks.pedidovenda.security.UsuarioLogado; import com.algaworks.pedidovenda.security.UsuarioSistema; @Named @RequestScoped public class GraficoPedidosCriadosBean { private static DateFormat DATE_FORMAT = new SimpleDateFormat("dd/MM"); @Inject private Pedidos pedidos; @Inject @UsuarioLogado private UsuarioSistema usuarioLogado; private LineChartModel model; public void preRender() { this.model = new LineChartModel(); this.model.setTitle("Pedidos criados"); this.model.setLegendPosition("e"); this.model.setAnimate(true); this.model.getAxes().put(AxisType.X, new CategoryAxis()); adicionarSerie("Todos os pedidos", null); adicionarSerie("Meus pedidos", usuarioLogado.getUsuario()); } private void adicionarSerie(String rotulo, Usuario criadoPor) { Map<Date, BigDecimal> valoresPorData = this.pedidos.valoresTotaisPorData(15, criadoPor); ChartSeries series = new ChartSeries(rotulo); for (Date data : valoresPorData.keySet()) { series.set(DATE_FORMAT.format(data), valoresPorData.get(data)); } this.model.addSeries(series); } public LineChartModel getModel() { return model; } }