[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