<p:repeat> en un componente

Genera un componente con botones en base a la primera letra de una lista de objeto

<b:dataTableColumn label="">
     <e:columncategoriacliente  rendered="#{applicationMenu.cliente.edit}"
      />
</b:dataTableColumn>

Componente

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:p="http://primefaces.org/ui"
      xmlns:composite="http://java.sun.com/jsf/composite"
      xmlns:b="http://bootsfaces.net/ui"
      xmlns:e="http://xmlns.jcp.org/jsf/composite/extensions">
     <composite:interface >

     <composite:attribute name="rendered" />

    </composite:interface>
    <composite:implementation>
    <p:panelGrid columns="2" styleClass="form-group ui-panelgrid-blank" layout="grid"
                     rendered="#{cc.attrs.rendered}">


       <p:row>
          <p:column>
           <b:dropMenu styleClass="danger"  value="" tooltip="#{msg['button.clasificacion']}" iconAwesome="fa-hospital-o">
           <!--<b:panel  >-->
           <p:panelGrid columns="2" styleClass="form-group ui-panelgrid-blank" layout="grid">

              <p:repeat value="#{clienteController.clasificacionclienteServices.clasificacionclienteList}" var="itemclasificacion">
                    <b:commandButton value="#{clienteController.primerCaracter(itemclasificacion.descripcion)}"
                                look="#{clienteController.look(itemclasificacion.descripcion)}"
                                title="#{itemclasificacion.descripcion}" 
                                process=":form:dataTable" 
                                action="#{clienteController.updateClasificacion(item,itemclasificacion)}"
                                oncomplete="remoteshowall();"
                      />
              </p:repeat>   
           </p:panelGrid>                      


         <!--</b:panel>-->
       </b:dropMenu>
      </p:column>
  </p:row>
</p:panelGrid>
</composite:implementation>
</html>

Controller

/ <editor-fold defaultstate="collapsed" desc="primercaracter()">
    public String primerCaracter(String texto) {
        try {
            if (texto.length() > 0) {
                return texto.trim().substring(0, 1).toUpperCase();
            }

        } catch (Exception e) {
            JsfUtil.errorMessage("primerCaracter() " + e.getLocalizedMessage());
        }
        return texto;
    }

    // </editor-fold>
// <editor-fold defaultstate="collapsed" desc="look()">
    public String look(String texto) {
        try {
            if (primerCaracter(texto).equals("M")) {
                return "danger";
            }

        } catch (Exception e) {
            JsfUtil.errorMessage("primerCaracter() " + e.getLocalizedMessage());
        }
        return "success";
    }

    // </editor-fold>
// <editor-fold defaultstate="collapsed" desc="updateClasificacion(Cliente cliente,Clasificacioncliente clasificacioncliente)">
    public String updateClasificacion(Cliente cliente, Clasificacioncliente clasificacioncliente) {
        try {
            this.cliente=cliente;
            this.cliente.getUserInfo().add(userInfoServices.generateUserinfo(loginController.getUsername(), "update"));
            this.cliente.setClasificacioncliente(clasificacioncliente);
            fiador = cliente.getFiador();
            if (!validate()) {
                return "";
            }

            //guarda el contenido anterior
            //guarda el contenido actualizado
            revisionHistoryStoreejbRepository.save(revisionHistoryServices.getRevisionHistory(cliente.getIdcliente().toString(), loginController.getUsername(),
                    "update", "cliente", clienteRepository.toDocument(cliente).toString()));

            clienteRepository.update(cliente);
            JsfUtil.successMessage(rf.getAppMessage("info.update"));

        } catch (Exception e) {
            JsfUtil.errorMessage("primerCaracter() " + e.getLocalizedMessage());
        }
        return "";
    }
    // </editor-fold>

Last updated