diff -r 16555ef29e9e -r fd8ac9eb0008 launcher/fx/src/main/java/org/apidesign/bck2brwsr/launcher/fximpl/BrowserToolbar.java --- a/launcher/fx/src/main/java/org/apidesign/bck2brwsr/launcher/fximpl/BrowserToolbar.java Thu May 30 06:09:42 2013 +0200 +++ b/launcher/fx/src/main/java/org/apidesign/bck2brwsr/launcher/fximpl/BrowserToolbar.java Fri May 31 09:12:10 2013 +0200 @@ -35,6 +35,7 @@ import javafx.scene.image.Image; import javafx.scene.image.ImageView; import javafx.scene.layout.Pane; +import javafx.scene.web.WebEngine; import javafx.scene.web.WebView; final class BrowserToolbar extends ToolBar { @@ -44,7 +45,7 @@ private final ToggleGroup resizeGroup = new ToggleGroup(); private final ComboBox comboZoom = new ComboBox(); - private BrowserToolbar( WebView webView, Pane container ) { + BrowserToolbar(WebView webView, Pane container, boolean useFirebug) { this.webView = webView; this.container = container; @@ -87,7 +88,23 @@ comboZoom.setValue( newZoom ); } }); + + if (useFirebug) { + getItems().add(new Separator()); + final ToggleButton firebug = new ToggleButton(null, new ImageView( + new Image(BrowserToolbar.class.getResourceAsStream("firebug.png")) + )); + firebug.setTooltip(new Tooltip("Show/Hide firebug")); + firebug.selectedProperty().addListener(new InvalidationListener() { + @Override + public void invalidated(Observable o) { + toggleFireBug(firebug.isSelected()); + } + }); + getItems().add(firebug); + } + /* final ToggleButton btnSelMode = new ToggleButton( null, new ImageView( new Image(BrowserToolbar.class.getResourceAsStream("selectionMode.png")) @@ -104,10 +121,6 @@ */ } - public static ToolBar create( WebView view, Pane container ) { - return new BrowserToolbar( view, container ); - } - private String zoom( String zoomFactor ) { if( zoomFactor.trim().isEmpty() ) return null; @@ -173,6 +186,29 @@ private void toggleSelectionMode( boolean selMode ) { System.err.println( "selection mode: " + selMode ); } + + final void toggleFireBug(boolean enable) { + WebEngine eng = webView.getEngine(); + Object installed = eng.executeScript("window.Firebug"); + if ("undefined".equals(installed)) { + StringBuilder sb = new StringBuilder(); + sb.append("var scr = window.document.createElement('script');\n"); + sb.append("scr.type = 'text/javascript';\n"); + sb.append("scr.src = 'https://getfirebug.com/firebug-lite.js';\n"); + sb.append("scr.text = '{ startOpened: true }';\n"); + sb.append("var head = window.document.getElementsByTagName('head')[0];"); + sb.append("head.appendChild(scr);\n"); + sb.append("var html = window.document.getElementsByTagName('html')[0];"); + sb.append("html.debug = true;\n"); + eng.executeScript(sb.toString()); + } else { + if (enable) { + eng.executeScript("Firebug.chrome.open()"); + } else { + eng.executeScript("Firebug.chrome.close()"); + } + } + } /** * Button to resize the browser window.