Package ca.nanometrics.gflot.client.util

Source Code of ca.nanometrics.gflot.client.util.JavaScriptInjector

package ca.nanometrics.gflot.client.util;

import com.google.gwt.dom.client.Document;
import com.google.gwt.dom.client.HeadElement;
import com.google.gwt.dom.client.ScriptElement;
import com.google.gwt.dom.client.Element;

/**
* Wrapper around functionality used to inject external Javascript code into your application.
*
* @author Simon Pamies
*/
public class JavaScriptInjector
{

    private static HeadElement head;

    public static void inject( String javascript )
    {
        HeadElement head = getHead();
        ScriptElement element = createScriptElement();
        element.setText( javascript );
        head.appendChild( element );
    }

    private static ScriptElement createScriptElement()
    {
        ScriptElement script = Document.get().createScriptElement();
        script.setAttribute( "language", "javascript" );
        return script;
    }

    private static HeadElement getHead()
    {
        if ( head == null )
        {
            Element element = Document.get().getElementsByTagName( "head" ).getItem( 0 );
            assert element != null : "HTML Head element required";
            HeadElement head = HeadElement.as( element );
            JavaScriptInjector.head = head;
        }
        return JavaScriptInjector.head;
    }

}
TOP

Related Classes of ca.nanometrics.gflot.client.util.JavaScriptInjector

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.