You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ma...@apache.org on 2009/07/02 12:00:12 UTC

svn commit: r790530 - in /myfaces/trinidad/branches/1.2.11.4-branch/trinidad-api/src: main/java/org/apache/myfaces/trinidad/convert/DateTimeConverter.java test/java/org/apache/myfaces/trinidad/convert/TrinidadDateTimeConverterTest.java

Author: matzew
Date: Thu Jul  2 10:00:12 2009
New Revision: 790530

URL: http://svn.apache.org/viewvc?rev=790530&view=rev
Log:
TRINIDAD-1524 - i18n issue with (German) format pattern

Modified:
    myfaces/trinidad/branches/1.2.11.4-branch/trinidad-api/src/main/java/org/apache/myfaces/trinidad/convert/DateTimeConverter.java
    myfaces/trinidad/branches/1.2.11.4-branch/trinidad-api/src/test/java/org/apache/myfaces/trinidad/convert/TrinidadDateTimeConverterTest.java

Modified: myfaces/trinidad/branches/1.2.11.4-branch/trinidad-api/src/main/java/org/apache/myfaces/trinidad/convert/DateTimeConverter.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/1.2.11.4-branch/trinidad-api/src/main/java/org/apache/myfaces/trinidad/convert/DateTimeConverter.java?rev=790530&r1=790529&r2=790530&view=diff
==============================================================================
--- myfaces/trinidad/branches/1.2.11.4-branch/trinidad-api/src/main/java/org/apache/myfaces/trinidad/convert/DateTimeConverter.java (original)
+++ myfaces/trinidad/branches/1.2.11.4-branch/trinidad-api/src/main/java/org/apache/myfaces/trinidad/convert/DateTimeConverter.java Thu Jul  2 10:00:12 2009
@@ -705,6 +705,9 @@
     }
   }
 
+  /**
+   * Does some more lenient parsing than the stric JSF standard wants.
+   */
   private Date _doLenientParse(
     FacesContext context,
     UIComponent component,
@@ -712,6 +715,16 @@
     String pattern
     )
   {
+    // When a pattern (e.g. dd.MM.yyyy HH:mm' Uhr ') requires a whitespace
+    // at the end, we should honor that. As the JSF spec (see http://bit.ly/kTelf)
+    // wants the converter to trim leading/trailing whitespace, we have to append
+    // one, if the pattern requires it at the end...
+    // TODO at the beginning as well ?
+    if(pattern.endsWith(" '"))
+    {
+      value += " ";
+    }
+
     // do lenient parsing for the pattern supplied.
     // accept derived patterns during
     // parsing, allowing:

Modified: myfaces/trinidad/branches/1.2.11.4-branch/trinidad-api/src/test/java/org/apache/myfaces/trinidad/convert/TrinidadDateTimeConverterTest.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/branches/1.2.11.4-branch/trinidad-api/src/test/java/org/apache/myfaces/trinidad/convert/TrinidadDateTimeConverterTest.java?rev=790530&r1=790529&r2=790530&view=diff
==============================================================================
--- myfaces/trinidad/branches/1.2.11.4-branch/trinidad-api/src/test/java/org/apache/myfaces/trinidad/convert/TrinidadDateTimeConverterTest.java (original)
+++ myfaces/trinidad/branches/1.2.11.4-branch/trinidad-api/src/test/java/org/apache/myfaces/trinidad/convert/TrinidadDateTimeConverterTest.java Thu Jul  2 10:00:12 2009
@@ -133,6 +133,24 @@
     checkNullContext();
   }
 
+  public void testGermanDate()
+  {
+    DateTimeConverter dtConv   = new DateTimeConverter();
+    Mock mock = buildMockUIComponent();
+    UIComponent component = (UIComponent) mock.proxy();
+    String inputValue          = "30.06.09 12:11 Uhr ";
+
+    dtConv.setType("both");
+    dtConv.setTimeStyle("full");
+    dtConv.setLocale(Locale.GERMAN);
+    dtConv.setTimeZone(TimeZone.getTimeZone ("America/New_York"));
+    dtConv.setPattern("dd.MM.yy HH:mm' Uhr '");
+
+    Date dt = (Date) dtConv.getAsObject(facesContext, component, inputValue);
+    assertNotNull(dt);
+    mock.verify();
+  }
+
   public void testShortishForDatePatern()
   {
     GregorianCalendar gcal = new GregorianCalendar();