You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2009/06/15 01:49:01 UTC

svn commit: r784635 - /myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/calendar/HtmlCalendarRenderer.java

Author: lu4242
Date: Sun Jun 14 23:49:00 2009
New Revision: 784635

URL: http://svn.apache.org/viewvc?rev=784635&view=rev
Log:
TOMAHAWK-3 inputCalendar with CalendarConverter loses value data

Modified:
    myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/calendar/HtmlCalendarRenderer.java

Modified: myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/calendar/HtmlCalendarRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/calendar/HtmlCalendarRenderer.java?rev=784635&r1=784634&r2=784635&view=diff
==============================================================================
--- myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/calendar/HtmlCalendarRenderer.java (original)
+++ myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/calendar/HtmlCalendarRenderer.java Sun Jun 14 23:49:00 2009
@@ -130,7 +130,32 @@
             }
             else
             {
-                value = RendererUtils.getDateValue(inputCalendar);
+                //value = RendererUtils.getDateValue(inputCalendar);
+                Object objectValue = RendererUtils.getObjectValue(component);
+                if (objectValue == null || objectValue instanceof Date)
+                {
+                    value = (Date) objectValue;
+                }
+                else
+                {
+                    //Use Converter.getAsString and convert to date using 
+                    String stringValue = converter.getAsString(facesContext, component, objectValue);
+
+                    if(stringValue ==null || stringValue.trim().length()==0 ||stringValue.equals(getHelperString(inputCalendar)))
+                    {
+                        value = null;
+                    }
+                    else
+                    {
+                        String formatStr = CalendarDateTimeConverter.createJSPopupFormat(facesContext, inputCalendar.getPopupDateFormat());
+                        Calendar timeKeeper = Calendar.getInstance(currentLocale);
+                        int firstDayOfWeek = timeKeeper.getFirstDayOfWeek() - 1;
+                        org.apache.myfaces.dateformat.DateFormatSymbols symbols = new org.apache.myfaces.dateformat.DateFormatSymbols(currentLocale);
+    
+                        SimpleDateFormatter dateFormat = new SimpleDateFormatter(formatStr, symbols, firstDayOfWeek);
+                        value = dateFormat.parse(stringValue);
+                    }
+                }
             }
         }
         catch (IllegalArgumentException illegalArgumentException)