Bom dia!
Estou tendo problemas para iniciar e controlar a porcentagem do progress bar com JSF/RichFaces, estou implementando para a parte do servidor, estou subindo arquivos para o Amazon Storage, e preciso manipular esse processo pela barra de porcentagem.
Consegui fazer a barra iniciar, porém ela fica com o número -1.
O Bean do controle do Progress Bar:
import java.util.Date;
import org.jboss.seam.annotations.Name;
@Name("progressBarBean")
public class ProgressBarBean {
private boolean buttonRendered = true;
private boolean enabled = false;
private Long startTime;
public ProgressBarBean() {
}
public String startProcess() {
setEnabled(true);
setButtonRendered(false);
setStartTime(new Date().getTime());
return null;
}
public Long getCurrentValue() {
if (isEnabled()) {
Long current = (new Date().getTime() - startTime) / 1000;
if (current > 100) {
setButtonRendered(true);
} else if (current.equals(0)) {
return new Long(1);
}
return (new Date().getTime() - startTime) / 1000;
}
if (startTime == null) {
return Long.valueOf(-1);
} else
return Long.valueOf(101);
}
public boolean isEnabled() {
return enabled;
}
public void setEnabled(boolean enabled) {
this.enabled = enabled;
}
public Long getStartTime() {
return startTime;
}
public void setStartTime(Long startTime) {
this.startTime = startTime;
}
public boolean isButtonRendered() {
return buttonRendered;
}
public void setButtonRendered(boolean buttonRendered) {
this.buttonRendered = buttonRendered;
}
}
O componente:
<a4j:outputPanel id="progressPanel">
<rich:progressBar value="#{progressBarBean.currentValue}"
interval="2000" label="#{progressBarBean.currentValue} %"
enabled="#{progressBarBean.enabled}" minValue="-1" maxValue="100"
reRenderAfterComplete="progressPanel">
<f:facet name="initial">
<br />
<h:outputText value="Process doesn't started yet" />
<a4j:commandButton action="#{progressBarBean.startProcess}"
value="Start Process" reRender="progressPanel"
rendered="#{progressBarBean.buttonRendered}"
style="margin: 9px 0px 5px;" />
</f:facet>
<f:facet name="complete">
<br />
<h:outputText value="Process Done" />
<a4j:commandButton action="#{progressBarBean.startProcess}"
value="Restart Process" reRender="progressPanel"
rendered="#{progressBarBean.buttonRendered}"
style="margin: 9px 0px 5px;" />
</f:facet>
</rich:progressBar>
</a4j:outputPanel>
Desde já agradeço!