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;
}