From: Jouni Koivuviita Date: Tue, 1 Apr 2008 11:03:10 +0000 (+0000) Subject: Fix: setting a new source for TYPE_BROWSER Embedded component doesn't replace the... X-Git-Tag: 6.7.0.beta1~4919 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=ede743dbbef26b6d2d795034e5f0a2cfe86837b6;p=vaadin-framework.git Fix: setting a new source for TYPE_BROWSER Embedded component doesn't replace the original IFRAME-element, it only changes the src-attribute value. This way the browser can keep history information of the url changes. svn changeset:4106/svn branch:trunk --- diff --git a/src/com/itmill/toolkit/terminal/gwt/client/ui/IEmbedded.java b/src/com/itmill/toolkit/terminal/gwt/client/ui/IEmbedded.java index 1efdc41f90..09c1a2ee87 100644 --- a/src/com/itmill/toolkit/terminal/gwt/client/ui/IEmbedded.java +++ b/src/com/itmill/toolkit/terminal/gwt/client/ui/IEmbedded.java @@ -4,6 +4,8 @@ package com.itmill.toolkit.terminal.gwt.client.ui; +import com.google.gwt.user.client.DOM; +import com.google.gwt.user.client.Element; import com.google.gwt.user.client.ui.HTML; import com.itmill.toolkit.terminal.gwt.client.ApplicationConnection; import com.itmill.toolkit.terminal.gwt.client.Paintable; @@ -13,19 +15,29 @@ public class IEmbedded extends HTML implements Paintable { private String heigth; private String width; + private Element browserElement; public void updateFromUIDL(UIDL uidl, ApplicationConnection client) { if (client.updateComponent(this, uidl, true)) { return; } + boolean clearBrowserElement = true; + if (uidl.hasAttribute("type")) { final String type = uidl.getStringAttribute("type"); if (type.equals("image")) { setHTML(""); } else if (type.equals("browser")) { - setHTML(""); + if (browserElement == null) { + setHTML(""); + browserElement = DOM.getFirstChild(getElement()); + } else { + DOM.setElementAttribute(browserElement, "src", getSrc(uidl, + client)); + } + clearBrowserElement = false; } else { ApplicationConnection.getConsole().log( "Unknown Embedded type '" + type + "'"); @@ -47,10 +59,14 @@ public class IEmbedded extends HTML implements Paintable { "Unknown Embedded; no type or mimetype attribute"); } + if (clearBrowserElement) { + browserElement = null; + } + } /** - * Helper to return translated src attribute from embeddeds uidl + * Helper to return translated src-attribute from embedded's UIDL * * @param uidl * @param client