You are viewing a plain text version of this content. The canonical link for it is here.
Posted to adffaces-commits@incubator.apache.org by aw...@apache.org on 2006/10/28 02:28:21 UTC
svn commit: r468616 - in /incubator/adffaces/trunk/trinidad:
trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/
trinidad-api/src/main/java/org/apache/myfaces/trinidad/convert/
trinidad-api/src/test/java/org/apache/myfaces/trinidad/context/...
Author: awiner
Date: Fri Oct 27 19:28:20 2006
New Revision: 468616
URL: http://svn.apache.org/viewvc?view=rev&rev=468616
Log:
ADFFACES-268: Add support for formatting locale, separate from translation locale. Also, fix a bug in DateTimeRangeValidator to avoid a NullPointerException when one of min or max isn't set
Removed:
incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/HtmlRenderer.java
incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/pda/HtmlRenderer.java
incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/xhtml/HtmlRenderer.java
Modified:
incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/LocaleContext.java
incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/RequestContext.java
incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/convert/DateTimeConverter.java
incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/convert/NumberConverter.java
incubator/adffaces/trunk/trinidad/trinidad-api/src/test/java/org/apache/myfaces/trinidad/context/MockRequestContext.java
incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/RequestContextBean.java
incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/RequestContextImpl.java
incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/convert/DateTimeConverter.java
incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/CoreRenderingContext.java
incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/ChooseDateRenderer.java
incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/HtmlRenderer.java
incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/jsLibs/LocaleInfoScriptlet.java
incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/share/nls/LocaleContextImpl.java
incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/share/nls/MutableLocaleContext.java
incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/validator/DateTimeRangeValidator.java
incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/webapp/ConfigParser.java
incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/MRequestContext.java
Modified: incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/LocaleContext.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/LocaleContext.java?view=diff&rev=468616&r1=468615&r2=468616
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/LocaleContext.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/LocaleContext.java Fri Oct 27 19:28:20 2006
@@ -34,20 +34,40 @@
}
/**
- * Returns the locale that should be used for rendering. Attributes
- * on the current node should override this.
+ * Returns the locale that should be used for formatting.
*/
- abstract public Locale getLocale();
+ abstract public Locale getFormattingLocale();
/**
- * Returns the locale that should be used for translations..
+ * Returns the formatting Locale in IANA String format.
*/
- abstract public Locale getTranslationLocale();
+ abstract public String getFormattingIANALocaleString();
+
+
+ /**
+ * Returns the locale that should be used for formatting.
+ * @deprecated use getFormattingLocale()
+ */
+ public Locale getLocale()
+ {
+ return getFormattingLocale();
+ }
/**
* Returns the Locale in IANA String format.
+ * @deprecated use getFormattingIANALocaleString()
*/
- abstract public String getIANALocaleString();
+ public String getIANALocaleString()
+ {
+ return getFormattingIANALocaleString();
+ }
+
+
+
+ /**
+ * Returns the locale that should be used for translations..
+ */
+ abstract public Locale getTranslationLocale();
/**
Modified: incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/RequestContext.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/RequestContext.java?view=diff&rev=468616&r1=468615&r2=468616
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/RequestContext.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/context/RequestContext.java Fri Oct 27 19:28:20 2006
@@ -17,6 +17,7 @@
import java.awt.Color;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import java.util.TimeZone;
@@ -246,11 +247,16 @@
/**
* Returns true if the user should be shown output in right-to-left.
- * @todo Should this be a java.lang.Boolean to better encapsulate
- * "default off of Locale"? Currently, this forces Locale-checking
- * code into this method.
*/
public abstract boolean isRightToLeft();
+
+ /**
+ * Returns the formatting locale. Converters without an explicit locale
+ * should use this to format values. If not set, converters should
+ * default to the value of FacesContext.getViewRoot().getLocale().
+ * This will, by default, simply return null.
+ */
+ public abstract Locale getFormattingLocale();
//
// Number formatting
Modified: incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/convert/DateTimeConverter.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/convert/DateTimeConverter.java?view=diff&rev=468616&r1=468615&r2=468616
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/convert/DateTimeConverter.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/convert/DateTimeConverter.java Fri Oct 27 19:28:20 2006
@@ -1504,10 +1504,18 @@
String pattern
)
{
- Locale locale = getLocale();
+ RequestContext reqContext = RequestContext.getCurrentInstance();
+ Locale locale = getLocale();
if (null == locale)
- locale = context.getViewRoot().getLocale();
+ {
+ if (reqContext != null)
+ locale = reqContext.getFormattingLocale();
+ if (locale == null)
+ {
+ locale = context.getViewRoot().getLocale();
+ }
+ }
TimeZone tZone = _getTimeZone();
@@ -1574,9 +1582,8 @@
}
}
- RequestContext adfContext = RequestContext.getCurrentInstance();
Calendar cal;
- if (adfContext == null)
+ if (reqContext == null)
{
cal = null;
if(_LOG.isWarning())
@@ -1586,7 +1593,7 @@
}
else
{
- cal = new GregorianCalendar(adfContext.getTwoDigitYearStart(), 0, 0);
+ cal = new GregorianCalendar(reqContext.getTwoDigitYearStart(), 0, 0);
}
if (cal != null)
simpleFormat.set2DigitYearStart(cal.getTime());
Modified: incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/convert/NumberConverter.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/convert/NumberConverter.java?view=diff&rev=468616&r1=468615&r2=468616
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/convert/NumberConverter.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/convert/NumberConverter.java Fri Oct 27 19:28:20 2006
@@ -215,8 +215,8 @@
" be specified");
}
- Locale locale = _getLocale(context);
RequestContext reqCtx = RequestContext.getCurrentInstance();
+ Locale locale = _getLocale(reqCtx, context);
NumberFormat fmt = _getNumberFormat(pattern, type, locale, reqCtx);
@@ -292,8 +292,8 @@
}
- Locale locale = _getLocale(context);
RequestContext reqCtx = RequestContext.getCurrentInstance();
+ Locale locale = _getLocale(reqCtx, context);
NumberFormat formatter = _getNumberFormat(pattern, type, locale, reqCtx);
@@ -1030,11 +1030,17 @@
component);
}
- private Locale _getLocale(FacesContext context)
+ private Locale _getLocale(RequestContext rc, FacesContext context)
{
Locale locale = getLocale();
if (locale == null )
- locale = context.getViewRoot().getLocale();
+ {
+ locale = rc.getFormattingLocale();
+ if (locale == null)
+ {
+ locale = context.getViewRoot().getLocale();
+ }
+ }
return locale;
}
Modified: incubator/adffaces/trunk/trinidad/trinidad-api/src/test/java/org/apache/myfaces/trinidad/context/MockRequestContext.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-api/src/test/java/org/apache/myfaces/trinidad/context/MockRequestContext.java?view=diff&rev=468616&r1=468615&r2=468616
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-api/src/test/java/org/apache/myfaces/trinidad/context/MockRequestContext.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-api/src/test/java/org/apache/myfaces/trinidad/context/MockRequestContext.java Fri Oct 27 19:28:20 2006
@@ -17,6 +17,7 @@
import java.awt.Color;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import java.util.TimeZone;
import javax.faces.component.UIComponent;
@@ -159,6 +160,17 @@
}
@Override
+ public Locale getFormattingLocale()
+ {
+ return _formattingLocale;
+ }
+
+ public void setFormattingLocale(Locale formattingLocale)
+ {
+ _formattingLocale = formattingLocale;
+ }
+
+ @Override
public char getNumberGroupingSeparator()
{
return _numberGroupingSeparator;
@@ -306,5 +318,5 @@
private Accessibility _accMode;
private Agent _agent;
private boolean _rtl = false;
-
+ private Locale _formattingLocale;
}
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/RequestContextBean.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/RequestContextBean.java?view=diff&rev=468616&r1=468615&r2=468616
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/RequestContextBean.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/RequestContextBean.java Fri Oct 27 19:28:20 2006
@@ -15,6 +15,7 @@
*/
package org.apache.myfaces.trinidadinternal.context;
+import java.util.Locale;
import java.util.TimeZone;
import org.apache.myfaces.trinidad.bean.FacesBeanImpl;
@@ -39,6 +40,8 @@
TYPE.registerKey("accessibility-mode");
static public final PropertyKey RIGHT_TO_LEFT_KEY =
TYPE.registerKey("right-to-left", Boolean.class);
+ static public final PropertyKey FORMATTING_LOCALE_KEY =
+ TYPE.registerKey("formatting-locale", Locale.class);
static public final PropertyKey NUMBER_GROUPING_SEPARATOR_KEY =
TYPE.registerKey("number-grouping-separator", Character.class);
static public final PropertyKey DECIMAL_SEPARATOR_KEY =
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/RequestContextImpl.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/RequestContextImpl.java?view=diff&rev=468616&r1=468615&r2=468616
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/RequestContextImpl.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/context/RequestContextImpl.java Fri Oct 27 19:28:20 2006
@@ -326,7 +326,7 @@
// Support the "session" token
if ("session".equalsIgnoreCase(changeManager))
{
- _LOG.info("ADF Faces is using HTTPSession for change persistence");
+ _LOG.info("Apache Trinidad is using HTTPSession for change persistence");
return new SessionChangeManager();
}
// Otherwise, just assume its a class name.
@@ -397,6 +397,18 @@
}
return false;
+ }
+
+ public Locale getFormattingLocale()
+ {
+ Object o = _bean.getProperty(RequestContextBean.FORMATTING_LOCALE_KEY);
+ if (o == null)
+ return null;
+
+ if (o instanceof Locale)
+ return (Locale) o;
+
+ return LocaleUtils.getLocaleForIANAString(o.toString());
}
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/convert/DateTimeConverter.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/convert/DateTimeConverter.java?view=diff&rev=468616&r1=468615&r2=468616
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/convert/DateTimeConverter.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/convert/DateTimeConverter.java Fri Oct 27 19:28:20 2006
@@ -504,7 +504,8 @@
if (dateTimeConverterLocale != null)
{
Locale defaultLocale =
- RenderingContext.getCurrentInstance().getLocaleContext().getLocale();
+ RenderingContext.getCurrentInstance().getLocaleContext().
+ getFormattingLocale();
return !dateTimeConverterLocale.equals(defaultLocale);
}
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/CoreRenderingContext.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/CoreRenderingContext.java?view=diff&rev=468616&r1=468615&r2=468616
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/CoreRenderingContext.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/CoreRenderingContext.java Fri Oct 27 19:28:20 2006
@@ -20,6 +20,7 @@
import java.io.File;
import java.util.HashMap;
+import java.util.Locale;
import java.util.Map;
import javax.faces.context.FacesContext;
@@ -483,8 +484,13 @@
FacesContext fContext,
RequestContext context)
{
- MutableLocaleContext localeContext = new MutableLocaleContext(
- fContext.getViewRoot().getLocale());
+ Locale translations = fContext.getViewRoot().getLocale();
+ Locale formatting = context.getFormattingLocale();
+ if (formatting == null)
+ formatting = translations;
+
+ MutableLocaleContext localeContext = new MutableLocaleContext(formatting,
+ translations);
localeContext.setReadingDirection(context.isRightToLeft() ?
LocaleUtils.DIRECTION_RIGHTTOLEFT :
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/ChooseDateRenderer.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/ChooseDateRenderer.java?view=diff&rev=468616&r1=468615&r2=468616
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/ChooseDateRenderer.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/ChooseDateRenderer.java Fri Oct 27 19:28:20 2006
@@ -258,7 +258,7 @@
// Bug 2388968: Java's "short" weekdays in Arabic are single
// letters, which we're told are inadequate. Output entire
// names instead.
- if ("ar".equals(arc.getLocaleContext().getLocale().getLanguage()))
+ if ("ar".equals(arc.getLocaleContext().getFormattingLocale().getLanguage()))
shortWeekdays = dateSymbols.getWeekdays();
else
shortWeekdays = dateSymbols.getShortWeekdays();
@@ -733,7 +733,7 @@
XhtmlConstants.VALUE_PARAM,
String.valueOf(selectedTime),
LOC_PARAM,
- arc.getLocaleContext().getIANALocaleString()
+ arc.getLocaleContext().getFormattingIANALocaleString()
};
}
@@ -1198,7 +1198,7 @@
LocaleContext localeContext = arc.getLocaleContext();
Calendar calendar = Calendar.getInstance(localeContext.getTimeZone(),
- localeContext.getLocale());
+ localeContext.getFormattingLocale());
if (calendar instanceof GregorianCalendar)
{
((GregorianCalendar) calendar).setGregorianChange(
@@ -1389,7 +1389,7 @@
if (symbols == null)
{
- symbols = new DateFormatSymbols(arc.getLocaleContext().getLocale());
+ symbols = new DateFormatSymbols(arc.getLocaleContext().getFormattingLocale());
arc.getProperties().put(_DATE_SYMBOLS_KEY, symbols);
}
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/HtmlRenderer.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/HtmlRenderer.java?view=diff&rev=468616&r1=468615&r2=468616
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/HtmlRenderer.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/HtmlRenderer.java Fri Oct 27 19:28:20 2006
@@ -107,7 +107,7 @@
writer.writeAttribute("dir", direction, null);
// render the correct language
- String lang = arc.getLocaleContext().getIANALocaleString();
+ String lang = arc.getLocaleContext().getTranslationIANALocaleString();
if (lang != null)
{
if (isXML)
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/jsLibs/LocaleInfoScriptlet.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/jsLibs/LocaleInfoScriptlet.java?view=diff&rev=468616&r1=468615&r2=468616
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/jsLibs/LocaleInfoScriptlet.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/jsLibs/LocaleInfoScriptlet.java Fri Oct 27 19:28:20 2006
@@ -71,7 +71,7 @@
// write out the i18n Locale as a js variable
writer.writeText("var _locale='", null);
- writer.writeText(lc.getIANALocaleString(), null);
+ writer.writeText(lc.getFormattingIANALocaleString(), null);
writer.writeText("';", null);
// write out the translation Locale as a js variable
@@ -112,7 +112,7 @@
RenderingContext arc)
{
Locale elementsLocale = _getJSLocaleElementsLocale(
- arc.getLocaleContext().getLocale());
+ arc.getLocaleContext().getFormattingLocale());
String var = getSupportedLocaleVariant(arc);
if (var != null)
{
@@ -145,7 +145,7 @@
*/
public String getSupportedLocaleVariant(RenderingContext arc)
{
- String variant = arc.getLocaleContext().getLocale().getVariant();
+ String variant = arc.getLocaleContext().getFormattingLocale().getVariant();
variant = variant.toUpperCase();
if (variant.startsWith("ORACLE"))
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/share/nls/LocaleContextImpl.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/share/nls/LocaleContextImpl.java?view=diff&rev=468616&r1=468615&r2=468616
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/share/nls/LocaleContextImpl.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/share/nls/LocaleContextImpl.java Fri Oct 27 19:28:20 2006
@@ -39,26 +39,16 @@
* @version $Name: $ ($Revision: adfrt/faces/adf-faces-impl/src/main/java/oracle/adfinternal/view/faces/share/nls/LocaleContext.java#0 $) $Date: 10-nov-2005.19:00:03 $
* @author The Oracle ADF Faces Team
*/
-// -= Simon Lessard =-
public class LocaleContextImpl extends LocaleContext
{
/**
- * Creates a LocaleContext based off of the default Locale.
- */
- public LocaleContextImpl()
- {
- this(null);
- }
-
-
- /**
* Creates a LocaleContext based off of the specified Locale.
*/
public LocaleContextImpl(
- Locale baseLocale
+ Locale locale
)
{
- this(baseLocale, null);
+ this(locale, locale);
}
@@ -69,29 +59,30 @@
* can use the translation Locale to force subcomponents to only
* use translations in a language supported by the application.
* <p>
- * @param baseLocale Locale providing default behavior for the LocaleContext.
+ * @param formattingLocale Locale providing default formatting
+ * behavior for the LocaleContext.
* If not specified, the defualt Locale is used.
* @param translationLocale Locale to use for translations. If not
- * specified, the baseLocale is used.
+ * specified, the formattingLocale is used.
*/
public LocaleContextImpl(
- Locale baseLocale,
+ Locale formattingLocale,
Locale translationLocale
)
{
if (!getClass().getName().startsWith("org.apache.myfaces.trinidadinternal.share.nls."))
throw new IllegalStateException("User-defined subclasses not supported.");
- if (baseLocale == null)
+ if (formattingLocale == null)
{
- baseLocale = Locale.getDefault();
+ formattingLocale = Locale.getDefault();
}
- _locale = baseLocale;
+ _formattingLocale = formattingLocale;
// default the translation locale to the baseLocale
if (translationLocale == null)
- translationLocale = baseLocale;
+ translationLocale = formattingLocale;
_transLocale = translationLocale;
@@ -99,36 +90,35 @@
}
/**
- * Returns the locale that should be used for rendering. Attributes
- * on the current node should override this.
+ * Returns the locale that should be used for translations.
*/
- public Locale getLocale()
+ public Locale getTranslationLocale()
{
- return _locale;
+ return _transLocale;
}
/**
- * Returns the locale that should be used for translations..
+ * Returns the locale that should be used for formatting.
*/
- public Locale getTranslationLocale()
+ public Locale getFormattingLocale()
{
- return _transLocale;
+ return _formattingLocale;
}
/**
* Returns the Locale in IANA String format.
*/
- public String getIANALocaleString()
+ public String getFormattingIANALocaleString()
{
- if (_ianaLocale == null)
+ if (_formattingIanaLocale == null)
{
- String localeString = _locale.toString();
+ String localeString = _formattingLocale.toString();
- _ianaLocale = localeString.replace('_', '-');
+ _formattingIanaLocale = localeString.replace('_', '-');
}
- return _ianaLocale;
+ return _formattingIanaLocale;
}
@@ -237,8 +227,10 @@
{
StringBuffer buffer = new StringBuffer(super.toString());
- buffer.append(" locale=");
- buffer.append(getLocale());
+ buffer.append(" translationLocale=");
+ buffer.append(getTranslationLocale());
+ buffer.append(", formattingLocale=");
+ buffer.append(getFormattingLocale());
buffer.append(", direction=");
buffer.append(getReadingDirection());
buffer.append(", timeZone=");
@@ -363,7 +355,7 @@
@Override
public int hashCode()
{
- return getLocale().hashCode();
+ return getFormattingLocale().hashCode();
}
/**
@@ -381,8 +373,8 @@
LocaleContextImpl that = (LocaleContextImpl)obj;
return
- (this.getLocale().equals(that.getLocale()) &&
- this.getTranslationLocale().equals(that.getTranslationLocale()) &&
+ (this.getTranslationLocale().equals(that.getTranslationLocale()) &&
+ this.getFormattingLocale().equals(that.getFormattingLocale()) &&
this.getTimeZone().equals(that.getTimeZone()) &&
(this.getReadingDirection() == that.getReadingDirection()) &&
this.getDateFormatContext().equals(that.getDateFormatContext()) &&
@@ -443,9 +435,9 @@
private HashMap<String, ResourceBundle> _bundles;
- private Locale _locale;
+ private Locale _formattingLocale;
private Locale _transLocale;
- private transient String _ianaLocale;
+ private transient String _formattingIanaLocale;
private transient String _transIanaLocale;
private TimeZone _timeZone;
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/share/nls/MutableLocaleContext.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/share/nls/MutableLocaleContext.java?view=diff&rev=468616&r1=468615&r2=468616
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/share/nls/MutableLocaleContext.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/share/nls/MutableLocaleContext.java Fri Oct 27 19:28:20 2006
@@ -42,21 +42,13 @@
public final class MutableLocaleContext extends LocaleContextImpl
{
/**
- * Creates a MutableLocaleContext based off of the default Locale.
- */
- public MutableLocaleContext()
- {
- super();
- }
-
- /**
* Creates a MutableLocaleContext based off of the specified Locale.
*/
public MutableLocaleContext(
- Locale baseLocale
+ Locale formattingLocale
)
{
- super(baseLocale);
+ super(formattingLocale);
}
/**
@@ -66,17 +58,17 @@
* can use the translation Locale to force subcomponents to only
* use translations in a language supported by the application.
* <p>
- * @param baseLocale Locale providing default behavior for the LocaleContext.
+ * @param formattingLocale Locale providing default behavior for the LocaleContext.
* If not specified, the defualt Locale is used.
* @param translationLocale Locale to use for translations. If not
- * specified, the baseLocale is used.
+ * specified, the formattingLocale is used.
*/
public MutableLocaleContext(
- Locale baseLocale,
+ Locale formattingLocale,
Locale translationLocale
)
{
- super(baseLocale, translationLocale);
+ super(formattingLocale, translationLocale);
}
/**
@@ -84,7 +76,7 @@
*/
public MutableLocaleContext(LocaleContext context)
{
- super(context.getLocale(), context.getTranslationLocale());
+ super(context.getFormattingLocale(), context.getTranslationLocale());
setReadingDirection(((LocaleContextImpl)context).getReadingDirection());
setTimeZone(context.getTimeZone());
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/validator/DateTimeRangeValidator.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/validator/DateTimeRangeValidator.java?view=diff&rev=468616&r1=468615&r2=468616
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/validator/DateTimeRangeValidator.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/validator/DateTimeRangeValidator.java Fri Oct 27 19:28:20 2006
@@ -72,9 +72,10 @@
FacesContext context,
UIComponent component)
{
-
- String maxStr = Long.toString(getMaximum().getTime());
- String minStr = Long.toString(getMinimum().getTime());
+ Date max = getMaximum();
+ Date min = getMinimum();
+ String maxStr = (max == null) ? null : Long.toString(max.getTime());
+ String minStr = (min == null) ? null : Long.toString(min.getTime());
return ConverterUtils.getClientValidation(context, component,
MAXIMUM_MESSAGE_ID,
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/webapp/ConfigParser.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/webapp/ConfigParser.java?view=diff&rev=468616&r1=468615&r2=468616
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/webapp/ConfigParser.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/webapp/ConfigParser.java Fri Oct 27 19:28:20 2006
@@ -17,6 +17,7 @@
import java.io.InputStream;
import java.io.IOException;
+import java.util.Locale;
import java.util.TimeZone;
import javax.servlet.ServletContext;
@@ -36,9 +37,11 @@
import javax.faces.el.ValueBinding;
-import org.apache.myfaces.trinidadinternal.context.RequestContextBean;
import org.apache.myfaces.trinidad.util.ClassLoaderUtils;
+import org.apache.myfaces.trinidadinternal.context.RequestContextBean;
+import org.apache.myfaces.trinidadinternal.util.nls.LocaleUtils;
+
/**
@@ -195,29 +198,26 @@
{
Object value;
- if ((key == RequestContextBean.NUMBER_GROUPING_SEPARATOR_KEY) ||
- (key == RequestContextBean.DECIMAL_SEPARATOR_KEY))
+ if (key.getType() == Character.class)
{
- value = new Character(_currentText.charAt(0));
+ value = _currentText.charAt(0);
}
- else if (key == RequestContextBean.PAGE_FLOW_SCOPE_LIFETIME_KEY)
+ else if (key.getType() == Integer.class)
{
value = _getIntegerValue(_currentText, qName);
}
- else if (key == RequestContextBean.RIGHT_TO_LEFT_KEY ||
- key == RequestContextBean.DEBUG_OUTPUT_KEY ||
- key == RequestContextBean.CLIENT_VALIDATION_DISABLED_KEY)
+ else if (key.getType() == Boolean.class)
{
value = ("true".equalsIgnoreCase(_currentText)
? Boolean.TRUE : Boolean.FALSE);
}
- else if (key == RequestContextBean.TIME_ZONE_KEY)
+ else if (key.getType() == TimeZone.class)
{
value = TimeZone.getTimeZone(_currentText);
}
- else if (key == RequestContextBean.TWO_DIGIT_YEAR_START)
+ else if (key.getType() == Locale.class)
{
- value = _getIntegerValue(_currentText, qName);
+ value = LocaleUtils.getLocaleForIANAString(_currentText);
}
else
{
Modified: incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/MRequestContext.java
URL: http://svn.apache.org/viewvc/incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/MRequestContext.java?view=diff&rev=468616&r1=468615&r2=468616
==============================================================================
--- incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/MRequestContext.java (original)
+++ incubator/adffaces/trunk/trinidad/trinidad-impl/src/test/java/org/apache/myfaces/trinidadinternal/renderkit/MRequestContext.java Fri Oct 27 19:28:20 2006
@@ -17,6 +17,7 @@
import java.awt.Color;
import java.util.List;
+import java.util.Locale;
import java.util.Map;
import java.util.TimeZone;
import javax.faces.component.UIComponent;
@@ -161,6 +162,12 @@
public void setRightToLeft(boolean rtl)
{
_rtl = rtl;
+ }
+
+ @Override
+ public Locale getFormattingLocale()
+ {
+ return null;
}
@Override