Problemas ao limpar modalPanel após erro de validação campos obrigatórios [RESOLVIDO]

1 resposta
elugo

Bom dia pessoal, estou enfrentando o seguinte problema:
Tenha um formulário com dados sobre um registro de entrada de itens, neste mesmo formulário, tenho
uma funcionalidade que abre um modal para que o usuario informe dados de um documento que ele deseja anexar. O poblema começa ai!
Quando eu abro o modal para que o usuário informe os dados do documento, eu disponibilizo a opção de salvar este documento dentro do modal!
caso o usuário informe todos os campos obrigatório e salve, funciona perfeitamente! Agora… se o usuário salvar e não informar algum dos campo obrigatório,
o sistema exibe a mensagem de campo obritório correto!? só que se o usuário fechar o modal após está validação e abri novamente, os dados antigos permanecem no modal, mesmo
eu chamando um método para limpar os dados antes que o mesmo seja aberto!
Alguém já passou por isto?

segue o código:

<comp:botaoPadrao id="addDocButtonID" disabled="#{paramMBean.tipoDocumento == null}" action="#{paramMBean.iniciarDocumentoEntrada}" ajaxSingle="true" reRender="documentos" label="#{sispat['modalDocumentosRegistroEntrada.btn.adicionar']}" ><a4j:support event="oncomplete" oncomplete="javascript:Richfaces.showModalPanel('documentoPanel');"/></comp:botaoPadrao>
public void iniciarDocumentoEntrada() {
        entity.setExigirConfirmacao(false);
        documentoRegEntrada = new DocumentoAnexo();
        documentoRegEntrada.setTipoDocumento(tipoDocumento);
        documentoRegEntrada.setIdOrigem(entity.getId());
        documentoRegEntrada.setOrigem(EnumOrigem.REGISTRO_ENTRADA);
    }

modal

<h:form id="documentos"> 
  <comp:quadro legenda="#{sispat['modalDocumentosRegistroEntrada.field.dadosCadastro']}">
    <comp:painel id="pnlDocumentoRegEntradaID" columns="4"> 
        <comp:leituraTexto id="txTipoDocumentoViewID" hasLabel="true" campo="#{metadado.registroEntradaCadastro.tipoDocumento}" value="#{registroEntradaMBeanForm.documentoRegEntrada.tipoDocumento.descricao}" />
        <comp:texto id="txEmitenteID" hasLabel="true" campo="#{metadado.modalDocumentoRegistroEntrada.emitente}" value="#{registroEntradaMBeanForm.documentoRegEntrada.emitente}" disabled="#{registroEntradaMBeanForm.documentoRegEntrada.visualizando}"/>
        <comp:data id="dtDataEmissaoID" hasLabel="true" campo="#{metadado.modalDocumentoRegistroEntrada.dataEmissao}" value="#{registroEntradaMBeanForm.documentoRegEntrada.dataEmissao}" disabled="#{registroEntradaMBeanForm.documentoRegEntrada.visualizando}"/>
        <comp:texto id="txContatoID" hasLabel="true" campo="#{metadado.modalDocumentoRegistroEntrada.contato}" value="#{registroEntradaMBeanForm.documentoRegEntrada.contato}" disabled="#{registroEntradaMBeanForm.documentoRegEntrada.visualizando}"/>
        <comp:texto id="txNumeroID" hasLabel="true" campo="#{metadado.modalDocumentoRegistroEntrada.numero}" value="#{registroEntradaMBeanForm.documentoRegEntrada.numero}" disabled="#{registroEntradaMBeanForm.documentoRegEntrada.visualizando}"/>
        <comp:label id="lbArquivoID" campo="#{metadado.modalDocumentoRegistroEntrada.arquivo}" />
        <rich:fileUpload 
            id="arquivo"  
            label="#{metadado.modalDocumentoRegistroEntrada.arquivo.label}"                                   
            addControlLabel="#{sispat['modalDocumentosRegistroEntrada.btn.adicionar']}" 
            stopControlLabel=""
            clearAllControlLabel="#{sispat['modalDocumentosRegistroEntrada.btn.remover']}"
            clearControlLabel="#{sispat['modalDocumentosRegistroEntrada.btn.remover']}"
            addButtonClass="gp-fonte-padrao gp-fonte-botao" 
            stopButtonClass="rich-fileupload-list-decor" 
            listHeight="0px" 
            listWidth="137px" 
            autoclear="true" 
            disabled="#{registroEntradaMBeanForm.documentoRegEntrada.visualizando}"
            immediateUpload="true"
            fileUploadListener="#{registroEntradaMBeanForm.upload}">
            <a4j:support event="onuploadcomplete" ajaxSingle="true" process="arquivo" reRender="documentos" />
        </rich:fileUpload>
        <comp:texto id="txValorID" hasLabel="true" campo="#{metadado.modalDocumentoRegistroEntrada.valor}" styleClass="money" onkeypress="return soNumeroeVirgula(event, this)" onkeyup="FormataValor(this,11,event);" value="#{registroEntradaMBeanForm.documentoRegEntrada.valor}" disabled="#{registroEntradaMBeanForm.documentoRegEntrada.visualizando}"><f:converter converterId="moedaConverter" /></comp:texto>
        <comp:leituraTexto id="ltAnexo" hasLabel="true" campo="#{metadado.modalDocumentoRegistroEntrada.anexo}" value="#{registroEntradaMBeanForm.documentoRegEntrada.nomeArquivo}" /> 
        <f:facet name="footer">
           <h:panelGroup>
              <comp:botaoPadrao id="salvarDocumentoButton" action="#{registroEntradaMBeanForm.salvarDocumentoRegEntrada}" label="#{tag['btn.salvar']}" reRender="panelComplementos" rendered="#{!registroEntradaMBeanForm.documentoRegEntrada.visualizando}" />
              <a4j:commandButton id="fecharModalButton" value="#{tag['btn.fechar']}" immediate="true" onclick="javascript:Richfaces.hideModalPanel('documentoPanel')"/>
           </h:panelGroup>
        </f:facet>
    </comp:painel>
  </comp:quadro>  
</h:form>

Se alguém puder ajudar, eu agradeço!

1 Resposta

elugo

Galera, consegui resolver!
Ontem tinha pesquisado muito, mas muito mesmo! porém, não tinha visto este post
http://www.rponte.com.br/2011/06/07/limpando-a-arvore-de-componentes/
que foi a solução!

Criado 27 de outubro de 2011
Ultima resposta 27 de out. de 2011
Respostas 1
Participantes 1