Olá pessoal, estou tentando fazer com que, ao pesquisar um relatório, durante a consulta e o retorno desta, seja exibido um modalPanel com um rich:progressBar carregando.
[color=brown]Utilizo RichFaces 3.3.3-Final. Jsf 2. Página padrão .jsp.[/color]
Tenho o seguinte código:
Script
<script>
//<![CDATA[
var counter = 1;
var intervalID;
function updateProgress(i) {
$('form:progressBar').component.setValue(counter*5);
if ((counter++)>20){
clearInterval(intervalID);
document.getElementById('button').disabled=false;
}
}
function startProgress(){
counter=1;
document.getElementById('button').disabled=true;
$('form:progressBar').component.enable();
$('form:progressBar').component.setValue(1);
intervalID = setInterval(updateProgress,1000);
}
//]]>
</script>
Botão que chama a consulta e o modalPanel
<f:view>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
<title>Extrato Contabil - Vallée S/A - GTi</title>
</head>
<body>
<h:form id="form">
.
.
.
<a4j:commandButton id="button" value="Carregar Extrato" style="margin-left: 30px" action="#{bExtratoContabil.acaoPesquisar}" onclick="startProgress" reRender="form" oncomplete="#{rich:component('panel')}.show();"/>
</h:form>
</body>
</html>
</f:view>
ModalPanel
<rich:modalPanel id="panel" width="350" height="100">
<f:facet name="header">
<h:panelGroup>
<h:outputText value="Modal Panel"></h:outputText>
</h:panelGroup>
</f:facet>
<f:facet name="controls">
<h:panelGroup>
<h:graphicImage value="/imgs/fechar.jpg" styleClass="hidelink" id="hidelink"/>
<rich:componentControl for="panel" attachTo="hidelink" operation="hide" event="onclick"/>
</h:panelGroup>
</f:facet>
<rich:progressBar mode="client" id="progressBar"></rich:progressBar>
</rich:modalPanel>
Deste modo, ele exibe o modalPanel quando finaliza a consulta. E ainda assim, exibe o modalPanel sem nada, apenas com a graphicImage fechar.jpg.
Creio que preciso utilizar uma thread para executar este carregar do progressBar com a consulta. Mas como? Alguma Luz?
O que devo fazer?