pe.gob.mef.gescon.web.ui.PerfilMB.java Source code

Java tutorial

Introduction

Here is the source code for pe.gob.mef.gescon.web.ui.PerfilMB.java

Source

/*
 * 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 pe.gob.mef.gescon.web.ui;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.primefaces.context.RequestContext;
import org.primefaces.model.DualListModel;
import org.springframework.util.CollectionUtils;
import pe.gob.mef.gescon.common.Constante;
import pe.gob.mef.gescon.common.Items;
import pe.gob.mef.gescon.hibernate.domain.TpoliticaPerfilId;
import pe.gob.mef.gescon.service.PerfilService;
import pe.gob.mef.gescon.service.PoliticaPerfilService;
import pe.gob.mef.gescon.service.PoliticaService;
import pe.gob.mef.gescon.util.JSFUtils;
import pe.gob.mef.gescon.util.ServiceFinder;
import pe.gob.mef.gescon.web.bean.Perfil;
import pe.gob.mef.gescon.web.bean.PoliticaPerfil;
import pe.gob.mef.gescon.web.bean.User;

/**
 *
 * @author JJacobo
 */
@ManagedBean
@ViewScoped
public class PerfilMB implements Serializable {

    private static final long serialVersionUID = 1L;
    private static final Log log = LogFactory.getLog(PerfilMB.class);
    private BigDecimal id;
    private String nombre;
    private String descripcion;
    private BigDecimal activo;
    private List<Perfil> listaPerfils;
    private List<Perfil> filteredListaPerfils;
    private Perfil selectedPerfil;
    private DualListModel<String> listaPoliticas;

    /**
     * Creates a new instance of MaestroMB
     */
    public PerfilMB() {
    }

    /**
     * @return the id
     */
    public BigDecimal getId() {
        return id;
    }

    /**
     * @param id the id to set
     */
    public void setId(BigDecimal id) {
        this.id = id;
    }

    /**
     * @return the nombre
     */
    public String getNombre() {
        return nombre;
    }

    /**
     * @param nombre the nombre to set
     */
    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    /**
     * @return the descripcion
     */
    public String getDescripcion() {
        return descripcion;
    }

    /**
     * @param descripcion the descripcion to set
     */
    public void setDescripcion(String descripcion) {
        this.descripcion = descripcion;
    }

    /**
     * @return the activo
     */
    public BigDecimal getActivo() {
        return activo;
    }

    /**
     * @param activo the activo to set
     */
    public void setActivo(BigDecimal activo) {
        this.activo = activo;
    }

    /**
     * @return the listaMaestro
     */
    public List<Perfil> getListaPerfils() {
        return listaPerfils;
    }

    /**
     * @param listaPerfils the listaMaestro to set
     */
    public void setListaPerfils(List<Perfil> listaPerfils) {
        this.listaPerfils = listaPerfils;
    }

    public List<Perfil> getFilteredListaPerfils() {
        return filteredListaPerfils;
    }

    public void setFilteredListaPerfils(List<Perfil> filteredListaPerfils) {
        this.filteredListaPerfils = filteredListaPerfils;
    }

    /**
     * @return the listaPoliticas
     * @throws java.lang.Exception
     */
    public DualListModel<String> getListaPoliticas() throws Exception {
        return listaPoliticas;
    }

    /**
     * @param listaPoliticas the listaPoliticas to set
     */
    public void setListaPoliticas(DualListModel<String> listaPoliticas) {
        this.listaPoliticas = listaPoliticas;
    }

    /**
     * @return the selectedMaestro
     */
    public Perfil getSelectedPerfil() {
        return selectedPerfil;
    }

    /**
     * @param selectedPerfil the selectedMaestro to set
     */
    public void setSelectedPerfil(Perfil selectedPerfil) {
        this.selectedPerfil = selectedPerfil;
    }

    @PostConstruct
    public void init() {
        try {
            PerfilService service = (PerfilService) ServiceFinder.findBean("PerfilService");
            listaPerfils = service.getPerfils();

            List<String> politicasSource = new ArrayList<String>();
            List<String> politicasTarget = new ArrayList<String>();

            if (this.listaPoliticas == null) {
                PoliticaService politicaservice = (PoliticaService) ServiceFinder.findBean("PoliticaService");
                politicasSource = new Items(politicaservice.getPoliticas(), null, "npoliticaid", "vnombre")
                        .getItems();
                this.listaPoliticas = new DualListModel<String>(politicasSource, politicasTarget);
            }
        } catch (Exception e) {
            log.error(e.getMessage());
            e.printStackTrace();
        }
    }

