<p:chart> pie

Total de clientes por Tienda

public class Tienda{
  @Id   
  private String idtienda;
]

public class Cliente{
  @Id
  private String idcliente;
  @Rererenced()
  Tienda tienda;
  }

Componente

 <p:chart id="grafica" widgetVar="chart"
                             type="pie" model="#{dashboardController.pieModelCliente}"  />

Controller

  • Crear un atributo PieChartModel

private PieChartModel pieModelCliente;
  • Crear un mètodo para cargar el pieModelCliente

 private void createPieModelCliente()
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.avbravo.store.controller;

// <editor-fold defaultstate="collapsed" desc="imports">

import com.avbravo.avbravoutils.JsfUtil;
import com.avbravo.store.util.ResourcesFiles;
import com.avbravo.storeejb.entity.Cliente;
import com.avbravo.storeejb.entity.Tienda;
import com.avbravo.storeejb.repository.ClienteRepository;
import com.avbravo.storeejb.repository.TiendaRepository;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.view.ViewScoped;
import javax.inject.Inject;
import javax.inject.Named;
import org.bson.Document;
import org.primefaces.model.chart.PieChartModel;
// </editor-fold>

/**
 *
 * @author avbravo
 */
@Named
@ViewScoped
public class DashboardController implements Serializable{

    // <editor-fold defaultstate="collapsed" desc="fields">  
        private static final long serialVersionUID = 1L;
    private PieChartModel pieModelCliente;

    @Inject
    ClienteRepository clienteRepository;
    @Inject
    TiendaRepository tiendaRepository;
     @Inject
    ResourcesFiles rf;

      // </editor-fold>
// <editor-fold defaultstate="collapsed" desc="getter/setter">

    public PieChartModel getPieModelCliente() {
        return pieModelCliente;
    }

    public void setPieModelCliente(PieChartModel pieModelCliente) {
        this.pieModelCliente = pieModelCliente;
    }



     // </editor-fold>
    /**
     * Creates a new instance of DashboardController
     */
    public DashboardController() {
    }

    // <editor-fold defaultstate="collapsed" desc="init">

    @PostConstruct
    public void init() {
        createPieModelCliente();

    } // </editor-fold>

      // <editor-fold defaultstate="collapsed" desc="createPieModelColegio"> 
    private void createPieModelCliente() {
        try {


        pieModelCliente = new PieChartModel();
        List<Tienda> list= tiendaRepository.findAll(new Document("idtienda",1));
        for(Tienda t:list){
            Integer n = clienteRepository.count(new Document("tienda.idtienda",t.getIdtienda()));                     
                pieModelCliente.set(t.getTienda(),n);
            }



        pieModelCliente.setTitle(rf.getMessage("graph.cliente"));
        pieModelCliente.setLegendPosition(rf.getAppMessage("info.total"));
          } catch (Exception e) {
              JsfUtil.errorMessage("createPieModelCliente() "+e.getLocalizedMessage());
        }
    }// </editor-fold>
}

Last updated