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

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

Introduction

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

Prototype

@Override
    public void setInnerText(String text) 

Source Link

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  ww w  .  j a v a  2s.  c om
    }

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