boot-script/src/main/java/net/java/html/boot/script/Scripts.java
branchenvjs
changeset 700 055a0f3766f5
parent 699 82773e03ff40
child 716 0654466b2273
     1.1 --- a/boot-script/src/main/java/net/java/html/boot/script/Scripts.java	Thu Jun 05 20:27:54 2014 +0200
     1.2 +++ b/boot-script/src/main/java/net/java/html/boot/script/Scripts.java	Thu Jun 05 21:01:56 2014 +0200
     1.3 @@ -44,10 +44,25 @@
     1.4  
     1.5  import java.util.concurrent.Executor;
     1.6  import javax.script.ScriptEngine;
     1.7 +import net.java.html.boot.BrowserBuilder;
     1.8 +import net.java.html.js.JavaScriptBody;
     1.9  import org.apidesign.html.boot.spi.Fn.Presenter;
    1.10  
    1.11  /** Implementations of {@link Presenter}s that delegate
    1.12 - * to Java {@link ScriptEngine scripting} API.
    1.13 + * to Java {@link ScriptEngine scripting} API. Initialize your presenter
    1.14 + * like this:
    1.15 + * 
    1.16 + * <pre>
    1.17 + * 
    1.18 + * {@link Runnable} <em>run</em> = ...; // your own init code
    1.19 + * {@link Presenter Fn.Presenter} <em>p</em> = Scripts.{@link Scripts#createPresenter()};
    1.20 + * BrowserBuilder.{@link BrowserBuilder#newBrowser(java.lang.Object...) newBrowser(<em>p</em>)}.
    1.21 + *      {@link BrowserBuilder#loadFinished(java.lang.Runnable) loadFinished(run)}.
    1.22 + *      {@link BrowserBuilder#showAndWait()};
    1.23 + * </pre>
    1.24 + * 
    1.25 + * and your runnable can make extensive use of {@link JavaScriptBody} directly or
    1.26 + * indirectly via APIs using {@link JavaScriptBody such annotation} themselves.
    1.27   * 
    1.28   * @author Jaroslav Tulach
    1.29   */
    1.30 @@ -69,8 +84,9 @@
    1.31          return new ScriptPresenter(null);
    1.32      }
    1.33  
    1.34 -    /** Simple implementation of {@link Presenter} that delegates
    1.35 -     * to Java {@link ScriptEngine scripting} API. The presenter runs headless
    1.36 +    /** Implementation of {@link Presenter} that delegates
    1.37 +     * to Java {@link ScriptEngine scripting} API and can control execution
    1.38 +     * thread. The presenter runs headless
    1.39       * without appropriate simulation of browser APIs. Its primary usefulness
    1.40       * is inside testing environments. The presenter implements {@link Executor}
    1.41       * interface, and passes all runnables from {@link Executor#execute(java.lang.Runnable)}