2 Replies Latest reply on Jun 26, 2009 11:19 AM by asookazian

    livedemo progressBar code does not work

    asookazian

      Seam 2.0.2-FP
      RF 3.3.1.GA

      The code (xhtml and JavaBean) in the livedemo:

      http://livedemo.exadel.com/richfaces-demo/richfaces/progressBar.jsf?c=progressBar&tab=usage

      does not work. I see 0% and then -1% when I click the button. The bar remains white with a blue border the entire time. Why and how to fix?

      .xhtml:

      <!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
       "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      <ui:composition xmlns="http://www.w3.org/1999/xhtml"
       xmlns:s="http://jboss.com/products/seam/taglib"
       xmlns:ui="http://java.sun.com/jsf/facelets"
       xmlns:f="http://java.sun.com/jsf/core"
       xmlns:h="http://java.sun.com/jsf/html"
       xmlns:rich="http://richfaces.org/rich"
       xmlns:a4j="http://richfaces.org/a4j"
       template="/templates/normal.xhtml">
      
       <ui:define name="body">
      
       <h:form>
       <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>
       </h:form>
      
       </ui:define>
      
      </ui:composition>


      JavaBean:

      package com.cox.ers.session;
      
      import java.util.Date;
      
      import org.jboss.seam.annotations.Name;
      
      @Name("progressBarBean")
      public class TestProgressBarBean {
      
       private boolean buttonRendered = true;
       private boolean enabled=false;
       private Long startTime;
      
       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;
       }
      
      }
      


        • 1. Re: livedemo progressBar code does not work
          ilya_shaikovsky

          which scope of the bean.

          and b.t.w.

          livedemo progressBar code does not work
          

          I've checked both livedemo online and my local 3.3.2 snapshot. works fine.

          • 2. Re: livedemo progressBar code does not work
            asookazian

            Thanks.

            I tried this:

            @Name("progressBarBean")
            @Scope(ScopeType.SESSION)
            public class TestProgressBarBean {...}


            and it works now.

            The livedemo example is not (for obvious reasons!) using Seam annotations. So it's a JavaBean presumably in a non-Seam container (e.g. plain Tomcat servlet container).

            Default scope is EVENT for JavaBean in Seam so that explains it (premature destruction of object/class instance).