You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by mm...@apache.org on 2004/12/09 13:18:44 UTC

cvs commit: incubator-myfaces/src/share/org/apache/myfaces/renderkit RendererUtils.java

mmarinschek    2004/12/09 04:18:44

  Modified:    src/components/org/apache/myfaces/custom/calendar
                        HtmlCalendarRenderer.java
               src/share/org/apache/myfaces/renderkit RendererUtils.java
  Log:
  changes in Calendar-Renderer to check for submitted-value first
  
  Revision  Changes    Path
  1.14      +5 -2      incubator-myfaces/src/components/org/apache/myfaces/custom/calendar/HtmlCalendarRenderer.java
  
  Index: HtmlCalendarRenderer.java
  ===================================================================
  RCS file: /home/cvs/incubator-myfaces/src/components/org/apache/myfaces/custom/calendar/HtmlCalendarRenderer.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -r1.13 -r1.14
  --- HtmlCalendarRenderer.java	9 Dec 2004 05:13:02 -0000	1.13
  +++ HtmlCalendarRenderer.java	9 Dec 2004 12:18:43 -0000	1.14
  @@ -46,6 +46,9 @@
   
   /**
    * $Log$
  + * Revision 1.14  2004/12/09 12:18:43  mmarinschek
  + * changes in Calendar-Renderer to check for submitted-value first
  + *
    * Revision 1.13  2004/12/09 05:13:02  svieujot
    * Mark potential bugs where we use the backing bean's value, and do not check for submitted value
    *
  @@ -107,7 +110,7 @@
   
           Locale currentLocale = facesContext.getViewRoot().getLocale();
   
  -        Date value = (Date) inputCalendar.getValue(); // TODO : Check if restores submitted value.
  +        Date value = RendererUtils.getDateValue(inputCalendar);
   
           Calendar timeKeeper = Calendar.getInstance(currentLocale);
           timeKeeper.setTime(value!=null?value:new Date());
  
  
  
  1.15      +40 -2     incubator-myfaces/src/share/org/apache/myfaces/renderkit/RendererUtils.java
  
  Index: RendererUtils.java
  ===================================================================
  RCS file: /home/cvs/incubator-myfaces/src/share/org/apache/myfaces/renderkit/RendererUtils.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- RendererUtils.java	13 Oct 2004 11:51:01 -0000	1.14
  +++ RendererUtils.java	9 Dec 2004 12:18:43 -0000	1.15
  @@ -36,6 +36,9 @@
    * @author Manfred Geiler (latest modification by $Author$)
    * @version $Revision$ $Date$
    * $Log$
  + * Revision 1.15  2004/12/09 12:18:43  mmarinschek
  + * changes in Calendar-Renderer to check for submitted-value first
  + *
    * Revision 1.14  2004/10/13 11:51:01  matze
    * renamed packages to org.apache
    *
  @@ -72,6 +75,41 @@
       private static final Log log = LogFactory.getLog(RendererUtils.class);
   
       public static final String SELECT_ITEM_LIST_ATTR = RendererUtils.class.getName() + ".LIST";
  +    
  +    public static Date getDateValue(UIComponent component)
  +    {
  +        if (!(component instanceof ValueHolder))
  +        {
  +            throw new IllegalArgumentException("Component is not a ValueHolder");
  +        }
  +
  +        if (component instanceof EditableValueHolder)
  +        {
  +            Object submittedValue = ((EditableValueHolder)component).getSubmittedValue();
  +            if (submittedValue != null)
  +            {
  +                if (submittedValue instanceof Date)
  +                {
  +                    return (Date)submittedValue;
  +                }
  +                else
  +                {
  +                    throw new IllegalArgumentException("Expected submitted value of type Date");
  +                }
  +            }
  +        }
  +
  +        Object value = ((ValueHolder)component).getValue();
  +
  +        if (value==null || value instanceof Date)
  +        {
  +            return (Date) value;
  +        }
  +        else
  +        {
  +            throw new IllegalArgumentException("Expected submitted value of type Date");
  +        }
  +    }
   
   
       public static String getStringValue(FacesContext facesContext,