jmoordbtaller
  • Introducción
  • Requisitos
  • Dependencias
  • Repositorios de proyectos
  • Arquitectura
  • Taller 0. Instalar Java
    • Configurar maven
  • Taller 1 MongoDB
  • Taller 2 CRUD MongoDB
    • Insertar documentos
    • Consulta de documentos
    • Documento embebido
    • Eliminar Documentos
    • Actualizar documentos
    • Agregaciones
    • Crear un indice
  • Taller 3 EJB
    • Crear el proyecto ejb
    • Dependencias
    • Entity
    • Repository
  • Taller 4 Java EE 8
    • dependencias
    • Controller
    • new.xhtml
    • index.hxmtl
    • Ampliar el método save()
    • ejecutar proyecto
    • datatable
    • CommandLink
  • Taller 5- Verificar si existe al guardar
  • Taller 6-Bases datos en tiempo de ejecución e Historial de revisión
  • Taller 7. Aplicar temas
  • Taller 8. Eliminar
  • Taller 9- Editar
  • Taller 10. Historial de revisiones
  • Taller 11.Conocer la llave primaria y el valor en tiempo de ejecucion
  • Taller 12. UserInfo
    • Controller
  • Taller 13. Converter/DataModel/Services
    • Services
    • Converter
    • DataModel
  • Taller 14.Autocomplete
    • Componente autocompletepersona
    • Agregar el componente al list.xhtml
  • Taller 15. Paginacion
    • Pais en Proyecto ejb
    • Pais en Proyecto Web
      • Formularios list.xhmtl, new.xhtml, view.xhtml
      • <e:autocompletepais/>
      • <e:paginator>
    • PaisController.java
      • Metodos
        • init()
        • save()
        • delete()
        • edit()
        • handleAutocompleteOfListXhtml()
        • showAll()
        • move(Integer page)
        • searchBy()
        • prepare
        • desplazarse en las paginas
          • printAll()
          • clear()
        • Codigo Completo
        • index.xhtml
  • Parte II- Avanzado
    • Taller 16. crudejb
      • Agregar dependencias
      • Entity
        • Rol.java
        • Usuario.java
      • Repository
      • Services
      • Datamodel
      • Converter
    • Mongodb
      • Insertar documentos en la colección MongoDB
    • Capitulo 17. Arquetipos
      • Crear el proyecto en base al arquetipo
    • Taller 18. Crear proyecto Web
      • Dependencias
      • web.xml
      • Java EE 8 Security
        • ApplicationConfig.java
        • CustomInMemoryIdentityStore.java
      • properties
      • template
        • footer.xhtml
        • template.xhtml
        • top.xhtml
      • resources
      • index.xhtml
      • login
        • login.xhtml
        • LoginController.java
        • Codigo completo
      • Controller
        • Validar duplicados en un autocomplete multiple
        • RolController.java
        • UsuarioController.java
      • <jmoordbjsf:autocomplete>
      • <jmoordbjsf:search>
      • <jmoordbjsf:paginator>
      • <jmoordbjsf:yesno>
      • <jmoordbjsf:toolbarsave>
      • <jmoordbjsf:toolbarview>
      • pages
        • Rol
          • new.xhtml
          • view.xhtml
        • Usuario
          • new.xhtml
          • view.xhtml
    • Ejecutar el proyecto
  • Parte III-Crear una aplicacion web en base al arquetipo
    • Crear el proyecto
    • Editar el proyecto
    • Editar LoginController
    • Editar los paquetes y clases
    • Indicar la conexion a base de datos
    • Ejecutar el proyecto
  • Parte IV. Reportes con jmoordbreport
    • SubReporte Referenciado de Usuario
  • Parte V. Backup/Restore con jmoordbbackup
  • Parte VII Email
Powered by GitBook
On this page

Was this helpful?

Taller 14.Autocomplete

PreviousDataModelNextComponente autocompletepersona

Last updated 5 years ago

Was this helpful?

Definiremos autocomplete para usarlo como filtros para el datatable

Cuando seleccionamos uno

se muestra solo la persona que se selecciono en el autocomplete

Si deseamos ver todos los documentos dar clic en el botón Todos

En el controller

  • Inyectar PersonaServices y generar los métodos set/get

  • Crear un entity selected y los métodos set/get

  • Crear el método para validar al seleccionar un elemento del autocomplete, en el ejemplo lo filtramos en base al seleccionado.

PersonaController.java

   @Inject
    PersonaServices personaServices;
      Persona personaSelected = new Persona();
    
    
    public Persona getPersonaSelected() {
        return personaSelected;
    }

    public void setPersonaSelected(Persona personaSelected) {
        this.personaSelected = personaSelected;
    }
      public PersonaServices getPersonaServices() {
        return personaServices;
    }

    public void setPersonaServices(PersonaServices personaServices) {
        this.personaServices = personaServices;
    }
    
    
    
     public void handleAutocompleteOfListXhtml(SelectEvent event) {
        try {
            personaList.removeAll(personaList);
            personaList.add(personaSelected);
                     
            
        } catch (Exception e) {
           JsfUtil.errorDialog("handleAutocompleteOfListXhtml()", e.getLocalizedMessage());
        }
    }

Cambiamos el método getPersonaList()


    public List<Persona> getPersonaList() {
//        return personaList;
        return personaRepository.findAll();
    }

por

  public List<Persona> getPersonaList() {
       return personaList;
    }

En el init agregamos e

  
        personaList  personaRepository.findAll();
 

Agregamos un método para llamar a todos los registros

 public String showAll(){
           personaList = personaRepository.findAll();
           return "";
    }

