[jboss-cvs] jboss-seam/src/main/org/jboss/seam/contexts ...
Gavin King
gavin.king at jboss.com
Mon Oct 16 11:46:43 EDT 2006
User: gavin
Date: 06/10/16 11:46:43
Modified: src/main/org/jboss/seam/contexts PageContext.java
Log:
make page context propagate across page redisplay
Revision Changes Path
1.8 +25 -13 jboss-seam/src/main/org/jboss/seam/contexts/PageContext.java
(In the diff below, changes in quantity of whitespace are not shown.)
Index: PageContext.java
===================================================================
RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/contexts/PageContext.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- PageContext.java 13 Oct 2006 18:17:20 -0000 1.7
+++ PageContext.java 16 Oct 2006 15:46:43 -0000 1.8
@@ -29,7 +29,7 @@
* returns values from the page that was the source of the request.
*
* @author Gavin King
- * @version $Revision: 1.7 $
+ * @version $Revision: 1.8 $
*/
public class PageContext implements Context {
@@ -38,33 +38,42 @@
public PageContext()
{
- previousPageMap = (Map<String, Object>) getAttributeMap().remove( ScopeType.PAGE.getPrefix() );
- if (previousPageMap==null) previousPageMap = new HashMap<String, Object>();
+ previousPageMap = (Map<String, Object>) getAttributeMap();
nextPageMap = new HashMap<String, Object>();
}
public ScopeType getType()
{
- return ScopeType.CONVERSATION;
+ return ScopeType.PAGE;
}
+ private String getKey(String name)
+ {
+ return /*getPrefix() +*/ name;
+ }
+
+ /*private String getPrefix()
+ {
+ return ScopeType.PAGE.getPrefix() + '$';
+ }*/
+
public Object get(String name)
{
- return getCurrentReadableMap().get(name);
+ return getCurrentReadableMap().get( getKey(name) );
}
public boolean isSet(String name)
{
- return get(name)!=null;
+ return getCurrentReadableMap().containsKey( getKey(name) );
}
- private Map getCurrentReadableMap()
+ private Map<String, Object> getCurrentReadableMap()
{
return isRenderResponsePhase() ?
nextPageMap : previousPageMap;
}
- private Map getCurrentWritableMap()
+ private Map<String, Object> getCurrentWritableMap()
{
return isBeforeInvokeApplicationPhase() ?
previousPageMap : nextPageMap;
@@ -73,19 +82,19 @@
public void set(String name, Object value)
{
if ( Events.exists() ) Events.instance().raiseEvent("org.jboss.seam.preSetVariable." + name);
- getCurrentWritableMap().put(name, value);
+ getCurrentWritableMap().put( getKey(name), value );
if ( Events.exists() ) Events.instance().raiseEvent("org.jboss.seam.postSetVariable." + name);
}
public void remove(String name)
{
if ( Events.exists() ) Events.instance().raiseEvent("org.jboss.seam.preRemoveVariable." + name);
- getCurrentWritableMap().remove(name);
+ getCurrentWritableMap().remove( getKey(name) );
if ( Events.exists() ) Events.instance().raiseEvent("org.jboss.seam.postRemoveVariable." + name);
}
public String[] getNames() {
- return previousPageMap.keySet().toArray( new String[]{} );
+ return getCurrentReadableMap().keySet().toArray( new String[]{} );
}
public String toString()
@@ -99,11 +108,14 @@
}
/**
- * Put the context variables in the faces view root.
+ * Put the buffered context variables in the faces view root,
+ * at the beginning of the render phase.
*/
public void flush()
{
- getAttributeMap().put( ScopeType.PAGE.getPrefix(), nextPageMap );
+ Map attributeMap = getAttributeMap();
+ attributeMap.putAll(nextPageMap);
+ nextPageMap = attributeMap;
}
private static Map getAttributeMap()
More information about the jboss-cvs-commits
mailing list