]> source.dussan.org Git - vaadin-framework.git/commitdiff
Fix: setting a new source for TYPE_BROWSER Embedded component doesn't replace the...
authorJouni Koivuviita <jouni.koivuviita@itmill.com>
Tue, 1 Apr 2008 11:03:10 +0000 (11:03 +0000)
committerJouni Koivuviita <jouni.koivuviita@itmill.com>
Tue, 1 Apr 2008 11:03:10 +0000 (11:03 +0000)
svn changeset:4106/svn branch:trunk

src/com/itmill/toolkit/terminal/gwt/client/ui/IEmbedded.java

index 1efdc41f90da34dc094007de7e216330770268e7..09c1a2ee87e4144761ba354ff11a5c094f87542d 100644 (file)
@@ -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("<img src=\"" + getSrc(uidl, client) + "\"/>");
             } else if (type.equals("browser")) {
-                setHTML("<iframe width=\"100%\" height=\"100%\" frameborder=\"0\" src=\""
-                        + getSrc(uidl, client) + "\"></iframe>");
+                if (browserElement == null) {
+                    setHTML("<iframe width=\"100%\" height=\"100%\" frameborder=\"0\" src=\""
+                            + getSrc(uidl, client) + "\"></iframe>");
+                    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