autocomplete

Genera autocomplete basados en <p:autocomplete> optimizados para jmoordb

  • Permite dropdown

  • Multiples

  • Simples

  • Indicar desde que caracter iniciar la busqueda

  • Mostrar todos

  • field: indicamos el campo que deseamos que se realice la busqueda

  • Se muestran las etiquetas a desplegar

  • Cuando lo usas desde un list.xhtml el listener(Generalmente queremos pasarlo a un datatable)

listener="#{rolController.handleAutocompleteOfListXhtml}"
  • Cuando lo usas desde un new.xthml o view.xhtml (seria el entity seleccionado)

listener="#{rolController.handleSelect}"

Atributos

Atributo

Descripción

value

disabled default= false

multiple default= false

dropdown default= false

minQueryLength default= 1

itemLabel

update

rendered

field

converter

columnpaneltip default= 1

labeltip1

labeltip2

labeltip3

labeltip4

labeltip5

labeltip6

fromstart default= true

required default= false

size default= 25

listener method-signature= void handleSelect(org.primefaces.event.SelectEvent)

completeMethod method-signature= java.util.List complete(java.lang.String)

Ejemplos

  • Simple desde un list.xhtml

  <p:outputLabel value="#{msg['field.idrol']}"/>
  <jmoordbjsf:autocomplete converter="#{rolConverter}"
                           completeMethod="#{rolController.rolServices.complete}"
                           labeltip1="#{msg['field.idrol']} #{p.idrol}"
                           labeltip2="#{msg['field.rol']} #{p.rol}" 
                           listener="#{rolController.handleAutocompleteOfListXhtml}"
                           value="#{rolController.rolSelected}"
                           itemLabel="#{p.idrol}"
                           field="idrol"
                           update=":form:dataTable"/>

RolController.java

 public void handleAutocompleteOfListXhtml(SelectEvent event) {
        try {
           rolList.removeAll(rolList);
            rolList.add(rolSelected);
            rolFiltered = rolList;
           rolDataModel = new RolDataModel(rolList);

            loginController.put("searchrol", "idrol");
            lookupServices.setIdrol(rolSelected.getIdrol());
        } catch (Exception e) {
            errorServices.errorMessage(nameOfClass(),nameOfMethod(), e.getLocalizedMessage());
        }
    }

RolServices.java

        List<Rol> suggestions = new ArrayList<>();
             try {
          suggestions=repository.complete(query);
        } catch (Exception e) {
            JsfUtil.errorMessage("complete() " + e.getLocalizedMessage());
        }

           return suggestions;
    }

Ejemplo 2:

  • Usaremos para generar múltiples roles para el usuario

  • Multiple

  • Dropdwon

<p:outputLabel  value="#{msg['field.rol']}" />
<jmoordbjsf:autocomplete converter="#{rolConverter}"
                       completeMethod="#{rolController.rolServices.complete}"
                       labeltip1="#{msg['field.idrol']} #{p.idrol}"
                       labeltip2="#{msg['field.rol']} #{p.rol}"   
                       listener="#{usuarioController.handleSelect}"
                       value="#{usuarioController.rolList}"
                       itemLabel="#{p.idrol}"
                       dropdown="true"
                       multiple="true"
                       required="true"
                       minQueryLength="0"
                       field="idrol"
                       />

UsuarioController.java

 public void handleSelect(SelectEvent event) {
        try {

        } catch (Exception e) {
            errorServices.errorMessage(nameOfClass(),nameOfMethod(), e.getLocalizedMessage());
        }
    }

Last updated

Was this helpful?