launcher/api/src/main/java/org/apidesign/bck2brwsr/launcher/Launcher.java
changeset 1927 cff680298793
parent 1787 ea12a3bb4b33
     1.1 --- a/launcher/api/src/main/java/org/apidesign/bck2brwsr/launcher/Launcher.java	Tue Feb 24 11:12:53 2015 +0100
     1.2 +++ b/launcher/api/src/main/java/org/apidesign/bck2brwsr/launcher/Launcher.java	Mon Apr 18 07:32:35 2016 +0200
     1.3 @@ -79,6 +79,18 @@
     1.4       * @return launcher executing in external browser.
     1.5       */
     1.6      public static Launcher createBrowser(String cmd) {
     1.7 +        return createBrowser(cmd, null, null);
     1.8 +    }
     1.9 +
    1.10 +    /** Creates launcher that is using external browser.
    1.11 +     *
    1.12 +     * @param classes classloader offering access to classes and resources
    1.13 +     * @param startpage page to show in the browser
    1.14 +     * @param cmd <code>null</code> to use <code>java.awt.Desktop</code> to show the launcher
    1.15 +     *    or a string to execute in an external process (with a parameter to the URL)
    1.16 +     * @return launcher executing in external browser.
    1.17 +     */
    1.18 +    public static Launcher createBrowser(String cmd, ClassLoader classes, String startpage) {
    1.19          String msg = "Trying to create browser '" + cmd + "'";
    1.20          try {
    1.21              Class<?> c;
    1.22 @@ -94,7 +106,12 @@
    1.23                  }
    1.24              }
    1.25              Constructor<?> cnstr = c.getConstructor(String.class);
    1.26 -            return (Launcher) cnstr.newInstance(cmd);
    1.27 +            final Launcher launcher = (Launcher) cnstr.newInstance(cmd);
    1.28 +            if (classes != null) {
    1.29 +                launcher.addClassLoader(classes);
    1.30 +            }
    1.31 +            launcher.rootPage(startpage);
    1.32 +            return launcher;
    1.33          } catch (Exception ex) {
    1.34              throw new IllegalStateException(msg, ex);
    1.35          }
    1.36 @@ -183,4 +200,8 @@
    1.37      void addClassLoader(ClassLoader classes) {
    1.38          throw new UnsupportedOperationException();
    1.39      }
    1.40 +
    1.41 +    void rootPage(String startpage) {
    1.42 +        throw new UnsupportedOperationException();
    1.43 +    }
    1.44  }