Ja estou na parte final do meu projeto, mas preciso de uma area de
controle que carregue minha base, tenho esse metodo funcionando
quando executo ele em modo java aplication.
Gostaria de criar um visual o qual tera uma progress bar motrando a execução
do método.
segue o codigo da minha visao
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<h:head>
<title> Carregar DCTF</title>
<meta http-equiv="refresh" content="#{session.maxInactiveInterval};url=./../../index.html" />
<script type="text/javascript">
function start() {
startButton1.disable();
window['progress'] = setInterval(function() {
var oldValue = pbClient.getValue(), newValue = oldValue + 10;
pbClient.setValue(pbClient.getValue() + 10);
if(newValue == 100) {
clearInterval(window['progress']);
}
}, 1000);
}
function cancel() {
clearInterval(window['progress']);
pbClient.setValue(0);
startButton1.enable();
}
</script>
</h:head>
<h:body >
<p:layout fullPage="true">
<p:layoutUnit position="center">
<h:form>
<div id="top" align="center" style="height:25%"></div>
<div align="center">
<p:panel header="teste" style="width:50%;">
<h:outputText value="Deseja atualizar a Base de dados ?" />
<br/>
<br/>
<div align="center">
<p:commandButton value="Carregar" action="#{carregarDCTFControle.carregar()}" label="Carregar a DCTF"
onclick="start()" update="teste" type="button" widgetVar="startButton1"/>
</div>
<br/>
<br/>
<p:progressBar id="progressBarClient" widgetVar="pbClient" style="width:300px"/>
</p:panel>
</div>
</h:form>
</p:layoutUnit>
</p:layout>
<p:growl id="teste" showDetail="true"/>
</h:body>
</html>
minha duvida é em qual momento eu devo chamar o método, se ele como java aplication funciona normalmente,
pensei em chamar o método em um actionListener ou em um action nada acontece.
se chama ele em um onclick, ele dispara sem eu clicar
segue o bean
package controle.motor;
import java.util.ArrayList;
import java.util.GregorianCalendar;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import dao.FiscallucropressDAO;
import modelo.Fiscallucropress;
import motor.GerarDCTF;
@ManagedBean(name="carregarDCTFControle")
@SessionScoped
public class CarregarDCTFControle {
//obj pata manipular os metodos
private GerarDCTF gerarDCTF = new GerarDCTF();
//objdao para gerar lista
private FiscallucropressDAO fiscalDao = new FiscallucropressDAO();
//lista
private List<Fiscallucropress> lista = new ArrayList<Fiscallucropress>();
//data inicial
private int ano;
public void getDataSistemaInicial(){
GregorianCalendar calendar = new GregorianCalendar();
this.ano = calendar.get(GregorianCalendar.YEAR);
}
public String carregar(){
getDataSistemaInicial();
for(int i=1;i<13;i++){
lista = fiscalDao.listarMesAno(i, this.ano);
try{
gerarDCTF.separaMesTrimestre(lista);
}catch (NullPointerException e) {
FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Erro",e.toString()));
}
}
return null;
}
public static void main(String args[]){
new CarregarDCTFControle().carregar();
}
}
ele apenas chama os métodos que ja estão funcionando
alguma ideia???