List of usage examples for com.google.gwt.dom.client ObjectElement setData
public void setData(@IsTrustedResourceUri String data)
From source file:com.vaadin.client.ui.embedded.EmbeddedConnector.java
License:Apache License
@Override public void updateFromUIDL(UIDL uidl, ApplicationConnection client) { if (!isRealUpdate(uidl)) { return;//from w w w.j a v a2s. c o m } // Save details getWidget().client = client; boolean clearBrowserElement = true; clickEventHandler.handleEventHandlerRegistration(); if (uidl.hasAttribute("type")) { // remove old style name related to type if (getWidget().type != null) { getWidget().removeStyleName(VEmbedded.CLASSNAME + "-" + getWidget().type); } // remove old style name related to mime type if (getWidget().mimetype != null) { getWidget().removeStyleName(VEmbedded.CLASSNAME + "-" + getWidget().mimetype); } getWidget().type = uidl.getStringAttribute("type"); if (getWidget().type.equals("image")) { getWidget().addStyleName(VEmbedded.CLASSNAME + "-image"); Element el = null; boolean created = false; NodeList<Node> nodes = getWidget().getElement().getChildNodes(); if (nodes != null && nodes.getLength() == 1) { Node n = nodes.getItem(0); if (n.getNodeType() == Node.ELEMENT_NODE) { Element e = (Element) n; if (e.getTagName().equals("IMG")) { el = e; } } } if (el == null) { getWidget().setHTML(""); el = DOM.createImg(); created = true; DOM.sinkEvents(el, Event.ONLOAD); } // Set attributes Style style = el.getStyle(); style.setProperty("width", getState().width); style.setProperty("height", getState().height); resourceElement = el; objectElement = null; setResourceUrl(getResourceUrl("src")); if (uidl.hasAttribute(EmbeddedConstants.ALTERNATE_TEXT)) { el.setPropertyString(EmbeddedConstants.ALTERNATE_TEXT, uidl.getStringAttribute(EmbeddedConstants.ALTERNATE_TEXT)); } if (created) { // insert in dom late getWidget().getElement().appendChild(el); } /* * Sink tooltip events so tooltip is displayed when hovering the * image. */ getWidget().sinkEvents(VTooltip.TOOLTIP_EVENTS); } else if (getWidget().type.equals("browser")) { getWidget().addStyleName(VEmbedded.CLASSNAME + "-browser"); if (getWidget().browserElement == null) { getWidget().setHTML("<iframe width=\"100%\" height=\"100%\" frameborder=\"0\"" + " allowTransparency=\"true\" src=\"\"" + " name=\"" + uidl.getId() + "\"></iframe>"); getWidget().browserElement = DOM.getFirstChild(getWidget().getElement()); } resourceElement = getWidget().browserElement; objectElement = null; setResourceUrl(getResourceUrl("src")); clearBrowserElement = false; } else { VConsole.error("Unknown Embedded type '" + getWidget().type + "'"); } } else if (uidl.hasAttribute("mimetype")) { // remove old style name related to type if (getWidget().type != null) { getWidget().removeStyleName(VEmbedded.CLASSNAME + "-" + getWidget().type); } // remove old style name related to mime type if (getWidget().mimetype != null) { getWidget().removeStyleName(VEmbedded.CLASSNAME + "-" + getWidget().mimetype); } final String mime = uidl.getStringAttribute("mimetype"); if (mime.equals("application/x-shockwave-flash")) { getWidget().mimetype = "flash"; // Handle embedding of Flash getWidget().addStyleName(VEmbedded.CLASSNAME + "-flash"); getWidget().setHTML(getWidget().createFlashEmbed(uidl)); } else if (mime.equals("image/svg+xml")) { getWidget().mimetype = "svg"; getWidget().addStyleName(VEmbedded.CLASSNAME + "-svg"); String data; Map<String, String> parameters = VEmbedded.getParameters(uidl); ObjectElement obj = Document.get().createObjectElement(); resourceElement = null; if (parameters.get("data") == null) { objectElement = obj; data = getResourceUrl("src"); setResourceUrl(data); } else { objectElement = null; data = "data:image/svg+xml," + parameters.get("data"); obj.setData(data); } getWidget().setHTML(""); obj.setType(mime); if (!isUndefinedWidth()) { obj.getStyle().setProperty("width", "100%"); } if (!isUndefinedHeight()) { obj.getStyle().setProperty("height", "100%"); } if (uidl.hasAttribute("classid")) { obj.setAttribute("classid", uidl.getStringAttribute("classid")); } if (uidl.hasAttribute("codebase")) { obj.setAttribute("codebase", uidl.getStringAttribute("codebase")); } if (uidl.hasAttribute("codetype")) { obj.setAttribute("codetype", uidl.getStringAttribute("codetype")); } if (uidl.hasAttribute("archive")) { obj.setAttribute("archive", uidl.getStringAttribute("archive")); } if (uidl.hasAttribute("standby")) { obj.setAttribute("standby", uidl.getStringAttribute("standby")); } getWidget().getElement().appendChild(obj); if (uidl.hasAttribute(EmbeddedConstants.ALTERNATE_TEXT)) { obj.setInnerText(uidl.getStringAttribute(EmbeddedConstants.ALTERNATE_TEXT)); } } else { VConsole.error("Unknown Embedded mimetype '" + mime + "'"); } } else { VConsole.error("Unknown Embedded; no type or mimetype attribute"); } if (clearBrowserElement) { getWidget().browserElement = null; } }
From source file:com.vaadin.terminal.gwt.client.ui.VEmbedded.java
License:Open Source License
public void updateFromUIDL(UIDL uidl, ApplicationConnection client) { if (client.updateComponent(this, uidl, true)) { return;//from ww w.ja v a 2 s . c o m } this.client = client; boolean clearBrowserElement = true; clickEventHandler.handleEventHandlerRegistration(client); if (uidl.hasAttribute("type")) { type = uidl.getStringAttribute("type"); if (type.equals("image")) { addStyleName(CLASSNAME + "-image"); Element el = null; boolean created = false; NodeList<Node> nodes = getElement().getChildNodes(); if (nodes != null && nodes.getLength() == 1) { Node n = nodes.getItem(0); if (n.getNodeType() == Node.ELEMENT_NODE) { Element e = (Element) n; if (e.getTagName().equals("IMG")) { el = e; } } } if (el == null) { setHTML(""); el = DOM.createImg(); created = true; DOM.sinkEvents(el, Event.ONLOAD); } // Set attributes Style style = el.getStyle(); String w = uidl.getStringAttribute("width"); if (w != null) { style.setProperty("width", w); } else { style.setProperty("width", ""); } String h = uidl.getStringAttribute("height"); if (h != null) { style.setProperty("height", h); } else { style.setProperty("height", ""); } DOM.setElementProperty(el, "src", getSrc(uidl, client)); if (created) { // insert in dom late getElement().appendChild(el); } /* * Sink tooltip events so tooltip is displayed when hovering the * image. */ sinkEvents(VTooltip.TOOLTIP_EVENTS); } else if (type.equals("browser")) { addStyleName(CLASSNAME + "-browser"); if (browserElement == null) { setHTML("<iframe width=\"100%\" height=\"100%\" frameborder=\"0\"" + " allowTransparency=\"true\" src=\"\"" + " name=\"" + uidl.getId() + "\"></iframe>"); browserElement = DOM.getFirstChild(getElement()); } DOM.setElementAttribute(browserElement, "src", getSrc(uidl, client)); clearBrowserElement = false; } else { VConsole.log("Unknown Embedded type '" + type + "'"); } } else if (uidl.hasAttribute("mimetype")) { final String mime = uidl.getStringAttribute("mimetype"); if (mime.equals("application/x-shockwave-flash")) { // Handle embedding of Flash addStyleName(CLASSNAME + "-flash"); setHTML(createFlashEmbed(uidl)); } else if (mime.equals("image/svg+xml")) { addStyleName(CLASSNAME + "-svg"); String data; Map<String, String> parameters = getParameters(uidl); if (parameters.get("data") == null) { data = getSrc(uidl, client); } else { data = "data:image/svg+xml," + parameters.get("data"); } setHTML(""); ObjectElement obj = Document.get().createObjectElement(); obj.setType(mime); obj.setData(data); if (width != null) { obj.getStyle().setProperty("width", "100%"); } if (height != null) { obj.getStyle().setProperty("height", "100%"); } if (uidl.hasAttribute("classid")) { obj.setAttribute("classid", uidl.getStringAttribute("classid")); } if (uidl.hasAttribute("codebase")) { obj.setAttribute("codebase", uidl.getStringAttribute("codebase")); } if (uidl.hasAttribute("codetype")) { obj.setAttribute("codetype", uidl.getStringAttribute("codetype")); } if (uidl.hasAttribute("archive")) { obj.setAttribute("archive", uidl.getStringAttribute("archive")); } if (uidl.hasAttribute("standby")) { obj.setAttribute("standby", uidl.getStringAttribute("standby")); } getElement().appendChild(obj); } else { VConsole.log("Unknown Embedded mimetype '" + mime + "'"); } } else { VConsole.log("Unknown Embedded; no type or mimetype attribute"); } if (clearBrowserElement) { browserElement = null; } }