You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by gc...@apache.org on 2009/03/26 22:05:58 UTC
svn commit: r758853 - in /myfaces/trinidad/branches/1.2.11.2-branch:
trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/
trinidad-api/src/test/java/org/apache/myfaces/trinidad/context/
trinidad-impl/src/main/java/org/apache/myfaces/trinidad...
Author: gcrawford
Date: Thu Mar 26 21:05:58 2009
New Revision: 758853
URL: http://svn.apache.org/viewvc?rev=758853&view=rev
Log:
TRINIDAD-1432 Need a method on RequestContext to detect an internal view
Modified:
myfaces/trinidad/branches/1.2.11.2-branch/trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/RequestContext.java
myfaces/trinidad/branches/1.2.11.2-branch/trinidad-api/src/test/java/org/apache/myfaces/trinidad/context/MockRequestContext.java
myfaces/trinidad/branches/1.2.11.2-branch/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/application/ViewHandlerImpl.java
myfaces/trinidad/branches/1.2.11.2-branch/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/RequestContextImpl.java
myfaces/trinidad/branches/1.2.11.2-branch/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/MRequestContext.java
Modified: myfaces/trinidad/branches/1.2.11.2-branch/trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/RequestContext.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/1.2.11.2-branch/trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/RequestContext.java?rev=758853&r1=758852&r2=758853&view=diff
==============================================================================
--- myfaces/trinidad/branches/1.2.11.2-branch/trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/RequestContext.java (original)
+++ myfaces/trinidad/branches/1.2.11.2-branch/trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/RequestContext.java Thu Mar 26 21:05:58 2009
@@ -226,6 +226,13 @@
* Returns the name of the preferred skin family.
*/
public abstract String getSkinFamily();
+
+ /**
+ * Determines whether the current View Root is an internal view
+ * @param context Faces context
+ * @return true if the current View Root is an internal view, false otherwise
+ */
+ public abstract boolean isInternalViewRequest(FacesContext context);
public enum Accessibility
{
Modified: myfaces/trinidad/branches/1.2.11.2-branch/trinidad-api/src/test/java/org/apache/myfaces/trinidad/context/MockRequestContext.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/1.2.11.2-branch/trinidad-api/src/test/java/org/apache/myfaces/trinidad/context/MockRequestContext.java?rev=758853&r1=758852&r2=758853&view=diff
==============================================================================
--- myfaces/trinidad/branches/1.2.11.2-branch/trinidad-api/src/test/java/org/apache/myfaces/trinidad/context/MockRequestContext.java (original)
+++ myfaces/trinidad/branches/1.2.11.2-branch/trinidad-api/src/test/java/org/apache/myfaces/trinidad/context/MockRequestContext.java Thu Mar 26 21:05:58 2009
@@ -363,6 +363,12 @@
{
throw new UnsupportedOperationException("Not implemented yet");
}
+
+ @Override
+ public boolean isInternalViewRequest(FacesContext context)
+ {
+ return false;
+ }
static private final TimeZone _FIXED_TIME_ZONE =
Modified: myfaces/trinidad/branches/1.2.11.2-branch/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/application/ViewHandlerImpl.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/1.2.11.2-branch/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/application/ViewHandlerImpl.java?rev=758853&r1=758852&r2=758853&view=diff
==============================================================================
--- myfaces/trinidad/branches/1.2.11.2-branch/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/application/ViewHandlerImpl.java (original)
+++ myfaces/trinidad/branches/1.2.11.2-branch/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/application/ViewHandlerImpl.java Thu Mar 26 21:05:58 2009
@@ -27,11 +27,14 @@
import java.util.Collections;
import java.util.Enumeration;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Properties;
+import java.util.Set;
+
import javax.faces.FacesException;
import javax.faces.application.ViewHandler;
import javax.faces.application.ViewHandlerWrapper;
@@ -83,6 +86,8 @@
public UIViewRoot createView(FacesContext context, String viewId)
{
_initIfNeeded(context);
+
+ _storeInternalViewIds(context);
InternalView internal = _getInternalView(context, viewId);
if (internal != null)
@@ -207,6 +212,8 @@
FacesContext context,
String viewId)
{
+ _storeInternalViewIds(context);
+
//This code processes a "return" event. Most of this logic was moved to
//StateManagerImpl because we ran into a problem with JSF where it didn't
//set up the JSF mapping properly if we didn't delegate to the default
@@ -300,6 +307,28 @@
super.writeState(context);
}
+
+ public static boolean isInternalViewId(FacesContext context, String id)
+ {
+ if (id == null)
+ return false;
+
+ Set<String> ids =
+ (Set<String>)context.getExternalContext().getRequestMap().get(_INTERNAL_VIEW_ID_SET);
+
+ if (ids == null)
+ return false;
+
+ return ids.contains(id);
+ }
+
+ private void _storeInternalViewIds(FacesContext context)
+ {
+ // Save internal view Ids on the request map, so that we can retrieve them later
+ // (see RequestContext.isInternalViewRequest())
+ Set<String> ids = new HashSet<String>(_internalViews.keySet());
+ context.getExternalContext().getRequestMap().put(_INTERNAL_VIEW_ID_SET, ids);
+ }
synchronized private void _initIfNeeded(FacesContext context)
{
@@ -530,4 +559,5 @@
private static final TrinidadLogger _LOG = TrinidadLogger.createTrinidadLogger(ViewHandlerImpl.class);
private static final Long _NOT_FOUND = Long.valueOf(0);
private static final String _RENDER_VIEW_MARKER = "__trRenderViewEntry";
+ private static final String _INTERNAL_VIEW_ID_SET = "org.apache.myfaces.trinidadinternal.application._INTERNAL_IDS";
}
Modified: myfaces/trinidad/branches/1.2.11.2-branch/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/RequestContextImpl.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/1.2.11.2-branch/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/RequestContextImpl.java?rev=758853&r1=758852&r2=758853&view=diff
==============================================================================
--- myfaces/trinidad/branches/1.2.11.2-branch/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/RequestContextImpl.java (original)
+++ myfaces/trinidad/branches/1.2.11.2-branch/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/RequestContextImpl.java Thu Mar 26 21:05:58 2009
@@ -66,6 +66,7 @@
import org.apache.myfaces.trinidadinternal.agent.AgentFactoryImpl;
import org.apache.myfaces.trinidadinternal.agent.TrinidadAgentImpl;
import org.apache.myfaces.trinidadinternal.application.StateManagerImpl;
+import org.apache.myfaces.trinidadinternal.application.ViewHandlerImpl;
import org.apache.myfaces.trinidadinternal.el.FormatterMap;
import org.apache.myfaces.trinidadinternal.el.HelpProvider;
import org.apache.myfaces.trinidadinternal.el.OracleHelpProvider;
@@ -704,6 +705,16 @@
return StateManagerImpl.restoreComponentTree(__getFacesContext(),
state);
}
+
+ @Override
+ public boolean isInternalViewRequest(FacesContext context)
+ {
+ UIViewRoot root = context.getViewRoot();
+ if (root == null)
+ return false;
+
+ return ViewHandlerImpl.isInternalViewId(context, root.getViewId());
+ }
void __setPageResolver(PageResolver pageResolver)
{
Modified: myfaces/trinidad/branches/1.2.11.2-branch/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/MRequestContext.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/1.2.11.2-branch/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/MRequestContext.java?rev=758853&r1=758852&r2=758853&view=diff
==============================================================================
--- myfaces/trinidad/branches/1.2.11.2-branch/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/MRequestContext.java (original)
+++ myfaces/trinidad/branches/1.2.11.2-branch/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/MRequestContext.java Thu Mar 26 21:05:58 2009
@@ -351,6 +351,13 @@
throw new UnsupportedOperationException("Not implemented yet");
}
+ @Override
+ public boolean isInternalViewRequest(FacesContext context)
+ {
+ return false;
+ }
+
+
private String _skin;
private Accessibility _accMode;
private AccessibilityProfile _accProfile;