1.1 --- a/launcher/fx/src/main/java/org/apidesign/bck2brwsr/launcher/FXBrwsrLauncher.java Thu May 30 06:09:42 2013 +0200
1.2 +++ b/launcher/fx/src/main/java/org/apidesign/bck2brwsr/launcher/FXBrwsrLauncher.java Fri May 31 09:12:10 2013 +0200
1.3 @@ -24,6 +24,7 @@
1.4 import java.net.URI;
1.5 import java.net.URL;
1.6 import java.net.URLClassLoader;
1.7 +import java.util.ArrayList;
1.8 import java.util.Enumeration;
1.9 import java.util.List;
1.10
1.11 @@ -67,11 +68,13 @@
1.12 public void run() {
1.13 LOG.log(Level.INFO, "In FX thread. Launching!");
1.14 try {
1.15 + List<String> params = new ArrayList<String>();
1.16 + params.add(url.toString());
1.17 if (isDebugged()) {
1.18 - FXBrwsr.launch(FXBrwsr.class, url.toString(), "--toolbar=true");
1.19 - } else {
1.20 - FXBrwsr.launch(FXBrwsr.class, url.toString());
1.21 + params.add("--toolbar=true");
1.22 + params.add("--firebug=true");
1.23 }
1.24 + FXBrwsr.launch(FXBrwsr.class, params.toArray(new String[params.size()]));
1.25 LOG.log(Level.INFO, "Launcher is back. Closing");
1.26 close();
1.27 System.exit(0);
1.28 @@ -91,17 +94,6 @@
1.29 sb.append("(function() {\n"
1.30 + " var impl = this.bck2brwsr;\n"
1.31 + " this.bck2brwsr = function() { return impl; };\n");
1.32 - if (isDebugged()) {
1.33 - sb.append("var scr = window.document.createElement('script');\n");
1.34 - sb.append("scr.type = 'text/javascript';\n");
1.35 - sb.append("scr.src = 'https://getfirebug.com/firebug-lite.js';\n");
1.36 - sb.append("scr.text = '{ startOpened: true }';\n");
1.37 - sb.append("var head = window.document.getElementsByTagName('head')[0];");
1.38 - sb.append("head.appendChild(scr);\n");
1.39 - sb.append("var html = window.document.getElementsByTagName('html')[0];");
1.40 - sb.append("html.debug = true;\n");
1.41 - }
1.42 -
1.43 sb.append("})(window);\n");
1.44 JVMBridge.onBck2BrwsrLoad();
1.45 }
2.1 --- a/launcher/fx/src/main/java/org/apidesign/bck2brwsr/launcher/fximpl/BrowserToolbar.java Thu May 30 06:09:42 2013 +0200
2.2 +++ b/launcher/fx/src/main/java/org/apidesign/bck2brwsr/launcher/fximpl/BrowserToolbar.java Fri May 31 09:12:10 2013 +0200
2.3 @@ -35,6 +35,7 @@
2.4 import javafx.scene.image.Image;
2.5 import javafx.scene.image.ImageView;
2.6 import javafx.scene.layout.Pane;
2.7 +import javafx.scene.web.WebEngine;
2.8 import javafx.scene.web.WebView;
2.9
2.10 final class BrowserToolbar extends ToolBar {
2.11 @@ -44,7 +45,7 @@
2.12 private final ToggleGroup resizeGroup = new ToggleGroup();
2.13 private final ComboBox<String> comboZoom = new ComboBox<String>();
2.14
2.15 - private BrowserToolbar( WebView webView, Pane container ) {
2.16 + BrowserToolbar(WebView webView, Pane container, boolean useFirebug) {
2.17 this.webView = webView;
2.18 this.container = container;
2.19
2.20 @@ -87,7 +88,23 @@
2.21 comboZoom.setValue( newZoom );
2.22 }
2.23 });
2.24 +
2.25 + if (useFirebug) {
2.26 + getItems().add(new Separator());
2.27
2.28 + final ToggleButton firebug = new ToggleButton(null, new ImageView(
2.29 + new Image(BrowserToolbar.class.getResourceAsStream("firebug.png"))
2.30 + ));
2.31 + firebug.setTooltip(new Tooltip("Show/Hide firebug"));
2.32 + firebug.selectedProperty().addListener(new InvalidationListener() {
2.33 + @Override
2.34 + public void invalidated(Observable o) {
2.35 + toggleFireBug(firebug.isSelected());
2.36 + }
2.37 + });
2.38 + getItems().add(firebug);
2.39 + }
2.40 +
2.41 /*
2.42 final ToggleButton btnSelMode = new ToggleButton( null, new ImageView(
2.43 new Image(BrowserToolbar.class.getResourceAsStream("selectionMode.png"))
2.44 @@ -104,10 +121,6 @@
2.45 */
2.46 }
2.47
2.48 - public static ToolBar create( WebView view, Pane container ) {
2.49 - return new BrowserToolbar( view, container );
2.50 - }
2.51 -
2.52 private String zoom( String zoomFactor ) {
2.53 if( zoomFactor.trim().isEmpty() )
2.54 return null;
2.55 @@ -173,6 +186,29 @@
2.56 private void toggleSelectionMode( boolean selMode ) {
2.57 System.err.println( "selection mode: " + selMode );
2.58 }
2.59 +
2.60 + final void toggleFireBug(boolean enable) {
2.61 + WebEngine eng = webView.getEngine();
2.62 + Object installed = eng.executeScript("window.Firebug");
2.63 + if ("undefined".equals(installed)) {
2.64 + StringBuilder sb = new StringBuilder();
2.65 + sb.append("var scr = window.document.createElement('script');\n");
2.66 + sb.append("scr.type = 'text/javascript';\n");
2.67 + sb.append("scr.src = 'https://getfirebug.com/firebug-lite.js';\n");
2.68 + sb.append("scr.text = '{ startOpened: true }';\n");
2.69 + sb.append("var head = window.document.getElementsByTagName('head')[0];");
2.70 + sb.append("head.appendChild(scr);\n");
2.71 + sb.append("var html = window.document.getElementsByTagName('html')[0];");
2.72 + sb.append("html.debug = true;\n");
2.73 + eng.executeScript(sb.toString());
2.74 + } else {
2.75 + if (enable) {
2.76 + eng.executeScript("Firebug.chrome.open()");
2.77 + } else {
2.78 + eng.executeScript("Firebug.chrome.close()");
2.79 + }
2.80 + }
2.81 + }
2.82
2.83 /**
2.84 * Button to resize the browser window.
3.1 --- a/launcher/fx/src/main/java/org/apidesign/bck2brwsr/launcher/fximpl/FXBrwsr.java Thu May 30 06:09:42 2013 +0200
3.2 +++ b/launcher/fx/src/main/java/org/apidesign/bck2brwsr/launcher/fximpl/FXBrwsr.java Fri May 31 09:12:10 2013 +0200
3.3 @@ -76,8 +76,10 @@
3.4 vbox.getChildren().add(view);
3.5
3.6 BorderPane root = new BorderPane();
3.7 - if ("true".equals(this.getParameters().getNamed().get("toolbar"))) { // NOI18N
3.8 - final ToolBar toolbar = BrowserToolbar.create(view, vbox);
3.9 + final boolean showToolbar = "true".equals(this.getParameters().getNamed().get("toolbar")); // NOI18N
3.10 + final boolean useFirebug = "true".equals(this.getParameters().getNamed().get("firebug")); // NOI18N
3.11 + if (showToolbar) {
3.12 + final ToolBar toolbar = new BrowserToolbar(view, vbox, useFirebug);
3.13 root.setTop( toolbar );
3.14 }
3.15 root.setCenter(hbox);
4.1 Binary file launcher/fx/src/main/resources/org/apidesign/bck2brwsr/launcher/fximpl/firebug.png has changed