[jboss-cvs] jboss-seam/src/main/org/jboss/seam/jsf ...

Gavin King gavin.king at jboss.com
Sat Sep 30 12:36:33 EDT 2006


  User: gavin   
  Date: 06/09/30 12:36:33

  Modified:    src/main/org/jboss/seam/jsf   
                        AbstractSeamPhaseListener.java
                        SeamPhaseListener.java
                        SeamPortletPhaseListener.java
  Log:
  fix lifecycle of view parameters
  
  Revision  Changes    Path
  1.13      +29 -0     jboss-seam/src/main/org/jboss/seam/jsf/AbstractSeamPhaseListener.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: AbstractSeamPhaseListener.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/jsf/AbstractSeamPhaseListener.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -b -r1.12 -r1.13
  --- AbstractSeamPhaseListener.java	28 Sep 2006 20:15:29 -0000	1.12
  +++ AbstractSeamPhaseListener.java	30 Sep 2006 16:36:32 -0000	1.13
  @@ -4,6 +4,7 @@
   
   import java.util.Map;
   
  +import javax.faces.application.FacesMessage;
   import javax.faces.context.FacesContext;
   import javax.faces.event.PhaseEvent;
   import javax.faces.event.PhaseId;
  @@ -104,10 +105,38 @@
         }
      }
   
  +   protected void afterUpdateModelValues(PhaseEvent event)
  +   {
  +      Pages.instance().applyParameterValues( event.getFacesContext().getViewRoot().getViewId() );
  +      Manager.instance().setUpdateModelValuesCalled(true);
  +   }
  +
  +   protected void afterInvokeApplication()
  +   {
  +      try
  +      {
  +         if ( Transactions.isTransactionAvailableAndMarkedRollback() )
  +         {
  +            FacesMessages.instance().addFromResourceBundle(
  +                     FacesMessage.SEVERITY_WARN, 
  +                     "org.jboss.seam.TransactionFailed", 
  +                     "Transaction failed"
  +                  );
  +         }
  +      }
  +      catch (Exception e) {} //swallow silently, not important
  +   }
  +
      protected void beforeRender(PhaseEvent event)
      {  
  +      
         FacesContext facesContext = event.getFacesContext();
   
  +      if ( !Manager.instance().isUpdateModelValuesCalled() )
  +      {
  +         Pages.instance().applyParameterValues( facesContext.getViewRoot().getViewId() );
  +      }
  +
         selectDataModelRow( facesContext.getExternalContext().getRequestParameterMap() );
         
         callPageActions(event);
  
  
  
  1.86      +5 -24     jboss-seam/src/main/org/jboss/seam/jsf/SeamPhaseListener.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: SeamPhaseListener.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/jsf/SeamPhaseListener.java,v
  retrieving revision 1.85
  retrieving revision 1.86
  diff -u -b -r1.85 -r1.86
  --- SeamPhaseListener.java	30 Sep 2006 01:36:14 -0000	1.85
  +++ SeamPhaseListener.java	30 Sep 2006 16:36:32 -0000	1.86
  @@ -7,13 +7,12 @@
   package org.jboss.seam.jsf;
   
   import static javax.faces.event.PhaseId.INVOKE_APPLICATION;
  -import static javax.faces.event.PhaseId.APPLY_REQUEST_VALUES;
   import static javax.faces.event.PhaseId.RENDER_RESPONSE;
   import static javax.faces.event.PhaseId.RESTORE_VIEW;
  +import static javax.faces.event.PhaseId.UPDATE_MODEL_VALUES;
   
   import javax.faces.FactoryFinder;
   import javax.faces.application.ApplicationFactory;
  -import javax.faces.application.FacesMessage;
   import javax.faces.context.FacesContext;
   import javax.faces.event.PhaseEvent;
   
  @@ -23,8 +22,6 @@
   import org.jboss.seam.core.FacesMessages;
   import org.jboss.seam.core.Init;
   import org.jboss.seam.core.Manager;
  -import org.jboss.seam.core.Pages;
  -import org.jboss.seam.util.Transactions;
   
   /**
    * Manages the Seam contexts associated with a JSF request.
  @@ -60,7 +57,6 @@
         }
         else if ( event.getPhaseId() == RENDER_RESPONSE )
         {
  -         Pages.instance().applyParameterValues( event.getFacesContext().getViewRoot().getViewId() ); //TODO?
            beforeRender(event);
         }
   
  @@ -75,29 +71,14 @@
         if ( event.getPhaseId() == RESTORE_VIEW )
         {
            restoreAnyConversationContext(facesContext);
  -         if ( !event.getFacesContext().getRenderResponse() )
  -         {
  -            Manager.instance().setNonFacesRequest(false);
  -         }
         }      
         else if ( event.getPhaseId() == INVOKE_APPLICATION )
         {
  -         try
  -         {
  -            if ( Transactions.isTransactionAvailableAndMarkedRollback() )
  -            {
  -               FacesMessages.instance().addFromResourceBundle(
  -                        FacesMessage.SEVERITY_WARN, 
  -                        "org.jboss.seam.TransactionFailed", 
  -                        "Transaction failed"
  -                     );
  -            }
  -         }
  -         catch (Exception e) {} //swallow silently, not important
  +         afterInvokeApplication();
         }
  -      else if ( event.getPhaseId()== APPLY_REQUEST_VALUES )
  +      else if ( event.getPhaseId()== UPDATE_MODEL_VALUES )
         {
  -         Pages.instance().applyParameterValues( facesContext.getViewRoot().getViewId() ); //TODO??
  +         afterUpdateModelValues(event);
         }
               
         //has to happen after, since restoreAnyConversationContext() 
  
  
  
  1.10      +1 -18     jboss-seam/src/main/org/jboss/seam/jsf/SeamPortletPhaseListener.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: SeamPortletPhaseListener.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/jsf/SeamPortletPhaseListener.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -b -r1.9 -r1.10
  --- SeamPortletPhaseListener.java	1 Jul 2006 10:50:09 -0000	1.9
  +++ SeamPortletPhaseListener.java	30 Sep 2006 16:36:32 -0000	1.10
  @@ -10,7 +10,6 @@
   import static javax.faces.event.PhaseId.RENDER_RESPONSE;
   import static javax.faces.event.PhaseId.RESTORE_VIEW;
   
  -import javax.faces.application.FacesMessage;
   import javax.faces.context.FacesContext;
   import javax.faces.event.PhaseEvent;
   
  @@ -19,7 +18,6 @@
   import org.jboss.seam.contexts.Lifecycle;
   import org.jboss.seam.core.FacesMessages;
   import org.jboss.seam.core.Manager;
  -import org.jboss.seam.util.Transactions;
   
   /**
    * Manages the Seam contexts associated with a JSF portlet
  @@ -68,25 +66,10 @@
         if ( event.getPhaseId() == RESTORE_VIEW )
         {
            restoreAnyConversationContext(facesContext);
  -         if ( !event.getFacesContext().getRenderResponse() )
  -         {
  -            Manager.instance().setNonFacesRequest(false);
  -         }
         }
         else if ( event.getPhaseId() == INVOKE_APPLICATION )
         {
  -         try
  -         {
  -            if ( Transactions.isTransactionMarkedRollback() )
  -            {
  -               FacesMessages.instance().addFromResourceBundle(
  -                        FacesMessage.SEVERITY_WARN, 
  -                        "org.jboss.seam.TransactionFailed", 
  -                        "Transaction failed"
  -                     );
  -            }
  -         }
  -         catch (Exception e) {} //swallow silently, not important
  +         afterInvokeApplication();
         }
         
         FacesMessages.afterPhase();
  
  
  



More information about the jboss-cvs-commits mailing list