Example usage for com.google.gwt.dom.client Document createScriptElement

List of usage examples for com.google.gwt.dom.client Document createScriptElement

Introduction

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

Prototype

public ScriptElement createScriptElement(String source) 

Source Link

Usage

From source file:org.rstudio.core.client.patch.DiffMatchPatch.java

License:Open Source License

private static void injectJavascript(String source) {
    Document doc = Document.get();
    HeadElement head = (HeadElement) doc.getElementsByTagName("head").getItem(0);
    if (head == null) {
        head = doc.createHeadElement();/*  w  w  w. ja v  a  2 s . c  o  m*/
        doc.insertBefore(head, doc.getBody());
    }
    ScriptElement script = doc.createScriptElement(source);
    script.setType("text/javascript");
    head.appendChild(script);
}

From source file:org.rstudio.studio.client.workbench.prefs.views.AceEditorPreview.java

License:Open Source License

@Override
protected void onFrameLoaded() {
    isFrameLoaded_ = true;//from  w  w w. j  a  v a2s .c o m
    final Document doc = getDocument();

    // NOTE: There is an interesting 'feature' in Firefox whereby an
    // initialized IFrame will report that it has successfully initialized the
    // window / underlying document (readyState is 'complete') but, in fact,
    // there is still some initialization left to occur and any changes made
    // before complete initialization will cause it to be swept out from under
    // our feet. To work around this, we double-check that the document we are
    // working with is the _same document_ after each JavaScript load
    // iteration.
    new ExternalJavaScriptLoader(getDocument(), AceResources.INSTANCE.acejs().getSafeUri().asString())
            .addCallback(new Callback() {
                public void onLoaded() {
                    if (getDocument() != doc) {
                        onFrameLoaded();
                        return;
                    }

                    new ExternalJavaScriptLoader(getDocument(),
                            AceResources.INSTANCE.acesupportjs().getSafeUri().asString())
                                    .addCallback(new Callback() {
                                        public void onLoaded() {

                                            if (getDocument() != doc) {
                                                onFrameLoaded();
                                                return;
                                            }

                                            final Document doc = getDocument();
                                            final BodyElement body = doc.getBody();

                                            if (themeUrl_ != null)
                                                setTheme(themeUrl_);
                                            if (fontSize_ != null)
                                                setFontSize(fontSize_);
                                            if (zoomLevel_ != null)
                                                setZoomLevel(zoomLevel_);

                                            body.getStyle().setMargin(0, Unit.PX);
                                            body.getStyle().setBackgroundColor("white");

                                            StyleElement style = doc.createStyleElement();
                                            style.setType("text/css");
                                            style.setInnerText(
                                                    ".ace_editor {\n" + "border: none !important;\n" + "}");
                                            setFont(ThemeFonts.getFixedWidthFont());
                                            body.appendChild(style);

                                            DivElement div = doc.createDivElement();
                                            div.setId("editor");
                                            div.getStyle().setWidth(100, Unit.PCT);
                                            div.getStyle().setHeight(100, Unit.PCT);
                                            div.setInnerText(code_);
                                            body.appendChild(div);

                                            FontSizer.injectStylesIntoDocument(doc);
                                            FontSizer.applyNormalFontSize(div);

                                            body.appendChild(doc.createScriptElement(
                                                    "var event = require('ace/lib/event');\n"
                                                            + "var Editor = require('ace/editor').Editor;\n"
                                                            + "var Renderer = require('ace/virtual_renderer').VirtualRenderer;\n"
                                                            + "var dom = require('ace/lib/dom');\n"
                                                            + "var container = document.getElementById('editor');\n"
                                                            + "var value = dom.getInnerText(container);\n"
                                                            + "container.innerHTML = '';\n"
                                                            + "var session = ace.createEditSession(value);\n"
                                                            + "var editor = new Editor(new Renderer(container, {}));\n"
                                                            + "editor.setSession(session);\n"
                                                            + "var env = {document: session, editor: editor, onResize: editor.resize.bind(editor, null)};\n"
                                                            + "event.addListener(window, 'resize', env.onResize);\n"
                                                            + "editor.on('destory', function() { event.removeListener(window, 'resize', env.onResize); });\n"
                                                            + "editor.container.env = editor.env = env;\n"
                                                            + "editor.renderer.setHScrollBarAlwaysVisible(false);\n"
                                                            + "editor.setHighlightActiveLine(false);\n"
                                                            + "editor.setReadOnly(true);\n"
                                                            + "editor.renderer.setShowGutter(false);\n"
                                                            + "editor.renderer.setDisplayIndentGuides(false);\n"
                                                            + "var RMode = require('mode/r').Mode;\n"
                                                            + "editor.getSession().setMode(new RMode(false, editor.getSession()));"));
                                        }
                                    });
                }
            });
}

From source file:org.vectomatic.dom.svg.impl.DOMHelperImplIE.java

License:Open Source License

public DOMHelperImplIE() {
    // Inject the xpath.js script in the iframe document (not
    // in the main document, otherwise the added code will not be
    // seen by the GWT code which lives in the iframe document)
    Document doc = getIFrameDocument();
    ScriptElement scriptElem = doc.createScriptElement(Resource.INSTANCE.xpath().getText());
    doc.getBody().appendChild(scriptElem);
    initXPath();/* w  w  w .j  a v  a2 s.c  o m*/
}

From source file:org.waveprotocol.wave.client.doodad.experimental.htmltemplate.CajolerFacade.java

License:Apache License

private static IFrameElement createCajaFrame() {
    IFrameElement cajaFrame = Document.get().createIFrameElement();
    cajaFrame.setFrameBorder(0);//from   ww w  .j a v a 2  s  .c om
    cajaFrame.setAttribute("width", "0");
    cajaFrame.setAttribute("height", "0");
    Document.get().getBody().appendChild(cajaFrame);
    Document cajaFrameDoc = cajaFrame.getContentDocument();
    cajaFrameDoc.getBody().appendChild(cajaFrameDoc.createScriptElement(RESOURCES.supportingJs().getText()));
    cajaFrameDoc.getBody().appendChild(cajaFrameDoc.createScriptElement(RESOURCES.taming().getText()));
    return cajaFrame;
}

From source file:org.waveprotocol.wave.client.doodad.experimental.htmltemplate.CajolerFacade.java

License:Apache License

private void appendToDocument(HTML target, PluginContext pluginContext, CajolerResponse response) {
    DivElement domitaVdocElement = Document.get().createDivElement();
    domitaVdocElement.setClassName("innerHull");

    target.getElement().setInnerHTML("");
    target.getElement().setClassName("outerHull");
    target.getElement().appendChild(domitaVdocElement);

    initializeDoodadEnvironment(cajaFrame, domitaVdocElement, pluginContext.getJSOInterface());

    // Render HTML
    domitaVdocElement.setInnerHTML(response.getHtml());

    // Inject JS//ww  w  .  j av  a  2s.  c o  m
    Document cajaFrameDoc = cajaFrame.getContentDocument();
    cajaFrameDoc.getBody().appendChild(cajaFrameDoc.createScriptElement(response.getJs()));
}