package org.danvk; import com.google.gwt.core.client.GWT; import com.google.gwt.dom.client.Document; import com.google.gwt.dom.client.ScriptElement; import com.google.gwt.resources.client.ClientBundle; import com.google.gwt.resources.client.TextResource; /** * Methods for installing Dygraphs source in a GWT document. * * @author flooey@google.com (Adam Vartanian) */ public class Dygraphs { // Protected because the GWT compiler has to generate a subclass. protected interface Resources extends ClientBundle { @Source("org/danvk/dygraph-combined.js") TextResource dygraphs(); } private static final Resources RESOURCES = GWT.create(Resources.class); private static boolean installed = false; /** * Install the Dygraphs JavaScript source into the current document. This * method is idempotent. */ public static synchronized void install() { if (!installed) { ScriptElement e = Document.get().createScriptElement(); e.setText(RESOURCES.dygraphs().getText()); Document.get().getBody().appendChild(e); installed = true; } } // Prevent construction private Dygraphs() { } }