1 16 package com.google.gwt.dev.shell; 17 18 import com.google.gwt.core.ext.TreeLogger; 19 20 import org.eclipse.swt.SWT; 21 import org.eclipse.swt.browser.Browser; 22 import org.eclipse.swt.browser.LocationEvent; 23 import org.eclipse.swt.browser.LocationListener; 24 import org.eclipse.swt.browser.TitleEvent; 25 import org.eclipse.swt.browser.TitleListener; 26 import org.eclipse.swt.widgets.Composite; 27 import org.eclipse.swt.widgets.Control; 28 import org.eclipse.swt.widgets.Shell; 29 30 import java.net.URL ; 31 32 35 public class BrowserDialog extends DialogBase { 36 37 private final String html; 38 39 private final URL url; 40 41 private final TreeLogger logger; 42 43 public BrowserDialog(Shell parent, TreeLogger logger, String html) { 44 super(parent, 550, 520, true, false); 45 this.logger = logger; 46 this.html = html; 47 this.url = null; 48 } 49 50 protected Control createContents(Composite parent) { 51 Browser browser = new Browser(parent, SWT.BORDER); 52 53 browser.addTitleListener(new TitleListener() { 54 public void changed(TitleEvent event) { 55 BrowserDialog.this.setText(event.title); 56 } 57 }); 58 59 if (html != null) { 60 browser.setText(html); 61 } else if (url != null) { 62 browser.setUrl(url.toString()); 63 } 64 65 browser.addLocationListener(new LocationListener() { 66 public void changed(LocationEvent event) { 67 } 68 69 public void changing(LocationEvent event) { 70 event.doit = false; 71 BrowserWidget.launchExternalBrowser(logger, event.location); 72 } 73 }); 74 75 return browser; 76 } 77 } 78 | Popular Tags |