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 }