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

Gavin King gavin.king at jboss.com
Wed Nov 8 01:48:38 EST 2006


  User: gavin   
  Date: 06/11/08 01:48:37

  Modified:    src/main/org/jboss/seam/core  Pages.java
  Log:
  fix JBSEAM-473, convert page parametrs
  
  Revision  Changes    Path
  1.42      +30 -4     jboss-seam/src/main/org/jboss/seam/core/Pages.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: Pages.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/src/main/org/jboss/seam/core/Pages.java,v
  retrieving revision 1.41
  retrieving revision 1.42
  diff -u -b -r1.41 -r1.42
  --- Pages.java	31 Oct 2006 20:09:21 -0000	1.41
  +++ Pages.java	8 Nov 2006 06:48:37 -0000	1.42
  @@ -277,12 +277,26 @@
         return result;
      }
      
  +   public Map<String, Object> getConvertedParameters(FacesContext facesContext, String viewId)
  +   {
  +      return getConvertedParameters(facesContext, viewId, Collections.EMPTY_SET);
  +   }
  +   
      public Map<String, Object> getParameters(String viewId)
      {
  -      return getParameters(viewId, Collections.EMPTY_SET);
  +      Map<String, Object> parameters = new HashMap<String, Object>();
  +      for ( Page.PageParameter pageParameter: getPage(viewId).getPageParameters() )
  +      {
  +         Object value = pageParameter.valueBinding.getValue();
  +         if (value!=null)
  +         {
  +            parameters.put(pageParameter.name, value);
  +         }
  +      }
  +      return parameters;
      }
      
  -   public Map<String, Object> getParameters(String viewId, Set<String> overridden)
  +   public Map<String, Object> getConvertedParameters(FacesContext facesContext, String viewId, Set<String> overridden)
      {
         Map<String, Object> parameters = new HashMap<String, Object>();
         for ( Page.PageParameter pageParameter: getPage(viewId).getPageParameters() )
  @@ -292,7 +306,19 @@
               Object value = pageParameter.valueBinding.getValue();
               if (value!=null)
               {
  -               parameters.put(pageParameter.name, value);
  +               Converter converter;
  +               try
  +               {
  +                  converter = pageParameter.getConverter();
  +               }
  +               catch (RuntimeException re)
  +               {
  +                  //YUCK! due to bad JSF/MyFaces error handling
  +                  continue;
  +               }
  +               Object convertedValue = converter==null ? 
  +                     value : converter.getAsString( facesContext, facesContext.getViewRoot(), value );
  +               parameters.put(pageParameter.name, convertedValue);
               }
            }
         }
  @@ -367,7 +393,7 @@
       */
      public String encodePageParameters(String url, String viewId)
      {
  -      Map<String, Object> parameters = getParameters(viewId);
  +      Map<String, Object> parameters = getConvertedParameters( FacesContext.getCurrentInstance(), viewId );
         return Manager.instance().encodeParameters(url, parameters);
      }
   
  
  
  



More information about the jboss-cvs-commits mailing list