diff options
author | Stephan Leicht | 2012-01-10 18:20:43 +0000 |
---|---|---|
committer | Stephan Leicht | 2012-01-10 18:20:43 +0000 |
commit | f6a6eff23b8505734467db23cd5a279b9a495fe5 (patch) | |
tree | bb8f62bab3180f5ec901d1f83483704c2cc370da | |
parent | b09e63bc387d6d888d7ed2b1b9924b45d32f0c19 (diff) | |
download | org.eclipse.scout.rt-f6a6eff23b8505734467db23cd5a279b9a495fe5.tar.gz org.eclipse.scout.rt-f6a6eff23b8505734467db23cd5a279b9a495fe5.tar.xz org.eclipse.scout.rt-f6a6eff23b8505734467db23cd5a279b9a495fe5.zip |
get locale from http request
3 files changed, 26 insertions, 0 deletions
diff --git a/org.eclipse.scout.rt.ui.rap.core/src/org/eclipse/scout/rt/ui/rap/core/util/AbstractRwtUtility.java b/org.eclipse.scout.rt.ui.rap.core/src/org/eclipse/scout/rt/ui/rap/core/util/AbstractRwtUtility.java index f6f2d650be..d9ffeb23a6 100644 --- a/org.eclipse.scout.rt.ui.rap.core/src/org/eclipse/scout/rt/ui/rap/core/util/AbstractRwtUtility.java +++ b/org.eclipse.scout.rt.ui.rap.core/src/org/eclipse/scout/rt/ui/rap/core/util/AbstractRwtUtility.java @@ -81,6 +81,7 @@ public abstract class AbstractRwtUtility { String userAgent = request.getHeader("User-Agent");
info = createBrowserInfo(userAgent);
+ info.setLocale(request.getLocale());
if (userAgent.indexOf("Windows") != -1
|| userAgent.indexOf("Win32") != -1
diff --git a/org.eclipse.scout.rt.ui.rap.core/src/org/eclipse/scout/rt/ui/rap/core/util/BrowserInfo.java b/org.eclipse.scout.rt.ui.rap.core/src/org/eclipse/scout/rt/ui/rap/core/util/BrowserInfo.java index 5ae3ee89b0..365bf53fc2 100644 --- a/org.eclipse.scout.rt.ui.rap.core/src/org/eclipse/scout/rt/ui/rap/core/util/BrowserInfo.java +++ b/org.eclipse.scout.rt.ui.rap.core/src/org/eclipse/scout/rt/ui/rap/core/util/BrowserInfo.java @@ -10,6 +10,8 @@ *******************************************************************************/
package org.eclipse.scout.rt.ui.rap.core.util;
+import java.util.Locale;
+
import org.osgi.framework.Version;
public class BrowserInfo {
@@ -38,6 +40,7 @@ public class BrowserInfo { private boolean m_isTablet = false;
private System m_system;
+ private Locale m_locale = null;
BrowserInfo(Type type, Version version) {
this(type, version, System.UNKNOWN);
@@ -109,6 +112,14 @@ public class BrowserInfo { m_system = system;
}
+ public Locale getLocale() {
+ return m_locale;
+ }
+
+ public void setLocale(Locale locale) {
+ m_locale = locale;
+ }
+
public boolean isInternetExplorer() {
return m_type == Type.IE;
}
diff --git a/org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/AbstractRwtEnvironment.java b/org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/AbstractRwtEnvironment.java index 83234a5ba3..becae251c4 100644 --- a/org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/AbstractRwtEnvironment.java +++ b/org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/AbstractRwtEnvironment.java @@ -18,6 +18,7 @@ import java.util.ArrayList; import java.util.Collection;
import java.util.HashMap;
import java.util.List;
+import java.util.Locale;
import java.util.Random;
import java.util.UUID;
import java.util.regex.Matcher;
@@ -34,6 +35,7 @@ import org.eclipse.rwt.widgets.ExternalBrowser; import org.eclipse.scout.commons.EventListenerList;
import org.eclipse.scout.commons.HTMLUtility;
import org.eclipse.scout.commons.HTMLUtility.DefaultFont;
+import org.eclipse.scout.commons.LocaleThreadLocal;
import org.eclipse.scout.commons.StringUtility;
import org.eclipse.scout.commons.exception.IProcessingStatus;
import org.eclipse.scout.commons.holders.BooleanHolder;
@@ -45,6 +47,7 @@ import org.eclipse.scout.rt.client.IClientSession; import org.eclipse.scout.rt.client.busy.IBusyManagerService;
import org.eclipse.scout.rt.client.services.common.exceptionhandler.ErrorHandler;
import org.eclipse.scout.rt.client.services.common.session.IClientSessionRegistryService;
+import org.eclipse.scout.rt.client.ui.ClientUIPreferences;
import org.eclipse.scout.rt.client.ui.action.keystroke.IKeyStroke;
import org.eclipse.scout.rt.client.ui.basic.filechooser.IFileChooser;
import org.eclipse.scout.rt.client.ui.desktop.DesktopEvent;
@@ -296,6 +299,7 @@ public abstract class AbstractRwtEnvironment implements IRwtEnvironment { if (getSubject() == null) {
throw new SecurityException("/rap request is not authenticated with a Subject");
}
+ initLocale();
final BooleanHolder newSession = new BooleanHolder(true);
IClientSession tempClientSession = (IClientSession) RWT.getRequest().getSession().getAttribute(IClientSession.class.getName());
@@ -1267,6 +1271,16 @@ public abstract class AbstractRwtEnvironment implements IRwtEnvironment { }
}
+ protected void initLocale() {
+ Locale locale = ClientUIPreferences.getInstance().getLocale();
+ if (locale == null) {
+ locale = RwtUtility.getBrowserInfo().getLocale();
+ }
+ if (locale != null) {
+ LocaleThreadLocal.set(locale);
+ }
+ }
+
protected void handleScoutPrintInRwt(DesktopEvent e) {
WidgetPrinter wp = new WidgetPrinter(getParentShellIgnoringPopups(SWT.SYSTEM_MODAL | SWT.APPLICATION_MODAL | SWT.MODELESS));
try {
|