Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephan Leicht2012-01-10 18:20:43 +0000
committerStephan Leicht2012-01-10 18:20:43 +0000
commitf6a6eff23b8505734467db23cd5a279b9a495fe5 (patch)
treebb8f62bab3180f5ec901d1f83483704c2cc370da
parentb09e63bc387d6d888d7ed2b1b9924b45d32f0c19 (diff)
downloadorg.eclipse.scout.rt-f6a6eff23b8505734467db23cd5a279b9a495fe5.tar.gz
org.eclipse.scout.rt-f6a6eff23b8505734467db23cd5a279b9a495fe5.tar.xz
org.eclipse.scout.rt-f6a6eff23b8505734467db23cd5a279b9a495fe5.zip
get locale from http request
-rw-r--r--org.eclipse.scout.rt.ui.rap.core/src/org/eclipse/scout/rt/ui/rap/core/util/AbstractRwtUtility.java1
-rw-r--r--org.eclipse.scout.rt.ui.rap.core/src/org/eclipse/scout/rt/ui/rap/core/util/BrowserInfo.java11
-rw-r--r--org.eclipse.scout.rt.ui.rap/src/org/eclipse/scout/rt/ui/rap/AbstractRwtEnvironment.java14
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 {

Back to the top