    public void cleanAttributes() {
        this.setId(BigDecimal.ZERO);
        this.setDescripcion(StringUtils.EMPTY);
        this.setNombre(StringUtils.EMPTY);
        this.setActivo(BigDecimal.ONE);
        this.setSelectedPerfil(null);
        Iterator<FacesMessage> iter = FacesContext.getCurrentInstance().getMessages();
        if (iter.hasNext() == true) {
            iter.remove();
            FacesContext.getCurrentInstance().renderResponse();
        }
    }

    public void setSelectedRow(ActionEvent event) {
        try {
            if (event != null) {
                int index = Integer.parseInt((String) JSFUtils.getRequestParameter("index"));
                if (!CollectionUtils.isEmpty(this.getFilteredListaPerfils())) {
                    this.setSelectedPerfil(this.getFilteredListaPerfils().get(index));
                } else {
                    this.setSelectedPerfil(this.getListaPerfils().get(index));
                }
                this.setFilteredListaPerfils(new ArrayList());
            }
        } catch (Exception e) {
            log.error(e.getMessage());
            e.printStackTrace();
        }
    }

    public void toSave(ActionEvent event) {
        try {
            this.cleanAttributes();
        } catch (Exception e) {
            log.error(e.getMessage());
            e.printStackTrace();
        }
    }

    public void save(ActionEvent event) {
        try {
            if (CollectionUtils.isEmpty(this.getListaPerfils())) {
                this.setListaPerfils(Collections.EMPTY_LIST);
            }
            Perfil perfil = new Perfil();
            perfil.setVnombre(this.getNombre());
            perfil.setVdescripcion(this.getDescripcion());
            if (!errorValidation(perfil)) {
                LoginMB loginMB = (LoginMB) JSFUtils.getSessionAttribute("loginMB");
                User user = loginMB.getUser();
                PerfilService service = (PerfilService) ServiceFinder.findBean("PerfilService");
                perfil.setNperfilid(service.getNextPK());
                perfil.setVnombre(StringUtils.upperCase(this.getNombre().trim()));
                perfil.setVdescripcion(StringUtils.capitalize(this.getDescripcion().trim()));
                perfil.setNactivo(BigDecimal.ONE);
                perfil.setDfechacreacion(new Date());
                perfil.setVusuariocreacion(user.getVlogin());
                service.saveOrUpdate(perfil);
                this.setListaPerfils(service.getPerfils());
                this.cleanAttributes();
                RequestContext.getCurrentInstance().execute("PF('newDialog').hide();");
            }
        } catch (Exception e) {
            log.error(e.getMessage());
            e.printStackTrace();
        }
    }

    public void toUpdate(ActionEvent event) {
        try {
            if (event != null) {
                this.setSelectedRow(event);
            }
        } catch (Exception e) {
            log.error(e.getMessage());
            e.printStackTrace();
        }
    }

    public void toAsig(ActionEvent event) {
        try {
            if (event != null) {
                List<String> politicasSource = new ArrayList<String>();
                List<String> politicasTarget = new ArrayList<String>();
                this.setSelectedRow(event);
                PoliticaPerfilService ppservice = (PoliticaPerfilService) ServiceFinder
                        .findBean("PoliticaPerfilService");
                politicasSource = new Items(
                        ppservice.obtenerListaPoliticasDisp(this.getSelectedPerfil().getNperfilid()), null,
                        "npoliticaid", "vnombre").getItems();
                politicasTarget = new Items(
                        ppservice.obtenerListaPoliticas(this.getSelectedPerfil().getNperfilid()), null,
                        "npoliticaid", "vnombre").getItems();
                this.listaPoliticas = new DualListModel<String>(politicasSource, politicasTarget);
            }
        } catch (Exception e) {
            log.error(e.getMessage());
            e.printStackTrace();
        }
    }

