Dashboard con link <p:knob

pagina .xhtml

usar un commandLink que se renderiza si tiene permisos e invoca a un metodo que devuelve el url de la pagina hacia donde ir

  <b:row>
                <!-- Row 1 -->
                <b:column span="4">


                    <h3><p:outputLabel value="#{msg['label.totalarticulo']}" rendered="#{!applicationMenu.articulo.menu}"/>
                        <b:commandLink value="#{msg['label.totalarticulo']}" outcome="/pages/articulo/list" rendered="#{applicationMenu.articulo.menu}"/></h3>
                    <div class="knob-container  ui-corner-all">
                        <p:knob value="#{dashboardIndexController.totalarticulos}" max="#{dashboardIndexController.totalarticulos}"
                                disabled="true"
                                foregroundColor="red" backgroundColor="#00000"
                                />
                    </div>


                </b:column>
                <b:column span="4"> 

                    <h3><p:outputLabel value="#{msg['label.totalclientes']}"  rendered="#{!applicationMenu.cliente.menu}"/>
                        <b:commandLink value="#{msg['label.totalclientes']}" outcome="/pages/cliente/list" rendered="#{applicationMenu.cliente.menu}"/>

                    </h3>
                    <div class="knob-container  ui-corner-all">
                        <p:knob value="#{dashboardIndexController.totalclientes}" max="#{dashboardIndexController.totalclientes}"
                                foregroundColor="blue" backgroundColor="#00000"
                                disabled="true"

                                />
                    </div>

                </b:column>

                <b:column span="4"> 

                    <h3><p:outputLabel value="#{msg['label.totalordenes']}" rendered="#{!applicationMenu.orden.menu}"/>
                        <b:commandLink value="#{msg['label.totalordenes']}" outcome="/pages/orden/list" rendered="#{applicationMenu.orden.menu}"/>
                    </h3>
                    <div class="knob-container  ui-corner-all">
                        <p:knob value="#{dashboardIndexController.totalordenes}" max="#{dashboardIndexController.totalordenes}"
                                disabled="true"
                                foregroundColor="green" backgroundColor="#00000"
                                />
                    </div>

                </b:column>

controller

/*
 * 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.Almacen;
import com.avbravo.storeejb.repository.AlmacenRepository;
import com.avbravo.storeejb.repository.ArticuloRepository;
import com.avbravo.storeejb.repository.ClienteRepository;
import com.avbravo.storeejb.repository.OrdenRepository;

import java.io.Serializable;
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 DashboardIndexController implements Serializable {

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



    @Inject
    ClienteRepository clienteRepository;
    @Inject
    AlmacenRepository almacenRepository;

    @Inject
    ArticuloRepository articuloRepository;
    @Inject
    OrdenRepository ordenRepository;

    @Inject
    ResourcesFiles rf;

    Integer totalarticulos;
    Integer totalclientes;
    Integer totalordenes;
    // </editor-fold>

    /**
     * Creates a new instance of DashboardController
     */
    public DashboardIndexController() {
    }

    // <editor-fold defaultstate="collapsed" desc="init">
    @PostConstruct
    public void init() {

calcularTotales();
    } // </editor-fold>

    public Integer getTotalordenes() {
        return totalordenes;
    }

    public void setTotalordenes(Integer totalordenes) {
        this.totalordenes = totalordenes;
    }





    public Integer getTotalclientes() {
        return totalclientes;
    }

    public void setTotalclientes(Integer totalclientes) {
        this.totalclientes = totalclientes;
    }




    public Integer getTotalarticulos() {
        return totalarticulos;
    }

    public void setTotalarticulos(Integer totalarticulos) {
        this.totalarticulos = totalarticulos;
    }

    // <editor-fold defaultstate="collapsed" desc="calcularTotales()">
    public void calcularTotales(){
        try {
            totalarticulos = articuloRepository.count(new Document("activo","si"));
            totalclientes = clienteRepository.count(new Document("activo","si"));
            totalordenes =ordenRepository.count(new Document("activo","si"));
        } catch (Exception e) {
            JsfUtil.errorMessage("calcularTotales() "+e.getLocalizedMessage());
        }
    }
    // </editor-fold>
    // <editor-fold defaultstate="collapsed" desc="goArticulos()">
    public String goArticulos(){
       return "/pages/articulo/view.xhtml";
    }
    // </editor-fold>

}

Last updated