From f1871b8525ad36aa66110b4911dd1a2595c9c9a0 Mon Sep 17 00:00:00 2001 From: Artur Signell Date: Mon, 1 Sep 2008 05:23:15 +0000 Subject: [PATCH] Fixes #2022 - UTF-8 is now always used for custom layouts svn changeset:5310/svn branch:trunk --- .../tests-tickets/layouts/Ticket2022.html | 2 ++ .../gwt/server/CommunicationManager.java | 3 +- .../toolkit/tests/tickets/Ticket2022.java | 31 +++++++++++++++++++ src/com/itmill/toolkit/ui/CustomLayout.java | 29 ++++++++--------- 4 files changed, 50 insertions(+), 15 deletions(-) create mode 100644 WebContent/ITMILL/themes/tests-tickets/layouts/Ticket2022.html create mode 100644 src/com/itmill/toolkit/tests/tickets/Ticket2022.java diff --git a/WebContent/ITMILL/themes/tests-tickets/layouts/Ticket2022.html b/WebContent/ITMILL/themes/tests-tickets/layouts/Ticket2022.html new file mode 100644 index 0000000000..430548173d --- /dev/null +++ b/WebContent/ITMILL/themes/tests-tickets/layouts/Ticket2022.html @@ -0,0 +1,2 @@ +
This is an utf-8 string: åäöéèáèë
+The same in ISO-8859-1: åäöéèáèë
diff --git a/src/com/itmill/toolkit/terminal/gwt/server/CommunicationManager.java b/src/com/itmill/toolkit/terminal/gwt/server/CommunicationManager.java index 559dda6e81..f7789fefc9 100644 --- a/src/com/itmill/toolkit/terminal/gwt/server/CommunicationManager.java +++ b/src/com/itmill/toolkit/terminal/gwt/server/CommunicationManager.java @@ -446,7 +446,8 @@ public class CommunicationManager implements Paintable.RepaintRequestListener { final StringBuffer layout = new StringBuffer(); try { - final InputStreamReader r = new InputStreamReader(is); + final InputStreamReader r = new InputStreamReader(is, + "UTF-8"); final char[] buffer = new char[20000]; int charsRead = 0; while ((charsRead = r.read(buffer)) > 0) { diff --git a/src/com/itmill/toolkit/tests/tickets/Ticket2022.java b/src/com/itmill/toolkit/tests/tickets/Ticket2022.java new file mode 100644 index 0000000000..1e133f8b4b --- /dev/null +++ b/src/com/itmill/toolkit/tests/tickets/Ticket2022.java @@ -0,0 +1,31 @@ +package com.itmill.toolkit.tests.tickets; + +import com.itmill.toolkit.Application; +import com.itmill.toolkit.ui.CustomLayout; +import com.itmill.toolkit.ui.Window; + +public class Ticket2022 extends Application { + + public void init() { + Window w = new Window(getClass().getSimpleName()); + setMainWindow(w); + setTheme("tests-tickets"); + CustomLayout l; + + // WebApplicationContext wac = ((WebApplicationContext) getContext()); + // File f = new File(wac.getBaseDirectory().getAbsoluteFile() + // + "/ITMILL/themes/" + getTheme() + "/layouts/Ticket2022.html"); + + l = new CustomLayout("Ticket2022"); + // try { + // l = new CustomLayout(new FileInputStream(f)); + w.setLayout(l); + // } catch (FileNotFoundException e) { + // // TODO Auto-generated catch block + // e.printStackTrace(); + // } catch (IOException e) { + // // TODO Auto-generated catch block + // e.printStackTrace(); + // } + } +} diff --git a/src/com/itmill/toolkit/ui/CustomLayout.java b/src/com/itmill/toolkit/ui/CustomLayout.java index 0cb8851202..06ef2923ea 100644 --- a/src/com/itmill/toolkit/ui/CustomLayout.java +++ b/src/com/itmill/toolkit/ui/CustomLayout.java @@ -57,16 +57,17 @@ public class CustomLayout extends AbstractLayout { * Constructs a custom layout with the template given in the stream. * * @param templateStream - * Stream containing template data. Must be using UTF-8 - * encoding. To use a String as a template use for instance - * new ByteArrayInputStream("