    public void update(ActionEvent event) {
        try {
            if (event != null) {
                if (StringUtils.isBlank(this.getSelectedPerfil().getVnombre())) {
                    FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR, Constante.SEVERETY_ALERTA,
                            "Nombre requerido. Ingrese el nombre de perfil.");
                    FacesContext.getCurrentInstance().addMessage(null, message);
                    return;
                }
                if (StringUtils.isBlank(this.getSelectedPerfil().getVdescripcion())) {
                    FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR, Constante.SEVERETY_ALERTA,
                            "Descripcin requerida. Ingrese la descripcin de perfil.");
                    FacesContext.getCurrentInstance().addMessage(null, message);
                    return;
                }
                LoginMB loginMB = (LoginMB) JSFUtils.getSessionAttribute("loginMB");
                User user = loginMB.getUser();
                this.getSelectedPerfil()
                        .setVnombre(StringUtils.upperCase(this.getSelectedPerfil().getVnombre().trim()));
                this.getSelectedPerfil()
                        .setVdescripcion(StringUtils.capitalize(this.getSelectedPerfil().getVdescripcion().trim()));
                this.getSelectedPerfil().setVusuariomodificacion(user.getVlogin());
                this.getSelectedPerfil().setDfechamodificacion(new Date());
                PerfilService service = (PerfilService) ServiceFinder.findBean("PerfilService");
                service.saveOrUpdate(this.getSelectedPerfil());
                this.setListaPerfils(service.getPerfils());
                this.cleanAttributes();
                RequestContext.getCurrentInstance().execute("PF('editDialog').hide();");
            }
        } catch (Exception e) {
            log.error(e.getMessage());
            e.printStackTrace();
        }
    }

    public void activar(ActionEvent event) {
        try {
            if (event != null) {
                if (this.getSelectedPerfil() != null) {
                    LoginMB loginMB = (LoginMB) JSFUtils.getSessionAttribute("loginMB");
                    User user = loginMB.getUser();
                    PerfilService service = (PerfilService) ServiceFinder.findBean("PerfilService");
                    this.getSelectedPerfil().setNactivo(BigDecimal.ONE);
                    this.getSelectedPerfil().setDfechamodificacion(new Date());
                    this.getSelectedPerfil().setVusuariomodificacion(user.getVlogin());
                    service.saveOrUpdate(this.getSelectedPerfil());
                    this.setListaPerfils(service.getPerfils());
                } else {
                    FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR, Constante.SEVERETY_ALERTA,
                            "Debe seleccionar el perfil a activar.");
                    FacesContext.getCurrentInstance().addMessage(null, message);
                }
            }
        } catch (Exception e) {
            log.error(e.getMessage());
            e.printStackTrace();
        }
    }

    public void desactivar(ActionEvent event) {
        try {
            if (event != null) {
                if (this.getSelectedPerfil() != null) {
                    LoginMB loginMB = (LoginMB) JSFUtils.getSessionAttribute("loginMB");
                    User user = loginMB.getUser();
                    PerfilService service = (PerfilService) ServiceFinder.findBean("PerfilService");
                    this.getSelectedPerfil().setNactivo(BigDecimal.ZERO);
                    this.getSelectedPerfil().setDfechamodificacion(new Date());
                    this.getSelectedPerfil().setVusuariomodificacion(user.getVlogin());
                    service.saveOrUpdate(this.getSelectedPerfil());
                    this.setListaPerfils(service.getPerfils());
                } else {
                    FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR, Constante.SEVERETY_ALERTA,
                            "Debe seleccionar el perfil a desactivar.");
                    FacesContext.getCurrentInstance().addMessage(null, message);
                }
            }
        } catch (Exception e) {
            log.error(e.getMessage());
            e.printStackTrace();
        }
    }

    public boolean errorValidation(Perfil perfil) {
        FacesMessage message;
        boolean error = false;
        try {
            if (perfil.getVnombre() == null || perfil.getVnombre().isEmpty()) {
                message = new FacesMessage(FacesMessage.SEVERITY_ERROR, "ERROR.",
                        "Nombre requerido. Ingrese el nombre del perfil.");
                FacesContext.getCurrentInstance().addMessage(null, message);
                error = true;
                return error;
            } else if (perfil.getVdescripcion() == null || perfil.getVdescripcion().isEmpty()) {
                message = new FacesMessage(FacesMessage.SEVERITY_ERROR, "ERROR.",
                        "Descripcin requerida. Ingrese la descripcin del perfil.");
                FacesContext.getCurrentInstance().addMessage(null, message);
                error = true;
                return error;
            }
        } catch (Exception e) {
            log.error(e.getMessage());
        }
        return error;
    }

    public void asignar(ActionEvent event) {
        try {
            PoliticaPerfilService service = (PoliticaPerfilService) ServiceFinder.findBean("PoliticaPerfilService");
            service.delete(this.getSelectedPerfil().getNperfilid());
            LoginMB loginMB = (LoginMB) JSFUtils.getSessionAttribute("loginMB");
            User user = loginMB.getUser();
            for (int x = 0; x < this.listaPoliticas.getTarget().size(); x++) {
                TpoliticaPerfilId tpoliticaperfilid = new TpoliticaPerfilId();
                tpoliticaperfilid.setNperfilid(this.getSelectedPerfil().getNperfilid());
                tpoliticaperfilid
                        .setNpoliticaid(BigDecimal.valueOf(Long.parseLong(this.listaPoliticas.getTarget().get(x))));
                PoliticaPerfil politicaperfil = new PoliticaPerfil();
                politicaperfil.setId(tpoliticaperfilid);
                politicaperfil.setDfechacreacion(new Date());
                politicaperfil.setVusuariocreacion(user.getVlogin());
                service.saveOrUpdate(politicaperfil);
                RequestContext.getCurrentInstance().execute("PF('asigDialog').hide();");
            }
        } catch (Exception e) {
            log.error(e.getMessage());
            e.printStackTrace();
        }
    }
}