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

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

Introduction

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

Prototype

@Override
    public Style getStyle() 

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

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   w w  w  .  j a  va  2s  .  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;
    }
}