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

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…

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…

FileUpload con Primefaces

FileUpload con Primefaces

Si queremos subir imagenes a nuestra aplicación usaremos el componente FileUpload Debemos realizar los siguientes pasos:
Agregar al archivo web.xml

   <filter>        <filter-name>PrimeFaces FileUpload Filter</filter-name>        <filter-class>            org.primefaces.webapp.filter.FileUploadFilter        </filter-class>    </filter>    <filter-mapping>        <filter-name>PrimeFaces FileUpload Filter</filter-name>        <servlet-name>Faces Servlet</servlet-name>    </filter-mapping>



Crear dentro de resources el directorio donde deseamos almacenar las imagenes En este ejemplo: resources/fotos/clinicas y agregue una imagen llamada fotos.png que se usará como imagen inicial.



En JSFUtil u otro @Named Beans que usemos agregamos tres métodos uno para obtener el path de la aplicación web , otro para obtener el path relativo a /fotos/clinicas y el otro para copiar los archivos. /*