Filtrar desde el list.xhtml
Cuando deseamos hacer filtros para el list.xhml
Para filtrar por entity referenciado que es integer, el el move tenemos que invocar el método findPagination.
<b:panel title="#{app['label.search']}" id="content">
<!--<b:panelGrid colSpans="2,10" size="xs">-->
<b:panelGrid colSpans="1,4,1,6" columns="4" size="xs">
<p:outputLabel value="#{msg['field.cedula']}"/>
<e:autocompletecliente listener="#{clienteController.handleSelect}"
value="#{clienteController.clienteSelected}"
itemLabel=" #{p.cedula}"
field="cedula"
update=" :form:dataTable"/>
<p:outputLabel value="#{msg['field.nombre']}"/>
<e:autocompletecliente listener="#{clienteController.handleSelect}"
value="#{clienteController.clienteSelected}"
itemLabel=" #{p.nombre}"
field="nombre"
size="40"
update=" :form:dataTable"/>
</b:panelGrid>
<b:row>
<b:column medium-screen="4">
<a:search label="#{msg['field.idcliente']}"
value="#{clienteController.lookupStoreejbServices.idcliente}"
renderedList="#{applicationMenu.articulo.list}"
search="#{clienteController.searchBy('idcliente')}"
/>
</b:column>
<b:column medium-screen="8">
<a:search label="#{msg['field.nombre']}"
value="#{marcaController.lookupStoreejbServices.nombre}"
renderedList="#{applicationMenu.articulo.list}"
search="#{clienteController.searchBy('nombre')}"
/>
</b:column>
<b:column medium-screen="8">
<p:outputLabel value="#{msg['field.clasificacioncliente']}"/>
<e:autocompleteclasificacioncliente listener="#{clienteController.searchBy('clasificacioncliente')}"
value="#{clienteController.lookupStoreejbServices.clasificacioncliente}"
itemLabel="#{p.descripcion}"
dropdown="true"
required="true"
minQueryLength="0"
field="descripcion"
update=" :form:dataTable" />
</b:column>
</b:row>
</b:panel>
EntityController.java
searchBy()
// <editor-fold defaultstate="collapsed" desc="searchBy(String string)">
@Override
public String searchBy(String string) {
try {
loginController.put("searchcliente", string);
writable = true;
move();
} catch (Exception e) {
JsfUtil.errorMessage("searchBy()" + e.getLocalizedMessage());
}
return "";
}// </editor-fold>
move()
@Override
public void move() {
try {
Document doc;
switch (loginController.get("searchcliente")) {
case "_init":
clienteList = clienteRepository.findPagination(page, rowPage);
break;
case "_autocomplete":
//no se realiza ninguna accion
break;
case "idcliente":
doc = new Document("idcliente", lookupStoreejbServices.getIdcliente());
clienteList = clienteRepository.findBy(doc);
break;
case "nombre":
clienteList = clienteRepository.findRegexInTextPagination("nombre", lookupStoreejbServices.getNombre(), true, page, rowPage, new Document("nombre", -1));
break;
case "clasificacioncliente":
doc = new Document("clasificiacioncliente.idclasificacioncliente",lookupStoreejbServices.getClasificacioncliente().getIdclasificacioncliente());
clienteList = clienteRepository.findPagination( page, rowPage, doc,new Document("nombre", -1));
break;
default:
clienteList = clienteRepository.findPagination(page, rowPage);
break;
}
clienteFiltered = clienteList;
clienteDataModel = new ClienteDataModel(clienteList);
} catch (Exception e) {
JsfUtil.errorMessage("move() " + e.getLocalizedMessage());
}
}// </editor-fold>
Last updated