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:28:05 UTC
svn commit: r790542 - in /myfaces/trinidad/trunk:
trinidad-api/src/main/java/org/apache/myfaces/trinidad/convert/
trinidad-api/src/test/java/org/apache/myfaces/trinidad/convert/
trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/
Author: matzew
Date: Thu Jul 2 10:28:05 2009
New Revision: 790542
URL: http://svn.apache.org/viewvc?rev=790542&view=rev
Log:
TRINIDAD-1524 - i18n issue with (German) format pattern
Modified:
myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/convert/DateTimeConverter.java
myfaces/trinidad/trunk/trinidad-api/src/test/java/org/apache/myfaces/trinidad/convert/TrinidadDateTimeConverterTest.java
myfaces/trinidad/trunk/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/DateFormat.js
Modified: myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/convert/DateTimeConverter.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/convert/DateTimeConverter.java?rev=790542&r1=790541&r2=790542&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/convert/DateTimeConverter.java (original)
+++ myfaces/trinidad/trunk/trinidad-api/src/main/java/org/apache/myfaces/trinidad/convert/DateTimeConverter.java Thu Jul 2 10:28:05 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/trunk/trinidad-api/src/test/java/org/apache/myfaces/trinidad/convert/TrinidadDateTimeConverterTest.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-api/src/test/java/org/apache/myfaces/trinidad/convert/TrinidadDateTimeConverterTest.java?rev=790542&r1=790541&r2=790542&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-api/src/test/java/org/apache/myfaces/trinidad/convert/TrinidadDateTimeConverterTest.java (original)
+++ myfaces/trinidad/trunk/trinidad-api/src/test/java/org/apache/myfaces/trinidad/convert/TrinidadDateTimeConverterTest.java Thu Jul 2 10:28:05 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();
Modified: myfaces/trinidad/trunk/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/DateFormat.js
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/DateFormat.js?rev=790542&r1=790541&r2=790542&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/DateFormat.js (original)
+++ myfaces/trinidad/trunk/trinidad-impl/src/main/javascript/META-INF/adf/jsLibs/DateFormat.js Thu Jul 2 10:28:05 2009
@@ -1156,14 +1156,6 @@
parseString = TrUIUtils.trim(parseString);
if (parseString.length == 0)
return null;
-
- // the following correct parseString "24.12.2009 16:36 Uhr"
- // causes an error, as the pattern wants an extra empty sting
- // at the end...
- if(this._endsWith(parseString, "Uhr"))
- {
- parseString += " ";
- }
var pattern = this._pattern;
@@ -1224,7 +1216,7 @@
if (startPos < 0)
return false;
return (value.lastIndexOf(suffix, startPos) == startPos);
-}
+}
TrDateTimeConverter.prototype._initPatterns = function(
pattern, locale)
@@ -1336,6 +1328,14 @@
localeSymbols,
msg)
{
+ // 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...
+ if(this._endsWith(parsePattern, " '"))
+ {
+ parseString += " ";
+ }
var parseContext = new Object();
parseContext.currIndex = 0;