From a7c4737c6cc390d8f700e7e89a12b11f38588683 Mon Sep 17 00:00:00 2001 From: Joonas Lehtinen Date: Thu, 14 Jun 2007 13:54:02 +0000 Subject: [PATCH] Label supports now multiple content modes svn changeset:1725/svn branch:trunk --- .../toolkit/terminal/gwt/client/UIDL.java | 15 ++++++++++++++- .../terminal/gwt/client/ui/TkLabel.java | 19 +++++++++++++++---- 2 files changed, 29 insertions(+), 5 deletions(-) diff --git a/src/com/itmill/toolkit/terminal/gwt/client/UIDL.java b/src/com/itmill/toolkit/terminal/gwt/client/UIDL.java index 4c50eabd02..43abb38ff7 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/UIDL.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/UIDL.java @@ -146,7 +146,10 @@ public class UIDL { for (Iterator i = getAttributeNames().iterator(); i.hasNext();) { String name = i.next().toString(); - s += " " + name + "=" + ((JSONObject) json.get(1)).get(name); + s += " " + name + "="; + JSONValue v = ((JSONObject) json.get(1)).get(name); + if (v.isString() != null) s += v; + else s += "\"" + v + "\""; } s += ">\n"; @@ -162,6 +165,16 @@ public class UIDL { return s; } + public String getChildrenAsXML() { + String s=""; + Iterator i = getChildIterator(); + while (i.hasNext()) { + Object c = i.next(); + s += c.toString(); + } + return s; + } + public UIDLBrowser print_r() { return new UIDLBrowser(); } diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/TkLabel.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/TkLabel.java index 9004f6fd18..af89f6eff4 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/TkLabel.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/TkLabel.java @@ -1,11 +1,12 @@ package com.itmill.toolkit.terminal.gwt.client.ui; +import com.google.gwt.user.client.ui.HTML; import com.google.gwt.user.client.ui.Label; import com.itmill.toolkit.terminal.gwt.client.Client; import com.itmill.toolkit.terminal.gwt.client.Paintable; import com.itmill.toolkit.terminal.gwt.client.UIDL; -public class TkLabel extends Label implements Paintable { +public class TkLabel extends HTML implements Paintable { public void updateFromUIDL(UIDL uidl, Client client) { @@ -13,11 +14,21 @@ public class TkLabel extends Label implements Paintable { return; client.delegateCaptionToParent(this, uidl); - try { + String mode = uidl.getStringAttribute("mode"); + if (mode == null || "text".equals(mode)) setText(uidl.getChildString(0)); - } catch (Exception e) { + else if ("pre".equals(mode)) { + setHTML(uidl.getChildrenAsXML()); + } else if ("uidl".equals(mode)) { + setHTML(uidl.getChildrenAsXML()); + } else if ("xhtml".equals(mode)) { + setHTML(uidl.getChildUIDL(0).getChildUIDL(0).getChildString(0)); + } else if ("xml".equals(mode)) { + setHTML(uidl.getChildUIDL(0).getChildString(0)); + } else if ("raw".equals(mode)) { + setHTML(uidl.getChildUIDL(0).getChildString(0)); + } else { setText(""); - } } } -- 2.39.5