Skip to main content

Aplicar filtros a registros usando DataClassG y JSFGenerator

Aplicar Filtros a Registros usando DataClassG y JSFGenerator
Filtrar los registros de departamentos en base a la organización del usuario que se logueo en el sistema.




Tablas

Crear un ManagedBean llamado DatosSession y colocar el atributo por el cual deseamos filtrar los registros en base al usuario que se logea en la aplicación
Clase DatosSesion.java
@Named(value = "datosSesion")
@SessionScoped
public class DatosSesion implements Serializable {
Integer idorganizacion;


   public DatosSesion() {
   }
   public Integer getIdorganizacion() {
       return idorganizacion;
   }
   public void setIdorganizacion(Integer idorganizacion) {
       this.idorganizacion = idorganizacion;
   }    
}



Clase LoginBean.java
Definimos el objeto DatosSesion y en el método verificarLogin() realizamos la asignación
DatosSesion datosSesion;
 public LoginBean() {
    ELContext elContext = FacesContext.getCurrentInstance().getELContext();
    datosSesion = (DatosSesion) FacesContext.getCurrentInstance().getApplication().getELResolver().getValue(elContext, null, "datosSesion");
   }


public String verificarLogin(){
datosSesion.setIdorganizacion(usuarios.getIdorganizacion());



En el ManagedBeans DepartamentoServices.java
Creamos un objeto de DatosSesion, colocamos el valor en la propiedad del managedbean departamento en el método insert(), en el método loadItems() comentamos el selectAll() y lo reemplazamos por un query con el filtro, y en el método  selectAll()  comentamos  if(departamentoController.selectAll()){  y lo reemplazamos por un query con el filtro.


DatosSesion datosSesion;


public DepartamentoServices(){
    ELContext elContext = FacesContext.getCurrentInstance().getELContext();
  departamentolist = new ArrayList<>();
   datosSesion = (DatosSesion) FacesContext.getCurrentInstance().getApplication().getELResolver().getValue(elContext, null, "datosSesion");
}


@Override
public Boolean insert() {
try{
 departamento.setIdorganizacion(datosSesion.getIdorganizacion());


public List<SelectItem> loadItems() {
try {
  //  selectAll();
    query("idorganizacion='"+datosSesion.getIdorganizacion()+"'");


 @Override
   public Boolean selectAll() {
 // if(departamentoController.selectAll()){
      if (departamentoController.query("idorganizacion='" + datosSesion.getIdorganizacion() + "'")) {
            departamentolist = departamentoController.getDepartamentolist();
        }



En ManagedBeans  DepartamentosData
Creamos un objeto de DatosSesion, colocamos el valor en la propiedad del managedbean departamento en el método init(), insert(), en el método loadItems() comentamos el selectAll() y lo reemplazamos por un query con el filtro, y en el método  selectAll()  comentamos  if(departamentoController.selectAll()){  y lo reemplazamos por un query con el filtro.
DatosSesion datosSesion;
public DepartamentoServices(){
    ELContext elContext = FacesContext.getCurrentInstance().getELContext();
  departamentolist = new ArrayList<>();
   datosSesion = (DatosSesion) FacesContext.getCurrentInstance().getApplication().getELResolver().getValue(elContext, null, "datosSesion");
}
   @PostConstruct
   public void init() {
//           ---udpate with your filter;
      // selectAll();
       query("idorganizacion='"+datosSesion.getIdorganizacion()+"'");
   }


@Override
public Boolean insert() {
try{
 departamento.setIdorganizacion(datosSesion.getIdorganizacion());



public List<SelectItem> loadItems() {
try {
  //  selectAll();
    query("idorganizacion='"+datosSesion.getIdorganizacion()+"'");



  @Override
   public Boolean selectAll() {
       try {
           if (departamentolist != null) {
               departamentolist.removeAll(departamentolist);
           }
         //  if (departamentoController.selectAll()) {            
           if (departamentoController.query("idorganizacion='"+datosSesion.getIdorganizacion()+"'")) {
               departamentolist = departamentoController.getDepartamentolist();
           }
Select de todos los registros



Los componentes <p:dataTable se utilizan con la clase DepartamentosData
Imagen de los departamentos pertenecientes a la Organizacion A


Imagen de los departamentos pertenecientes a la Organizacion A


Formulario de insertar registros no se muestra el atributo idorganizacion ya que este se inserta directamente en base al usuario logueado.

Comments

Popular posts from this blog

Un ejemplo sencillo de Refactorización y Genericos

Un ejemplo sencillo de Refactorización y Genericos

public class Refactorizador<K, V> {

    public V copyFromBeans(K k, V v) {
        try {
            Class claseK = k.getClass();
            Class claseV = v.getClass();

            Method[] metodosK = claseK.getMethods();

            for (Method method : metodosK) {
                if (isGetter(method)) {
                    Method metodoGetK = claseK.getDeclaredMethod(method.getName());
                    Method metodoSetV = claseV.getDeclaredMethod(changeGetBySet(method.getName()), method.getReturnType());
                    metodoSetV.invoke(v, metodoGetK.invoke(k));
                }

            }

        } catch (Exception e) {
            System.out.println("refactorizador() " + e.getLocalizedMessage());
        }
        return v;
    }

     public  boolean isGetter(Method method) {

        if (!method.getName().startsWith("get")) {
            return false;
        }
        if (method.getName().startsWith("getCla…

Apache NetBeans

Apache NetBeans
https://wiki.apache.org/incubator/NetBeansProposal

Si, algo que se esperaba desde hace muchos años, una liberación de NetBeans, para convertirlo en un IDE más abierto, y que permita mayor contribución de la comunidad y de otras empresas, ya inicio su primera etapa en la incubadora de la Fundación Apache.
Las implicaciones que esto conlleva son múltiples por una parte esta la evolución de NetBeans, al permitir que más contribuyentes puedan aportar a sus mejoras, también garantiza que aquellas instituciones no sientan que es una sola organización la que controla la evolución. A las comunidades les permite sentirse que participan de un proyecto con todas las garantías que ofrece la Fundación Apache.

Muchos pensaran que Oracle esta dejando morir el proyecto, la realidad es diferente, hay muchos ingenieros que están participando del proyecto en la fundación Apache.
Es una noticia excelente para los desarrolladores, instituciones, empresas que utilizan NetBeans , se estima qu…

JGMongo con JEE7 +(Primefaces+MongoDB+GlassFish)

Mostrare un ejemplo básico del uso de JGMongo, (Java Mapper Object para MongoDB), en un entorno JavaEE 7.

Desarrollaremos una simple aplicación maven Java Enterprise Edition, que utiliza la base de datos NoSQL MongoDB, NetBeans como IDE de Desarrollo, Java Server Faces como Framework en conjunto con PrimeFaces. Es un ejemplo muy básico donde se almacena los datos de los países en una colección llama paises La vista final sera la siguiente un formulario para captar los datos

Y una pagina donde se muestran los países almacenados en la base de datos.
Pasos previos: 1. Instalar MongoDB 2. Crear el proyecto Maven 3. Agregar la dependencia al archivo pom.xml   <repositories> <repository>    <id>jitpack.io</id>    <url>https://jitpack.io</url> </repository> </repositories>
    <dependency>    <groupId>com.github.avbravo</groupId>    <artifactId>jgmongo</artifactId>    <version>0.1</version> </dependency&…