[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