BF[2723605] date fields shown only in English format ("mm/dd/yyyy")
This commit is contained in:
parent
648979a759
commit
c020c9808c
|
@ -23,6 +23,7 @@ import java.util.Properties;
|
||||||
|
|
||||||
import javax.servlet.http.HttpSession;
|
import javax.servlet.http.HttpSession;
|
||||||
|
|
||||||
|
import org.adempiere.webui.apps.AEnv;
|
||||||
import org.adempiere.webui.desktop.DefaultDesktop;
|
import org.adempiere.webui.desktop.DefaultDesktop;
|
||||||
import org.adempiere.webui.desktop.IDesktop;
|
import org.adempiere.webui.desktop.IDesktop;
|
||||||
import org.adempiere.webui.session.SessionManager;
|
import org.adempiere.webui.session.SessionManager;
|
||||||
|
@ -121,13 +122,28 @@ public class AdempiereWebUI extends Window implements EventListener, IWebClient
|
||||||
|
|
||||||
Properties ctx = Env.getCtx();
|
Properties ctx = Env.getCtx();
|
||||||
String langLogin = Env.getContext(ctx, Env.LANGUAGE);
|
String langLogin = Env.getContext(ctx, Env.LANGUAGE);
|
||||||
if (langLogin == null || langLogin.length() <= 0) {
|
if (langLogin == null || langLogin.length() <= 0)
|
||||||
|
{
|
||||||
langLogin = langSession;
|
langLogin = langSession;
|
||||||
Env.setContext(ctx, Env.LANGUAGE, langSession);
|
Env.setContext(ctx, Env.LANGUAGE, langSession);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Validate language
|
// Validate language
|
||||||
Language language = Language.getLanguage(langLogin);
|
Language language = Language.getLanguage(langLogin);
|
||||||
|
String locale = Env.getContext(ctx, AEnv.LOCALE);
|
||||||
|
if (locale != null && locale.length() > 0 && !language.getLocale().toString().equals(locale))
|
||||||
|
{
|
||||||
|
String adLanguage = language.getAD_Language();
|
||||||
|
Language tmp = Language.getLanguage(locale);
|
||||||
|
language = new Language(tmp.getName(), adLanguage, tmp.getLocale(), tmp.isDecimalPoint(),
|
||||||
|
tmp.getDateFormat().toPattern(), tmp.getMediaSize());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Language tmp = language;
|
||||||
|
language = new Language(tmp.getName(), tmp.getAD_Language(), tmp.getLocale(), tmp.isDecimalPoint(),
|
||||||
|
tmp.getDateFormat().toPattern(), tmp.getMediaSize());
|
||||||
|
}
|
||||||
Env.verifyLanguage(ctx, language);
|
Env.verifyLanguage(ctx, language);
|
||||||
Env.setContext(ctx, Env.LANGUAGE, language.getAD_Language()); //Bug
|
Env.setContext(ctx, Env.LANGUAGE, language.getAD_Language()); //Bug
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,7 @@ import java.sql.SQLException;
|
||||||
import java.util.Enumeration;
|
import java.util.Enumeration;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
|
@ -49,6 +50,7 @@ import org.compiere.util.CLogger;
|
||||||
import org.compiere.util.DB;
|
import org.compiere.util.DB;
|
||||||
import org.compiere.util.Env;
|
import org.compiere.util.Env;
|
||||||
import org.compiere.util.Ini;
|
import org.compiere.util.Ini;
|
||||||
|
import org.compiere.util.Language;
|
||||||
import org.zkoss.web.servlet.Servlets;
|
import org.zkoss.web.servlet.Servlets;
|
||||||
import org.zkoss.zk.ui.Component;
|
import org.zkoss.zk.ui.Component;
|
||||||
import org.zkoss.zk.ui.Execution;
|
import org.zkoss.zk.ui.Execution;
|
||||||
|
@ -62,7 +64,7 @@ import com.lowagie.text.pdf.PdfReader;
|
||||||
import com.lowagie.text.pdf.PdfWriter;
|
import com.lowagie.text.pdf.PdfWriter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Windows Application Environment and utilities
|
* ZK Application Environment and utilities
|
||||||
*
|
*
|
||||||
* @author Jorg Janke
|
* @author Jorg Janke
|
||||||
* @version $Id: AEnv.java,v 1.2 2006/07/30 00:51:27 jjanke Exp $
|
* @version $Id: AEnv.java,v 1.2 2006/07/30 00:51:27 jjanke Exp $
|
||||||
|
@ -71,6 +73,8 @@ import com.lowagie.text.pdf.PdfWriter;
|
||||||
*/
|
*/
|
||||||
public final class AEnv
|
public final class AEnv
|
||||||
{
|
{
|
||||||
|
public static final String LOCALE = "#Locale";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Show in the center of the screen.
|
* Show in the center of the screen.
|
||||||
* (pack, set location and set visibility)
|
* (pack, set location and set visibility)
|
||||||
|
@ -680,4 +684,42 @@ public final class AEnv
|
||||||
}
|
}
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
} // getHeader
|
} // getHeader
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param ctx
|
||||||
|
* @return Language
|
||||||
|
*/
|
||||||
|
public static Language getLanguage(Properties ctx) {
|
||||||
|
Locale locale = getLocale(ctx);
|
||||||
|
Language language = Env.getLanguage(ctx);
|
||||||
|
if (!language.getLocale().equals(locale)) {
|
||||||
|
Language tmp = Language.getLanguage(locale.toString());
|
||||||
|
String adLanguage = language.getAD_Language();
|
||||||
|
language = new Language(tmp.getName(), adLanguage, tmp.getLocale(), tmp.isDecimalPoint(),
|
||||||
|
tmp.getDateFormat().toPattern(), tmp.getMediaSize());
|
||||||
|
}
|
||||||
|
return language;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param ctx
|
||||||
|
* @return Locale
|
||||||
|
*/
|
||||||
|
public static Locale getLocale(Properties ctx) {
|
||||||
|
String value = Env.getContext(ctx, AEnv.LOCALE);
|
||||||
|
Locale locale = null;
|
||||||
|
if (value != null && value.length() > 0)
|
||||||
|
{
|
||||||
|
String[] components = value.split("\\_");
|
||||||
|
String language = components.length > 0 ? components[0] : "";
|
||||||
|
String country = components.length > 1 ? components[1] : "";
|
||||||
|
locale = new Locale(language, country);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
locale = Env.getLanguage(ctx).getLocale();
|
||||||
|
}
|
||||||
|
|
||||||
|
return locale;
|
||||||
|
}
|
||||||
} // AEnv
|
} // AEnv
|
||||||
|
|
|
@ -20,11 +20,13 @@ package org.adempiere.webui.editor;
|
||||||
import java.sql.Timestamp;
|
import java.sql.Timestamp;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
|
import org.adempiere.webui.apps.AEnv;
|
||||||
import org.adempiere.webui.component.Datebox;
|
import org.adempiere.webui.component.Datebox;
|
||||||
import org.adempiere.webui.event.ValueChangeEvent;
|
import org.adempiere.webui.event.ValueChangeEvent;
|
||||||
import org.compiere.model.GridField;
|
import org.compiere.model.GridField;
|
||||||
import org.compiere.util.CLogger;
|
import org.compiere.util.CLogger;
|
||||||
import org.compiere.util.DisplayType;
|
import org.compiere.util.DisplayType;
|
||||||
|
import org.compiere.util.Env;
|
||||||
import org.zkoss.zk.ui.event.Event;
|
import org.zkoss.zk.ui.event.Event;
|
||||||
import org.zkoss.zk.ui.event.Events;
|
import org.zkoss.zk.ui.event.Events;
|
||||||
|
|
||||||
|
@ -100,7 +102,7 @@ public class WDateEditor extends WEditor
|
||||||
|
|
||||||
private void init()
|
private void init()
|
||||||
{
|
{
|
||||||
getComponent().setFormat(DisplayType.getDateFormat().toPattern());
|
getComponent().setFormat(DisplayType.getDateFormat(AEnv.getLanguage(Env.getCtx())).toPattern());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onEvent(Event event)
|
public void onEvent(Event event)
|
||||||
|
|
|
@ -21,6 +21,7 @@ import java.math.BigDecimal;
|
||||||
import java.text.DecimalFormat;
|
import java.text.DecimalFormat;
|
||||||
|
|
||||||
import org.adempiere.webui.ValuePreference;
|
import org.adempiere.webui.ValuePreference;
|
||||||
|
import org.adempiere.webui.apps.AEnv;
|
||||||
import org.adempiere.webui.component.NumberBox;
|
import org.adempiere.webui.component.NumberBox;
|
||||||
import org.adempiere.webui.event.ContextMenuEvent;
|
import org.adempiere.webui.event.ContextMenuEvent;
|
||||||
import org.adempiere.webui.event.ValueChangeEvent;
|
import org.adempiere.webui.event.ValueChangeEvent;
|
||||||
|
@ -107,7 +108,7 @@ public class WNumberEditor extends WEditor
|
||||||
|
|
||||||
if (!DisplayType.isNumeric(displayType))
|
if (!DisplayType.isNumeric(displayType))
|
||||||
displayType = DisplayType.Number;
|
displayType = DisplayType.Number;
|
||||||
DecimalFormat format = DisplayType.getNumberFormat(displayType, Env.getLanguage(Env.getCtx()));
|
DecimalFormat format = DisplayType.getNumberFormat(displayType, AEnv.getLanguage(Env.getCtx()));
|
||||||
getComponent().getDecimalbox().setFormat(format.toPattern());
|
getComponent().getDecimalbox().setFormat(format.toPattern());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,6 +20,7 @@ package org.adempiere.webui.panel;
|
||||||
import java.util.Properties;
|
import java.util.Properties;
|
||||||
import java.util.ResourceBundle;
|
import java.util.ResourceBundle;
|
||||||
|
|
||||||
|
import org.adempiere.webui.apps.AEnv;
|
||||||
import org.adempiere.webui.component.ConfirmPanel;
|
import org.adempiere.webui.component.ConfirmPanel;
|
||||||
import org.adempiere.webui.component.Grid;
|
import org.adempiere.webui.component.Grid;
|
||||||
import org.adempiere.webui.component.Label;
|
import org.adempiere.webui.component.Label;
|
||||||
|
@ -35,6 +36,7 @@ import org.compiere.util.Env;
|
||||||
import org.compiere.util.KeyNamePair;
|
import org.compiere.util.KeyNamePair;
|
||||||
import org.compiere.util.Language;
|
import org.compiere.util.Language;
|
||||||
import org.compiere.util.Login;
|
import org.compiere.util.Login;
|
||||||
|
import org.zkoss.util.Locales;
|
||||||
import org.zkoss.zk.au.out.AuFocus;
|
import org.zkoss.zk.au.out.AuFocus;
|
||||||
import org.zkoss.zk.ui.Component;
|
import org.zkoss.zk.ui.Component;
|
||||||
import org.zkoss.zk.ui.WrongValueException;
|
import org.zkoss.zk.ui.WrongValueException;
|
||||||
|
@ -218,15 +220,23 @@ public class LoginPanel extends Window implements EventListener
|
||||||
|
|
||||||
private void languageChanged(String langName)
|
private void languageChanged(String langName)
|
||||||
{
|
{
|
||||||
Language language = Language.getLanguage(langName);
|
Language language = findLanguage(langName);
|
||||||
Env.verifyLanguage(ctx, language);
|
|
||||||
Env.setContext(ctx, Env.LANGUAGE, language.getAD_Language());
|
|
||||||
|
|
||||||
res = ResourceBundle.getBundle(RESOURCE, language.getLocale());
|
res = ResourceBundle.getBundle(RESOURCE, language.getLocale());
|
||||||
lblUserId.setValue(res.getString("User"));
|
lblUserId.setValue(res.getString("User"));
|
||||||
lblPassword.setValue(res.getString("Password"));
|
lblPassword.setValue(res.getString("Password"));
|
||||||
lblLanguage.setValue(res.getString("Language"));
|
lblLanguage.setValue(res.getString("Language"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Language findLanguage(String langName) {
|
||||||
|
Language tmp = Language.getLanguage(langName);
|
||||||
|
Language language = new Language(tmp.getName(), tmp.getAD_Language(), tmp.getLocale(), tmp.isDecimalPoint(),
|
||||||
|
tmp.getDateFormat().toPattern(), tmp.getMediaSize());
|
||||||
|
Env.verifyLanguage(ctx, language);
|
||||||
|
Env.setContext(ctx, Env.LANGUAGE, language.getAD_Language());
|
||||||
|
Env.setContext(ctx, AEnv.LOCALE, language.getLocale().toString());
|
||||||
|
return language;
|
||||||
|
}
|
||||||
/**
|
/**
|
||||||
* validates user name and password when logging in
|
* validates user name and password when logging in
|
||||||
*
|
*
|
||||||
|
@ -247,11 +257,12 @@ public class LoginPanel extends Window implements EventListener
|
||||||
langName = (String) lstLanguage.getSelectedItem().getLabel();
|
langName = (String) lstLanguage.getSelectedItem().getLabel();
|
||||||
else
|
else
|
||||||
langName = Language.getBaseLanguage().getName();
|
langName = Language.getBaseLanguage().getName();
|
||||||
Language language = Language.getLanguage(langName);
|
Language language = findLanguage(langName);
|
||||||
Env.verifyLanguage(ctx, language);
|
|
||||||
wndLogin.loginOk(userId, userPassword);
|
wndLogin.loginOk(userId, userPassword);
|
||||||
|
|
||||||
Env.setContext(ctx, UserPreference.LANGUAGE_NAME, language.getName()); // Elaine 2009/02/06
|
Env.setContext(ctx, UserPreference.LANGUAGE_NAME, language.getName()); // Elaine 2009/02/06
|
||||||
|
|
||||||
|
Locales.setThreadLocal(language.getLocale());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,6 +19,7 @@ package org.adempiere.webui.session;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.adempiere.webui.apps.AEnv;
|
||||||
import org.compiere.util.Env;
|
import org.compiere.util.Env;
|
||||||
import org.zkoss.util.Locales;
|
import org.zkoss.util.Locales;
|
||||||
import org.zkoss.zk.ui.Component;
|
import org.zkoss.zk.ui.Component;
|
||||||
|
@ -104,7 +105,7 @@ public class SessionContextListener implements ExecutionInit,
|
||||||
ServerContext.setCurrentInstance(ctx);
|
ServerContext.setCurrentInstance(ctx);
|
||||||
|
|
||||||
// set locale
|
// set locale
|
||||||
Locales.setThreadLocal(Env.getLanguage(ctx).getLocale());
|
Locales.setThreadLocal(AEnv.getLocale(ctx));
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue