JSF - progress bar visível e invisível

0 respostas
R

Olá amigos,

Estou desenvolvendo um site utilizando JSF, uma das ações do site é ler um arquivo texto com algumas informações e carregá-las em um database... Eu gostaria de fazer uma progress bar[i] com tipo INDETERMINADO para que o usuário tivesse noção de que o sistema estaria carregando tais informações. Então no método que faço a leitura do arquivo e load das informações, tentei setar a progress bar visível (linha 3), para que a mesma aparecesse quando o botão de submeter fosse acionado, e depois invisível (linha 39), para que após o carregamento a mesma fosse apagada. O que acontece é que ele nunca fica visível, pois qualquer ação visial desse método só acontece na página principal após o comando de retorno (linha 44).

Sou iniciante em JSF, alguém poderia me dar uma dica de como resolver isso de forma simples?

Obrigado!

public String btnProtSubmeterArquivo_action() {
        
        pgbarProteinas.setVisible(true);
        int quant=0;
        UploadedFile uploadedFile = (UploadedFile) fupProtFasta.getUploadedFile();

        if( uploadedFile == null ){
            //getFacesContext().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, "Vazio", "Vazio"));
            return null;
        }

        String uploadedFileName = uploadedFile.getOriginalName();

        int index = uploadedFileName.lastIndexOf('/');
        String justFileName;
        if (index >= 0)
        {
            justFileName = uploadedFileName.substring( index + 1 );
        } else {

            // Try backslash
            index = uploadedFileName.lastIndexOf('\\');
            if (index >= 0)
            {
                justFileName = uploadedFileName.substring( index + 1 );
            } else {
                // No forward or back slashes
                justFileName = uploadedFileName;
            }
        }

        try {

            File file = new File(diretorioFasta + File.separatorChar + justFileName);
            uploadedFile.write(file);
            quant = proteinaFacade.carregar_fasta(getSessionBean1().getProjetoSelecionado().getIdProjeto(), diretorioFasta + File.separatorChar + justFileName);
            getFacesContext().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "File successfully uploaded: "+quant+" loaded in database", "File successfully uploaded: "+cont+" loaded in database"));
            //cont = proteinaFacade.obterTodos(getSessionBean1().getProjetoSelecionado().getIdProjeto()).size();
            pgbarProteinas.setVisible(false);
       } catch (Exception ex) {
           getFacesContext().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_ERROR, ex.getMessage(), ex.getMessage()));
       }

        return null;
    }
Criado 15 de setembro de 2011
Respostas 0
Participantes 1