Galera, eu tenho uma tabela de documentos a serem anexados, para cada linha eu tenho que preencher um titulo e informar um arquivo.
Eu estou usando dataTable e um map para os titulos ( Map
( Map
<h:dataTable id="table_docs_anexados" var="documento"
styleClass="dataTableInteressados" rowClasses="dataTableLinhaImpar,dataTableLinhaPar"
columnClasses="dtColuna200c,dtColuna120c,dtColuna30c"
headerClass="dataTableTitulo"
value="#{documentosACertificarMBean.documentosCertificados}">
<h:column id="column_tipo">
<f:facet name="header">
<h:outputText id="out_doc_header_tipo" value="Tipo Documento"/>
</f:facet>
<h:outputText id="out_doc_tipo" value="#{documento.documentoAnexo.tipoDocumento.descricao}"/>
</h:column>
<h:column id="column_titulo">
<f:facet name="header">
<h:outputText id="out_doc_header_titulo" value="Título"/>
</f:facet>
<h:outputText id="out_doc_titulo" value="#{documento.documentoAnexo.tituloDocumento}"/>
</h:column>
<h:column id="column_certificar">
<f:facet name="header">
<h:outputText id="out_doc_header_certificar" value="Certificar"/>
</f:facet>
<h:selectBooleanCheckbox id="check_doc_certificar"
value="#{documentosACertificarMBean.mapDocumentosCertificados[documento.codigo]}"
rendered="#{not documento.certificado}">
</h:selectBooleanCheckbox>
<h:graphicImage id="image_doc_certificar" rendered="#{documento.certificado}"
value="#{configuracaoBean.caminhoImagens}/form_preenchido.gif">
</h:graphicImage>
</h:column>
</h:dataTable>
<a4j:commandButton id="button_certificar_docs" value="Certificar"
actionListener="#{documentosACertificarMBean.exibirAutenticacaoAnexados}"
ignoreDupResponses="true" requestDelay="100" styleClass="botao"
reRender="panel_docs_anexados">
</a4j:commandButton>
<a4j:outputPanel id="outputPanel_autenticar_anexados"
layout="block" rendered="#{documentosACertificarMBean.exibirAutenticarAnexados}">
<a4j:include viewId="/jsp/sigaProcesso/util/AutenticarUsuarioINC.jsp" />
<h:panelGrid id="panel_botoes_anexados" columns="2">
<a4j:commandButton id="button_confirmar_certificar" value="Confirmar"
styleClass="botao" action="#{documentosACertificarMBean.confirmarAnexados}"
ignoreDupResponses="true" requestDelay="100"
reRender="panel_docs_anexados">
</a4j:commandButton>
<a4j:commandButton id="button_cancelar_certificar" value="Cancelar"
styleClass="botao" actionListener="#{documentosACertificarMBean.cancelarAnexados}"
ignoreDupResponses="true" requestDelay="100"
reRender="panel_docs_anexados">
</a4j:commandButton>
</h:panelGrid>
</a4j:outputPanel>
private Map<Integer, UploadedFile> mapUploadDocumentosAnexar;
// Gets e Sets
public void confirmarAnexar(ActionEvent event) {
this.limparMensagens();
Collection<DocumentoRequeridoSolicitado>
docs = new ArrayList<DocumentoRequeridoSolicitado>();
for(DocumentoRequeridoSolicitado doc : this.documentosAnexar) {
if(verificarArquivoDocumentoAnexar(doc) && verificarTituloDocumentoAnexar(doc)) {
docs.add(doc);
}
}
try {
this.sistema.getAnexo().confirmarRecebimentoDocumentoSolicitado(
docs, processo, pessoaLogada, orgao, this.mapUploadDocumentosAnexar);
this.mensagemSucessoAnexar = "Documento(s) anexado(s) e certificado(s) com sucesso";
} catch (SistemaException e) {
this.mensagemErroAnexar = e.getMessage();
}
}