launcher/fx/src/main/java/org/apidesign/bck2brwsr/launcher/fximpl/BrowserToolbar.java
1.1 --- a/launcher/fx/src/main/java/org/apidesign/bck2brwsr/launcher/fximpl/BrowserToolbar.java Thu May 30 06:09:42 2013 +0200
1.2 +++ b/launcher/fx/src/main/java/org/apidesign/bck2brwsr/launcher/fximpl/BrowserToolbar.java Fri May 31 09:12:10 2013 +0200
1.3 @@ -35,6 +35,7 @@
1.4 import javafx.scene.image.Image;
1.5 import javafx.scene.image.ImageView;
1.6 import javafx.scene.layout.Pane;
1.7 +import javafx.scene.web.WebEngine;
1.8 import javafx.scene.web.WebView;
1.9
1.10 final class BrowserToolbar extends ToolBar {
1.11 @@ -44,7 +45,7 @@
1.12 private final ToggleGroup resizeGroup = new ToggleGroup();
1.13 private final ComboBox<String> comboZoom = new ComboBox<String>();
1.14
1.15 - private BrowserToolbar( WebView webView, Pane container ) {
1.16 + BrowserToolbar(WebView webView, Pane container, boolean useFirebug) {
1.17 this.webView = webView;
1.18 this.container = container;
1.19
1.20 @@ -87,7 +88,23 @@
1.21 comboZoom.setValue( newZoom );
1.22 }
1.23 });
1.24 +
1.25 + if (useFirebug) {
1.26 + getItems().add(new Separator());
1.27
1.28 + final ToggleButton firebug = new ToggleButton(null, new ImageView(
1.29 + new Image(BrowserToolbar.class.getResourceAsStream("firebug.png"))
1.30 + ));
1.31 + firebug.setTooltip(new Tooltip("Show/Hide firebug"));
1.32 + firebug.selectedProperty().addListener(new InvalidationListener() {
1.33 + @Override
1.34 + public void invalidated(Observable o) {
1.35 + toggleFireBug(firebug.isSelected());
1.36 + }
1.37 + });
1.38 + getItems().add(firebug);
1.39 + }
1.40 +
1.41 /*
1.42 final ToggleButton btnSelMode = new ToggleButton( null, new ImageView(
1.43 new Image(BrowserToolbar.class.getResourceAsStream("selectionMode.png"))
1.44 @@ -104,10 +121,6 @@
1.45 */
1.46 }
1.47
1.48 - public static ToolBar create( WebView view, Pane container ) {
1.49 - return new BrowserToolbar( view, container );
1.50 - }
1.51 -
1.52 private String zoom( String zoomFactor ) {
1.53 if( zoomFactor.trim().isEmpty() )
1.54 return null;
1.55 @@ -173,6 +186,29 @@
1.56 private void toggleSelectionMode( boolean selMode ) {
1.57 System.err.println( "selection mode: " + selMode );
1.58 }
1.59 +
1.60 + final void toggleFireBug(boolean enable) {
1.61 + WebEngine eng = webView.getEngine();
1.62 + Object installed = eng.executeScript("window.Firebug");
1.63 + if ("undefined".equals(installed)) {
1.64 + StringBuilder sb = new StringBuilder();
1.65 + sb.append("var scr = window.document.createElement('script');\n");
1.66 + sb.append("scr.type = 'text/javascript';\n");
1.67 + sb.append("scr.src = 'https://getfirebug.com/firebug-lite.js';\n");
1.68 + sb.append("scr.text = '{ startOpened: true }';\n");
1.69 + sb.append("var head = window.document.getElementsByTagName('head')[0];");
1.70 + sb.append("head.appendChild(scr);\n");
1.71 + sb.append("var html = window.document.getElementsByTagName('html')[0];");
1.72 + sb.append("html.debug = true;\n");
1.73 + eng.executeScript(sb.toString());
1.74 + } else {
1.75 + if (enable) {
1.76 + eng.executeScript("Firebug.chrome.open()");
1.77 + } else {
1.78 + eng.executeScript("Firebug.chrome.close()");
1.79 + }
1.80 + }
1.81 + }
1.82
1.83 /**
1.84 * Button to resize the browser window.