Fiz uma página para importação de arquivos CSV para a base dados. Estou usando o componente FileUpload do PrimeFaces. Por padrão ele vem com uma animação com o contador do status do processo de apenas o upload do arquivo para o servidor. Mas nesse caso, depois de fazer upload do arquivo, tbm tenho processos de validações dos dados do arquivo, conversões e por ultimo inserções no banco de dados. Preciso travar a página com um AjaxStatus ou adicionar uma animações com AjaxEngine até todos esses processos concluirem. Atualmente estou usando no xhtml:
<p:fileUpload
fileUploadListener="#{importarControle.handleFileUpload}"
update="messages" sizeLimit="0" multiple="false" label="Abrir"
allowTypes="*.csv;" description="CSV" auto="true" >
</p:fileUpload>
No meu managerBean tenho o método:
public void handleFileUpload(FileUploadEvent event) {
try {
stream = new DefaultStreamedContent(event.getFile().getInputstream());
byte[] vet = event.getFile().getContents();
String file = event.getFile().getFileName();
file = file.substring(0, file.length() - 4);
endereco = System.getProperty(ControleMB.AMBIENTE + ".temp") + file + System.currentTimeMillis() + ".csv";
FileOutputStream out = new FileOutputStream(endereco);
out.write(vet);
out.close();
if (validar()) {
importar();
}
} catch (IOException ex) {
ex.getMessage();
Util.addMessageError("Erro ao importar arquivo: " + ex.getMessage());
}
}
Alguém tem alguma idéia de como posso implementar essa solução?
Att,
Donizete Waterkemper