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 2008/10/22 09:00:21 UTC
svn commit: r706871 -
/myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java/org/apache/myfaces/trinidad/convert/DateTimeConverter.java
Author: matzew
Date: Wed Oct 22 00:00:21 2008
New Revision: 706871
URL: http://svn.apache.org/viewvc?rev=706871&view=rev
Log:
TRINIDAD-1262
committed fix after small correction.
Thanks to Anita Anandan for the patch
Modified:
myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java/org/apache/myfaces/trinidad/convert/DateTimeConverter.java
Modified: myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java/org/apache/myfaces/trinidad/convert/DateTimeConverter.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java/org/apache/myfaces/trinidad/convert/DateTimeConverter.java?rev=706871&r1=706870&r2=706871&view=diff
==============================================================================
--- myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java/org/apache/myfaces/trinidad/convert/DateTimeConverter.java (original)
+++ myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/java/org/apache/myfaces/trinidad/convert/DateTimeConverter.java Wed Oct 22 00:00:21 2008
@@ -28,8 +28,10 @@
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
+import java.util.HashMap;
import java.util.List;
import java.util.Locale;
+import java.util.Map;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
import java.util.TimeZone;
@@ -499,6 +501,25 @@
}
return null;
}
+
+ private Locale _extractConverterLocale(
+ FacesContext context)
+ {
+ Locale locale = getLocale();
+ if (null == locale)
+ {
+ RequestContext reqContext = RequestContext.getCurrentInstance();
+ if (reqContext != null)
+ {
+ locale = reqContext.getFormattingLocale();
+ }
+ if (locale == null)
+ {
+ locale = context.getViewRoot().getLocale();
+ }
+ }
+ return locale;
+ }
private Date _getParsedDate(FacesContext context,
UIComponent component,
@@ -712,9 +733,12 @@
List<String> patterns = new ArrayList<String>();
patterns.add(pattern);
- // we apply some patterns for convenience reasons (see TRINIDAD-859)
- patterns.addAll(_CONVENIENCE_PATTERNS);
-
+ Locale locale = _extractConverterLocale(context);
+ // we apply some patterns for convenience reasons (see TRINIDAD-859, 1262)
+ if (_CONVENIENCE_PATTERNS.containsKey(locale))
+ {
+ patterns.addAll(_CONVENIENCE_PATTERNS.get(locale));
+ }
List<String> lenientPatterns = new ArrayList<String>();
for (String tmpPattern : patterns)
{
@@ -1631,19 +1655,7 @@
boolean forParsing
)
{
- RequestContext reqContext = RequestContext.getCurrentInstance();
-
- Locale locale = getLocale();
- if (null == locale)
- {
- if (reqContext != null)
- locale = reqContext.getFormattingLocale();
- if (locale == null)
- {
- locale = context.getViewRoot().getLocale();
- }
- }
-
+ Locale locale = _extractConverterLocale(context);
TimeZone tZone = _getTimeZone();
DateFormat format = _getCachedFormat(locale, tZone, pattern);
@@ -1710,6 +1722,7 @@
}
Calendar cal;
+ RequestContext reqContext = RequestContext.getCurrentInstance();
if (reqContext == null)
{
cal = null;
@@ -1866,7 +1879,9 @@
private static final TrinidadLogger _LOG = TrinidadLogger.createTrinidadLogger(DateTimeConverter.class);
private static final Date _EXAMPLE_DATE;
- private static final List<String> _CONVENIENCE_PATTERNS =
+ private static final Map<Locale, List<String>> _CONVENIENCE_PATTERNS =
+ new HashMap<Locale, List<String>>();
+ private static final List<String> _US_CONVENIENCE_PATTERNS =
Arrays.asList("MMMM dd, yy", "dd-MMMM-yy", "MMMM/dd/yy");
static
@@ -1874,5 +1889,6 @@
Calendar dateFactory = Calendar.getInstance();
dateFactory.set(1998, 10, 29, 15, 45);
_EXAMPLE_DATE = dateFactory.getTime();
+ _CONVENIENCE_PATTERNS.put(Locale.US, _US_CONVENIENCE_PATTERNS);
}
}