PersonaController.java

/*
 * 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.practica.controller;

import com.avbravo.jmoordb.configuration.JmoordbContext;
import com.avbravo.jmoordb.mongodb.history.repository.RevisionHistoryRepository;
import com.avbravo.jmoordb.services.RevisionHistoryServices;
import com.avbravo.jmoordbutils.JsfUtil;
import com.avbravo.practicaejb.entity.Persona;
import com.avbravo.practicaejb.repository.PersonaRepository;
import com.avbravo.practicaejb.services.PersonaServices;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import javax.annotation.PostConstruct;
import javax.faces.view.ViewScoped;
import javax.inject.Inject;
import javax.inject.Named;
import org.primefaces.event.SelectEvent;

/**
 *
 * @author avbravo
 */
@Named
@ViewScoped
public class PersonaController implements Serializable {

    private static final long serialVersionUID = 1L;
    Persona persona = new Persona();

    Persona personaSelected = new Persona();

    @Inject
    PersonaRepository personaRepository;
    @Inject
    RevisionHistoryRepository repositoryRevisionHistory;
    @Inject
    RevisionHistoryServices revisionHistoryServices;
    @Inject
    PersonaServices personaServices;

    List<Persona> personaList = new ArrayList<>();

    public Persona getPersonaSelected() {
        return personaSelected;
    }

    public void setPersonaSelected(Persona personaSelected) {
        this.personaSelected = personaSelected;
    }

    public PersonaServices getPersonaServices() {
        return personaServices;
    }

    public void setPersonaServices(PersonaServices personaServices) {
        this.personaServices = personaServices;
    }

    public List<Persona> getPersonaList() {
        return personaList;

    }

    public void setPersonaList(List<Persona> personaList) {
        this.personaList = personaList;
    }

    public Persona getPersona() {
        return persona;
    }

    public void setPersona(Persona persona) {
        this.persona = persona;
    }

    @PostConstruct
    public void init() {
        repositoryRevisionHistory.setDatabase("practica_history");
        if (JmoordbContext.get("action") != null) {
            String action = (String) JmoordbContext.get("action");
            if (action.equals("view")) {
                persona = (Persona) JmoordbContext.get("persona");
            }

         
        }
        //Usuario jmoordb_user = (Usuario) JmoordbContext.get("jmoordb_user");
//       
//              JmoordbConnection  jmc = new JmoordbConnection.Builder()
//                    .withSecurity(false)                  
//                    .withDatabase("practica")
//                    .withHost("")
//                    .withPort(0)
//                    .withUsername("")
//                    .withPassword("")
//                    .build();

   personaList = personaRepository.findAll();
    }

    public String save() {
        try {
            persona.setCedula(persona.getCedula().toLowerCase());
            Optional<Persona> optional = personaRepository.findById(persona);

            if (optional.isPresent()) {
                JsfUtil.warningMessage("Existe una persona con esa cedula");
                return null;
            }
            persona = personaRepository.addUserInfoForSaveMethod(persona, "myusername", "create");
            //  persona.setUserInfo(personaRepository.generateListUserinfo("myusername", "create"));
            if (personaRepository.save(persona, false)) {
                JsfUtil.successMessage("Guardado");
                repositoryRevisionHistory.save(revisionHistoryServices.getRevisionHistory(persona.getCedula(),
                        "myusername",
                        "create", "persona", personaRepository.toDocument(persona).toString()));
                persona = new Persona();

            } else {
                JsfUtil.errorDialog("no se guardo()", personaRepository.getException().toString());
            }
        } catch (Exception e) {
            JsfUtil.errorDialog("save()", e.getLocalizedMessage());
        }

        return "";
    }

    public String delete(Object item, Boolean deleteonviewpage) {
        String path = "";
        try {
            persona = (Persona) item;

            if (personaRepository.delete("cedula", persona.getCedula())) {

                repositoryRevisionHistory.save(revisionHistoryServices.getRevisionHistory(persona.getCedula(),
                        "myusername",
                        "delete", "persona", personaRepository.toDocument(persona).toString()));
                JsfUtil.successMessage("Se elimino la persona");

                if (!deleteonviewpage) {
                    personaList.remove(persona);

                } else {
                    persona = new Persona();

                }

            }

        } catch (Exception e) {
            JsfUtil.errorDialog("delete()", e.getLocalizedMessage());
        }

        return "";
    }// </editor-fold>

    public String edit() {
        try {

            repositoryRevisionHistory.save(revisionHistoryServices.getRevisionHistory(persona.getCedula(),
                    "myusername",
                    "update", "persona", personaRepository.toDocument(persona).toString()));

            persona = personaRepository.addUserInfoForEditMethod(persona, "myusarname", "update");
            personaRepository.update(persona);
            JsfUtil.successMessage("Se actualizo el documento");
        } catch (Exception e) {
            JsfUtil.errorDialog("edit()", e.getLocalizedMessage());
        }
        return "";
    }// </editor-fold>

    public String prepare(Persona persona) {
        try {
            JmoordbContext.put("persona", persona);
            JmoordbContext.put("action", "view");

        } catch (Exception e) {
            JsfUtil.errorDialog("edit()", e.getLocalizedMessage());
        }
        return "view";

    }

    public void handleAutocompleteOfListXhtml(SelectEvent event) {
        try {
            personaList.removeAll(personaList);
            personaList.add(personaSelected);

        } catch (Exception e) {
            JsfUtil.errorDialog("handleAutocompleteOfListXhtml()", e.getLocalizedMessage());
        }
    }
    
    public String showAll(){
           personaList = personaRepository.findAll();
           return "";
    }
}