Cancelling the progressBar
call after sharing 100%? I've tried to do so:
public void doJs() {
RequestContext ctx = RequestContext.getCurrentInstance();
context.execute("progress.cancel();");
}
Or call the PF('progress').cancel();
, but without success. Follow my progressBar
.
<p:progressBar widgetVar="progress" ajax="true" global="false"
value="#{usarLayoutBean.porcentagem}" labelTemplate="{value}%"
styleClass="animated">
<p:ajax event="complete" listener="#{usarLayoutBean.doJs()}"/>
</p:progressBar>
The code below works for the progress bar. The progress bar stops at 100 and getProgress() is not called again. The onComplete() is called once the Integer progress is equal to 100.
<h:form>
<p:growl id="growl" />
<p:commandButton value="Start" type="button"
onclick="PF('pbAjax').start();" />
<p:progressBar widgetVar="pbAjax" ajax="true"
value="#{progressBean.progress}" labelTemplate="{value}%"
styleClass="animated" global="false">
<p:ajax event="complete" listener="#{progressBean.onComplete}"
update="growl" />
</p:progressBar>
</h:form>
Managed Bean
package com.test;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
@ManagedBean
@ViewScoped
public class ProgressBean {
private Integer progress;
public Integer getProgress() {
System.out.println("getProgress() Old - " + progress);
if (progress == null) {
progress = 0;
} else {
progress = progress + (int) (Math.random() * 35);
if (progress > 100) // Only when progress = 100 does the onComplete() method gets called.
progress = 100;
}
System.out.println("getProgress() New- " + progress);
return progress;
}
public void setProgress(Integer progress) {
System.out.println("setProgress()" + progress);
this.progress = progress;
}
public void onComplete() {
System.out.println("onComplete()");
//FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Progress Completed"));
progress = null;
}
}
Output
getProgress() Old - null
getProgress() New- 0
getProgress() Old - 0
getProgress() New- 24
getProgress() Old - 24
getProgress() New- 50
getProgress() Old - 50
getProgress() New- 82
getProgress() Old - 82
getProgress() New- 100
onComplete()
JSF 2.2.4 , Primefaces 5.3 , Tomcat 8
context.execute("progress.cancel();");
Because the correct way is
context.execute("PF('progress').cancel()");
on the doJs() method.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.