Example usage for com.google.gwt.dom.client ObjectElement setData

List of usage examples for com.google.gwt.dom.client ObjectElement setData

Introduction

In this page you can find the example usage for com.google.gwt.dom.client ObjectElement setData.

Prototype

public void setData(@IsTrustedResourceUri String data) 

Source Link

Document

A URI specifying the location of the object's data.

Usage

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;
    }
}