Ajuda com o selectBooleanCheckbox

0 respostas
ajaxprogramaçãojsfjava
M

Olá, tenho um modal que abre assim que busco um numero de protocolo e nesse modal eu adiciono as exigência para gerar o relatório.

O problema e quando clico ele seleciona tanto na parte da descrição como na parte para selecionar checkbox e quando tem varios selecionados se eu clicar na descrição sem querer e desmarcar todos.
Eu gostaria que a selecão fosse apenas no.
buscar-exigencia2

Eu vi que o selectBooleanCheckbox da certo agora como eu chamo ele para adicionar no relatorio?
Meu xhtml

<p:dialog  header=Buscar Exigências  widgetVar=dlgExigencias id=dlgExigencias width=920 height=450 style=text-align: left>

<p:dataTable  rowKey="#{exig.id}"   selection="#{parecerProcessoMB.exigenciasParecer}" style=width: 890px; margin-left: -10px; font-size: 80%

filteredValue="#{parecerProcessoMB.exigenciasFiltro}" id=dtExigencia  widgetVar=dtExigencia emptyMessage=Nenhuma exigência encontrada

rows=30 paginator=true paginatorPosition=top paginatorTemplate="{PreviousPageLink} {NextPageLink}" value="#{parecerProcessoMB.exigencias}" var=exig>
<p:column   headerText="Id" style="width: 30px; ">
                    <h:outputText value="#{exig.id}"/>
                </p:column>

                <p:ajax event="rowUnselectCheckbox"  listener="#{parecerProcessoMB.removerExigencia}" update="dtExigencia"/>
                <p:ajax event="rowSelectCheckbox"  listener="#{parecerProcessoMB.inserirExigencia}"   />
                        
                <p:column  id="colDesc" headerText="Descrição"  filterStyleClass="glyphicon-search" style="width: 500px; text-align: left" 
                 filterBy="#{exig.descricao}"  filterMatchMode="contains"  filterStyle="width: 550px;text-align: left; margin-top: -22px;margin-left: 12%;">
                       
                    <h:outputText  value="#{exig.descricao}" />
                 
                    <p:watermark  for="@(#formCadastro\\:dtExigencia\\:colDesc\\:filter)"  value="Pesquisar"/>
             
                </p:column>
<p:column headerText="Selecionar" style=" width:7%;  text-align: center">
                     <p:selectBooleanCheckbox value="" />
                 </p:column>
                
            </p:dataTable>
            <p:separator/>
            <div class="row" style="margin-top: 5px">
                <div class="col-lg-7">
                    <p:inputTextarea value="#{parecerProcessoMB.observacao}" style="width: 100%" placeholder="Inserir Observação"/>
                </div>

                <div class="col-lg-2">
                    <p:commandButton action="#{parecerProcessoMB.adicionarParecer()}"  icon="ui-icon-circle-plus" style="width: 130px" update=":formCadastro" value="Adicionar"/>
                </div>
            </div>
        </p:dialog>

meu bean

/**
 * Método que adiciona paracer
 */
public void adicionarParecer() {

    String exigenciaSelecionadas = "";

    JasperUtil jasperUtil = new JasperUtil();
    String pathResource = FacesContext.getCurrentInstance().getExternalContext().getRealPath("/");

    try {
        int quantidade = 0;

        if (observacao == null) {
            observacao = "";
        }

        for (Exigencia ex : exigenciasParecer) {

            quantidade += 1;
            exigenciaSelecionadas += quantidade + " - " + ex.getDescricao() + "\n\n";
            
        }

        if (exigenciaSelecionadas.equals("")) {
            UtilBean.mostrarMensagemAlerta("Atenção", "Nenhuma exigência foi selecionada.");
        } else {

            File arquivoRelatorio = new File(getClass().getResource("/br/com/michel/reports/repExigencia.jasper").toURI());
            String jasperPath = arquivoRelatorio.getParent() + File.separator;

            Map<String, Object> params = new HashMap<String, Object>();

            params.put("PROTOCOLO", processo.getProtocolo());
            params.put("EXIGENCIAS", exigenciaSelecionadas);
            params.put("OBSERVACAO", observacao);
            params.put("SUBREPORT_DIR", jasperPath);

            relatorio = jasperUtil.exceuteReportMain("repExigencia", br.com.michel.dao.UtilDAO.getConnection(), params);
            visualizacao = new DefaultStreamedContent(new ByteArrayInputStream(relatorio), "application/pdf");

            String timestamp = new SimpleDateFormat("yyyyMMddHHmmss", Locale.ENGLISH).format(new Date());
            String pathPdf = FacesContext.getCurrentInstance().getExternalContext().getRealPath("/resources/reportTemp") + "/repExigencia_" + timestamp + ".pdf";

            file = new File(pathPdf);
            FileOutputStream in = new FileOutputStream(file);
            FileInputStream entrada = new FileInputStream(file);

            filePDF = "/resources/reportTemp/repExigencia_" + timestamp + ".pdf";

            in.write(relatorio);
            in.close();

            RequestContext.getCurrentInstance().execute("PF('dlgProcesso').show()");
            RequestContext.getCurrentInstance().execute("PF('dlgExigencias').hide()");
            RequestContext.getCurrentInstance().execute("PF('dtExigencia').clearFilters()");

            String destino = "";
            destino = copyFile(file.getName(), entrada);
            processoDAO.atualizarProcesso(destino, processo.getId());

            enviarEmail();

            String emailEnviado = "";

            if (escritorio.getEmail() == null || escritorio.getEmail().equals("")) {
                emailEnviado = processo.getEmail();
            } else {
                emailEnviado = escritorio.getEmail();
            }

            if (!historicoDAO.inserirHistorico(processo, emailEnviado)) {
                UtilBean.mostrarMensagemAlerta("Falha: ", "Falha ao adicionar histórico.");
            }
            habilitarImp = true;
        }

        quantidade = 0;
        exigenciaSelecionadas = "";

        if (exigenciasFiltro != null) {
            exigenciasFiltro.clear();
        }

        exigencias.clear();
        exigenciasParecer.clear();
        exigencias = exigenciaDAO.listarExigencias();
        observacao = "";

    } catch (Exception e) {
        UtilBean.mostrarMensagemErro("Falha", "Erro ao gerar PDF." + e.getMessage());
    }

}
Criado 11 de maio de 2018
Respostas 0
Participantes 1