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

Tutorial básico de aplicaciones Web con NetBeans parte 1

NetBeans ofrece un excelente soporte para el desarrollo de aplicaciones Web, en esta ocasión lo haremos utilizando el Framework Java Server Faces 2.0. En el Menu Seleccionamos Nuevo->Proyecto y luego en Categorias Java Web y en tipo de Proyectos Web  Application indicamos el nombre del proyecto Seleccinamos el servidor Web, usamos GlassFish ya que este soporta EJB3.0 y JSF 2.0 Framework Java Server Faces El IDE genera el esquelto del proyecto Web Pages   almacenamos las paginas .html, xhtml, jsf, los archivos de recursos, los scripts .js, imagenes Source Packages    Son las clases Java  Test Packages    Son las clases que usamos para los Test Libraries     Tenemos las bibliotecas de Java y GlassFish necesarias para ejecutar la aplicación Web. Test Libraries     Están las bibliotecas usadas para los test  Configuration Files    Archivos de configuración de la aplicación. Ejecutamos la...

Incrementar Memoria NetBeans

Algunas veces necesitamos incrementar la memoria para un mejor rendimiento. http://www.netbeans.org/community/releases/55/uml-download.html Este es un ejemplo para UML. Descripción en ingles. Increasing Memory Settings (applicable to all builds) The default memory settings for NetBeans should be increased for UML projects. If you have the available memory, Locate your NetBeans installation directory ($install_dir). This can be found by starting up NetBeans and selecting Help -> About then select the Detail tab. Edit the $install_dir/etc/netbeans.conf file. Find the line defining netbeans_default_options . Increase the maximum memory attribute to -J-Xmx512m. If you experience heap overflows while working with larger files, you should increase this value further.

Test con JUnit

El viernes dicte un taller en el que conversábamos sobre Tecnologías Java y luego desarrollamos una aplicación muy básica para demostrar como utilizar JUnit con NetBeans. Pasos: 1. Crear un proyecto Desktop con NetBeans 2. Crear una clase llamada Operaciones 3. Diseñados un formulario y agregramos componentes de manera que quede similar a la figura Código de los botones try { double a = Double.parseDouble(jTextField1.getText()); double b = Double.parseDouble(jTextField2.getText()); Operaciones operaciones = new Operaciones(); double r = operaciones.Sumar(a, b); jTextField3.setText(String.valueOf(r)); } catch (Exception ex) { JOptionPane.showMessageDialog(this, ex.getMessage().toString()); } 4. Creamos los test Seleccionamos las clases En el menu Herramientas,seleccionamos Crear pruebas JUnit Seleccionamos la versión de JUnit En la ventana siguiente seleccionamos los parámetros para nuestras pruebas . Le quitamos la selección a Probar Inicializador y Probar Finalizador NetBeans crea las...