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;
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 + "'");
"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