<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FSWT%2FBrowser</id>
		<title>Java Tutorial/SWT/Browser - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FSWT%2FBrowser"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/SWT/Browser&amp;action=history"/>
		<updated>2026-04-21T18:17:51Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/SWT/Browser&amp;diff=3029&amp;oldid=prev</id>
		<title> в 17:44, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/SWT/Browser&amp;diff=3029&amp;oldid=prev"/>
				<updated>2010-05-31T17:44:26Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 17:44, 31 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/SWT/Browser&amp;diff=3030&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/SWT/Browser&amp;diff=3030&amp;oldid=prev"/>
				<updated>2010-05-31T15:20:00Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==  Add CloseWindowListener to Browser ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The following HTML link closes the browser window:&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Adding OpenWindowListener ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;Browser conventions allow spawning new browser windows. &lt;br /&gt;
Things that can trigger a new browser window include the following:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;OL&amp;gt;&amp;lt;LI&amp;gt;The user right-clicks a link and selects Open in New Window from the context menu (note that you must build this functionality yourself).&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;The user holds down Shift while clicking a link.&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;The user clicks a link that has a named target for which no browser currently exists.&amp;lt;/LI&amp;gt;&amp;lt;/OL&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;When the user performs an action within the browser that spawns a new browser window, any OpenWindowListeners are first notified. OpenWindowListener declares one method:&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
public void open(WindowEvent event)&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Adding ProgressListener to Browser ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import org.eclipse.swt.SWT;&lt;br /&gt;
import org.eclipse.swt.browser.Browser;&lt;br /&gt;
import org.eclipse.swt.browser.ProgressEvent;&lt;br /&gt;
import org.eclipse.swt.browser.ProgressListener;&lt;br /&gt;
import org.eclipse.swt.widgets.Display;&lt;br /&gt;
import org.eclipse.swt.widgets.ProgressBar;&lt;br /&gt;
import org.eclipse.swt.widgets.Shell;&lt;br /&gt;
public class BrowserProgressListener {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Display display = new Display();&lt;br /&gt;
    Shell shell = new Shell(display);&lt;br /&gt;
    &lt;br /&gt;
    Browser browser = new Browser(shell, SWT.NONE);&lt;br /&gt;
    browser.setBounds(5,5,600,600);&lt;br /&gt;
    final ProgressBar progressBar = new ProgressBar(shell, SWT.NONE);&lt;br /&gt;
    progressBar.setBounds(5,650,600,20);&lt;br /&gt;
    &lt;br /&gt;
    browser.addProgressListener(new ProgressListener() {&lt;br /&gt;
      public void changed(ProgressEvent event) {&lt;br /&gt;
          if (event.total == 0) return;                            &lt;br /&gt;
          int ratio = event.current * 100 / event.total;&lt;br /&gt;
          progressBar.setSelection(ratio);&lt;br /&gt;
      }&lt;br /&gt;
      public void completed(ProgressEvent event) {&lt;br /&gt;
        progressBar.setSelection(0);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    &lt;br /&gt;
    browser.setUrl(&amp;quot;http://jexp.ru&amp;quot;);    &lt;br /&gt;
    shell.open();&lt;br /&gt;
    while (!shell.isDisposed()) {&lt;br /&gt;
      if (!display.readAndDispatch())&lt;br /&gt;
        display.sleep();&lt;br /&gt;
    }&lt;br /&gt;
    display.dispose();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Adding StatusTextListener to Browser ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import org.eclipse.swt.SWT;&lt;br /&gt;
import org.eclipse.swt.browser.Browser;&lt;br /&gt;
import org.eclipse.swt.browser.StatusTextEvent;&lt;br /&gt;
import org.eclipse.swt.browser.StatusTextListener;&lt;br /&gt;
import org.eclipse.swt.widgets.Display;&lt;br /&gt;
import org.eclipse.swt.widgets.Shell;&lt;br /&gt;
public class BroserStatusTextListener {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Display display = new Display();&lt;br /&gt;
    Shell shell = new Shell(display);&lt;br /&gt;
    &lt;br /&gt;
    Browser browser = new Browser(shell, SWT.NONE);&lt;br /&gt;
    browser.setBounds(5,5,600,600);&lt;br /&gt;
    browser.addStatusTextListener(new StatusTextListener() {&lt;br /&gt;
      public void changed(StatusTextEvent event) {&lt;br /&gt;
        System.out.println(event.text); &lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    browser.setUrl(&amp;quot;http://jexp.ru&amp;quot;);    &lt;br /&gt;
    shell.open();&lt;br /&gt;
    while (!shell.isDisposed()) {&lt;br /&gt;
      if (!display.readAndDispatch())&lt;br /&gt;
        display.sleep();&lt;br /&gt;
    }&lt;br /&gt;
    display.dispose();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Adding TitleListener to Browser ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/*******************************************************************************&lt;br /&gt;
 * Copyright (c) 2000, 2004 IBM Corporation and others.&lt;br /&gt;
 * All rights reserved. This program and the accompanying materials&lt;br /&gt;
 * are made available under the terms of the Eclipse Public License v1.0&lt;br /&gt;
 * which accompanies this distribution, and is available at&lt;br /&gt;
 * http://www.eclipse.org/legal/epl-v10.html&lt;br /&gt;
 *&lt;br /&gt;
 * Contributors:&lt;br /&gt;
 *     IBM Corporation - initial API and implementation&lt;br /&gt;
 *******************************************************************************/&lt;br /&gt;
/*&lt;br /&gt;
 * Browser example snippet: modify HTML title tag&lt;br /&gt;
 * &lt;br /&gt;
 * For a list of all SWT example snippets see&lt;br /&gt;
 * http://www.eclipse.org/swt/snippets/&lt;br /&gt;
 * &lt;br /&gt;
 * @since 3.1&lt;br /&gt;
 */&lt;br /&gt;
import org.eclipse.swt.SWT;&lt;br /&gt;
import org.eclipse.swt.browser.Browser;&lt;br /&gt;
import org.eclipse.swt.browser.ProgressEvent;&lt;br /&gt;
import org.eclipse.swt.browser.ProgressListener;&lt;br /&gt;
import org.eclipse.swt.browser.TitleEvent;&lt;br /&gt;
import org.eclipse.swt.browser.TitleListener;&lt;br /&gt;
import org.eclipse.swt.layout.FillLayout;&lt;br /&gt;
import org.eclipse.swt.widgets.Display;&lt;br /&gt;
import org.eclipse.swt.widgets.Shell;&lt;br /&gt;
public class HTMLTagModify {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    final String newTitle = &amp;quot;New Value for Title&amp;quot;;&lt;br /&gt;
    Display display = new Display();&lt;br /&gt;
    final Shell shell = new Shell(display);&lt;br /&gt;
    shell.setLayout(new FillLayout());&lt;br /&gt;
    final Browser browser = new Browser(shell, SWT.NONE);&lt;br /&gt;
    browser.addTitleListener(new TitleListener() {&lt;br /&gt;
      public void changed(TitleEvent event) {&lt;br /&gt;
        System.out.println(&amp;quot;TitleEvent: &amp;quot; + event.title);&lt;br /&gt;
        shell.setText(event.title);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    browser.addProgressListener(new ProgressListener() {&lt;br /&gt;
      public void changed(ProgressEvent event) {&lt;br /&gt;
      }&lt;br /&gt;
      public void completed(ProgressEvent event) {&lt;br /&gt;
        /* Set HTML title tag using JavaScript and DOM when page has been loaded */&lt;br /&gt;
        boolean result = browser.execute(&amp;quot;document.title=&amp;quot;&amp;quot; + newTitle + &amp;quot;&amp;quot;&amp;quot;);&lt;br /&gt;
        if (!result) {&lt;br /&gt;
          /* Script may fail or may not be supported on certain platforms. */&lt;br /&gt;
          System.out.println(&amp;quot;Script was not executed.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    /* Load an HTML document */&lt;br /&gt;
    browser.setUrl(&amp;quot;http://www.eclipse.org&amp;quot;);&lt;br /&gt;
    shell.open();&lt;br /&gt;
    while (!shell.isDisposed()) {&lt;br /&gt;
      if (!display.readAndDispatch())&lt;br /&gt;
        display.sleep();&lt;br /&gt;
    }&lt;br /&gt;
    display.dispose();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Adding VisibilityWindowListener ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import org.eclipse.swt.SWT;&lt;br /&gt;
import org.eclipse.swt.browser.Browser;&lt;br /&gt;
import org.eclipse.swt.browser.VisibilityWindowListener;&lt;br /&gt;
import org.eclipse.swt.browser.WindowEvent;&lt;br /&gt;
import org.eclipse.swt.graphics.Point;&lt;br /&gt;
import org.eclipse.swt.widgets.Display;&lt;br /&gt;
import org.eclipse.swt.widgets.Shell;&lt;br /&gt;
public class VisibilityWindowListenerUsing {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Display display = new Display();&lt;br /&gt;
    Shell shell = new Shell(display);&lt;br /&gt;
    Browser browser = new Browser(shell, SWT.NONE);&lt;br /&gt;
    browser.setBounds(5, 5, 600, 600);&lt;br /&gt;
    browser.addVisibilityWindowListener(new VisibilityWindowListener() {&lt;br /&gt;
      public void hide(WindowEvent event) {&lt;br /&gt;
        System.out.println(&amp;quot;hide&amp;quot;);&lt;br /&gt;
        Browser browser = (Browser) event.widget;&lt;br /&gt;
        Shell shell = browser.getShell();&lt;br /&gt;
        shell.setVisible(false);&lt;br /&gt;
      }&lt;br /&gt;
      public void show(WindowEvent event) {&lt;br /&gt;
        Browser browser = (Browser) event.widget;&lt;br /&gt;
        final Shell shell = browser.getShell();&lt;br /&gt;
        System.out.println(&amp;quot;Popup blocked.&amp;quot;);&lt;br /&gt;
        shell.open();&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    browser.setUrl(&amp;quot;http://jexp.ru&amp;quot;);&lt;br /&gt;
    shell.open();&lt;br /&gt;
    while (!shell.isDisposed()) {&lt;br /&gt;
      if (!display.readAndDispatch())&lt;br /&gt;
        display.sleep();&lt;br /&gt;
    }&lt;br /&gt;
    display.dispose();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Add LocationListener to Browser ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;The &amp;quot;Location&amp;quot; in LocationListener refers to URLs the browser is loading.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;LocationListener has two methods:&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
void changed(LocationEvent event)&lt;br /&gt;
      void changing(LocationEvent event)&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Advanced Browser ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import org.eclipse.swt.SWT;&lt;br /&gt;
import org.eclipse.swt.browser.Browser;&lt;br /&gt;
import org.eclipse.swt.browser.CloseWindowListener;&lt;br /&gt;
import org.eclipse.swt.browser.LocationEvent;&lt;br /&gt;
import org.eclipse.swt.browser.LocationListener;&lt;br /&gt;
import org.eclipse.swt.browser.ProgressEvent;&lt;br /&gt;
import org.eclipse.swt.browser.ProgressListener;&lt;br /&gt;
import org.eclipse.swt.browser.StatusTextEvent;&lt;br /&gt;
import org.eclipse.swt.browser.StatusTextListener;&lt;br /&gt;
import org.eclipse.swt.browser.WindowEvent;&lt;br /&gt;
import org.eclipse.swt.events.SelectionAdapter;&lt;br /&gt;
import org.eclipse.swt.events.SelectionEvent;&lt;br /&gt;
import org.eclipse.swt.layout.FormAttachment;&lt;br /&gt;
import org.eclipse.swt.layout.FormData;&lt;br /&gt;
import org.eclipse.swt.layout.FormLayout;&lt;br /&gt;
import org.eclipse.swt.layout.GridData;&lt;br /&gt;
import org.eclipse.swt.layout.GridLayout;&lt;br /&gt;
import org.eclipse.swt.widgets.Button;&lt;br /&gt;
import org.eclipse.swt.widgets.ruposite;&lt;br /&gt;
import org.eclipse.swt.widgets.Display;&lt;br /&gt;
import org.eclipse.swt.widgets.Label;&lt;br /&gt;
import org.eclipse.swt.widgets.Shell;&lt;br /&gt;
import org.eclipse.swt.widgets.Text;&lt;br /&gt;
public class AdvancedBrowser {&lt;br /&gt;
  private static final String AT_REST = &amp;quot;Ready&amp;quot;;&lt;br /&gt;
  public AdvancedBrowser(String location) {&lt;br /&gt;
    Display display = new Display();&lt;br /&gt;
    Shell shell = new Shell(display);&lt;br /&gt;
    shell.setText(&amp;quot;Advanced Browser&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
    shell.setLayout(new FormLayout());&lt;br /&gt;
    Composite controls = new Composite(shell, SWT.NONE);&lt;br /&gt;
    FormData data = new FormData();&lt;br /&gt;
    data.top = new FormAttachment(0, 0);&lt;br /&gt;
    data.left = new FormAttachment(0, 0);&lt;br /&gt;
    data.right = new FormAttachment(100, 0);&lt;br /&gt;
    controls.setLayoutData(data);&lt;br /&gt;
    Label status = new Label(shell, SWT.NONE);&lt;br /&gt;
    data = new FormData();&lt;br /&gt;
    data.left = new FormAttachment(0, 0);&lt;br /&gt;
    data.right = new FormAttachment(100, 0);&lt;br /&gt;
    data.bottom = new FormAttachment(100, 0);&lt;br /&gt;
    status.setLayoutData(data);&lt;br /&gt;
    final Browser browser = new Browser(shell, SWT.BORDER);&lt;br /&gt;
    data = new FormData();&lt;br /&gt;
    data.top = new FormAttachment(controls);&lt;br /&gt;
    data.bottom = new FormAttachment(status);&lt;br /&gt;
    data.left = new FormAttachment(0, 0);&lt;br /&gt;
    data.right = new FormAttachment(100, 0);&lt;br /&gt;
    browser.setLayoutData(data);&lt;br /&gt;
    controls.setLayout(new GridLayout(7, false));&lt;br /&gt;
    Button button = new Button(controls, SWT.PUSH);&lt;br /&gt;
    button.setText(&amp;quot;Back&amp;quot;);&lt;br /&gt;
    button.addSelectionListener(new SelectionAdapter() {&lt;br /&gt;
      public void widgetSelected(SelectionEvent event) {&lt;br /&gt;
        browser.back();&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    button = new Button(controls, SWT.PUSH);&lt;br /&gt;
    button.setText(&amp;quot;Forward&amp;quot;);&lt;br /&gt;
    button.addSelectionListener(new SelectionAdapter() {&lt;br /&gt;
      public void widgetSelected(SelectionEvent event) {&lt;br /&gt;
        browser.forward();&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    button = new Button(controls, SWT.PUSH);&lt;br /&gt;
    button.setText(&amp;quot;Refresh&amp;quot;);&lt;br /&gt;
    button.addSelectionListener(new SelectionAdapter() {&lt;br /&gt;
      public void widgetSelected(SelectionEvent event) {&lt;br /&gt;
        browser.refresh();&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    button = new Button(controls, SWT.PUSH);&lt;br /&gt;
    button.setText(&amp;quot;Stop&amp;quot;);&lt;br /&gt;
    button.addSelectionListener(new SelectionAdapter() {&lt;br /&gt;
      public void widgetSelected(SelectionEvent event) {&lt;br /&gt;
        browser.stop();&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    final Text url = new Text(controls, SWT.BORDER);&lt;br /&gt;
    url.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));&lt;br /&gt;
    url.setFocus();&lt;br /&gt;
    button = new Button(controls, SWT.PUSH);&lt;br /&gt;
    button.setText(&amp;quot;Go&amp;quot;);&lt;br /&gt;
    button.addSelectionListener(new SelectionAdapter() {&lt;br /&gt;
      public void widgetSelected(SelectionEvent event) {&lt;br /&gt;
        browser.setUrl(url.getText());&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    Label throbber = new Label(controls, SWT.NONE);&lt;br /&gt;
    throbber.setText(AT_REST);&lt;br /&gt;
    shell.setDefaultButton(button);&lt;br /&gt;
    browser.addCloseWindowListener(new AdvancedCloseWindowListener());&lt;br /&gt;
    browser.addLocationListener(new AdvancedLocationListener(url));&lt;br /&gt;
    browser.addProgressListener(new AdvancedProgressListener(throbber));&lt;br /&gt;
    browser.addStatusTextListener(new AdvancedStatusTextListener(status));&lt;br /&gt;
    // Go to the initial URL&lt;br /&gt;
    if (location != null) {&lt;br /&gt;
      browser.setUrl(location);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    shell.open();&lt;br /&gt;
    while (!shell.isDisposed()) {&lt;br /&gt;
      if (!display.readAndDispatch()) {&lt;br /&gt;
        display.sleep();&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    display.dispose();&lt;br /&gt;
  }&lt;br /&gt;
  class AdvancedCloseWindowListener implements CloseWindowListener {&lt;br /&gt;
    public void close(WindowEvent event) {&lt;br /&gt;
      ((Browser) event.widget).getShell().close();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  class AdvancedLocationListener implements LocationListener {&lt;br /&gt;
    private Text location;&lt;br /&gt;
    public AdvancedLocationListener(Text text) {&lt;br /&gt;
      location = text;&lt;br /&gt;
    }&lt;br /&gt;
    public void changing(LocationEvent event) {&lt;br /&gt;
      location.setText(&amp;quot;Loading &amp;quot; + event.location + &amp;quot;...&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    public void changed(LocationEvent event) {&lt;br /&gt;
      location.setText(event.location);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  class AdvancedProgressListener implements ProgressListener {&lt;br /&gt;
    private Label progress;&lt;br /&gt;
    public AdvancedProgressListener(Label label) {&lt;br /&gt;
      progress = label;&lt;br /&gt;
    }&lt;br /&gt;
    public void changed(ProgressEvent event) {&lt;br /&gt;
      if (event.total != 0) {&lt;br /&gt;
        int percent = (int) (event.current / event.total);&lt;br /&gt;
        progress.setText(percent + &amp;quot;%&amp;quot;);&lt;br /&gt;
      } else {&lt;br /&gt;
        progress.setText(&amp;quot;?&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    public void completed(ProgressEvent event) {&lt;br /&gt;
      progress.setText(AT_REST);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  class AdvancedStatusTextListener implements StatusTextListener {&lt;br /&gt;
    private Label status;&lt;br /&gt;
    public AdvancedStatusTextListener(Label label) {&lt;br /&gt;
      status = label;&lt;br /&gt;
    }&lt;br /&gt;
    public void changed(StatusTextEvent event) {&lt;br /&gt;
      status.setText(event.text);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    new AdvancedBrowser(&amp;quot;http://www.google.ru&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Browser: bring up a browser (pop-up blocker) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/*******************************************************************************&lt;br /&gt;
 * Copyright (c) 2000, 2005 IBM Corporation and others.&lt;br /&gt;
 * All rights reserved. This program and the accompanying materials&lt;br /&gt;
 * are made available under the terms of the Eclipse Public License v1.0&lt;br /&gt;
 * which accompanies this distribution, and is available at&lt;br /&gt;
 * http://www.eclipse.org/legal/epl-v10.html&lt;br /&gt;
 *&lt;br /&gt;
 * Contributors:&lt;br /&gt;
 *     IBM Corporation - initial API and implementation&lt;br /&gt;
 *******************************************************************************/&lt;br /&gt;
package org.eclipse.swt.snippets;&lt;br /&gt;
/*&lt;br /&gt;
 * Browser snippet: bring up a browser (pop-up blocker)&lt;br /&gt;
 * &lt;br /&gt;
 * For a list of all SWT example snippets see&lt;br /&gt;
 * http://www.eclipse.org/swt/snippets/&lt;br /&gt;
 * &lt;br /&gt;
 * @since 3.1&lt;br /&gt;
 */&lt;br /&gt;
import org.eclipse.swt.*;&lt;br /&gt;
import org.eclipse.swt.widgets.*;&lt;br /&gt;
import org.eclipse.swt.graphics.*;&lt;br /&gt;
import org.eclipse.swt.layout.*;&lt;br /&gt;
import org.eclipse.swt.browser.*;&lt;br /&gt;
public class Snippet173 {&lt;br /&gt;
public static void main(String[] args) {&lt;br /&gt;
  Display display = new Display();&lt;br /&gt;
  Shell shell = new Shell(display);&lt;br /&gt;
  shell.setText(&amp;quot;Main Window&amp;quot;);&lt;br /&gt;
  shell.setLayout(new FillLayout());&lt;br /&gt;
  Browser browser = new Browser(shell, SWT.NONE);&lt;br /&gt;
  initialize(display, browser);&lt;br /&gt;
  shell.open();&lt;br /&gt;
  /* any website with popups */&lt;br /&gt;
  browser.setUrl(&amp;quot;http://www.cnn.ru&amp;quot;);&lt;br /&gt;
  while (!shell.isDisposed()) {&lt;br /&gt;
    if (!display.readAndDispatch())&lt;br /&gt;
      display.sleep();&lt;br /&gt;
    }&lt;br /&gt;
    display.dispose();&lt;br /&gt;
  }&lt;br /&gt;
/* register WindowEvent listeners */&lt;br /&gt;
static void initialize(final Display display, Browser browser) {&lt;br /&gt;
  browser.addOpenWindowListener(new OpenWindowListener() {&lt;br /&gt;
    public void open(WindowEvent event) {&lt;br /&gt;
      Shell shell = new Shell(display);&lt;br /&gt;
      shell.setText(&amp;quot;New Window&amp;quot;);&lt;br /&gt;
      shell.setLayout(new FillLayout());&lt;br /&gt;
      Browser browser = new Browser(shell, SWT.NONE);&lt;br /&gt;
      initialize(display, browser);&lt;br /&gt;
      event.browser = browser;&lt;br /&gt;
    }&lt;br /&gt;
  });&lt;br /&gt;
  browser.addVisibilityWindowListener(new VisibilityWindowListener() {&lt;br /&gt;
    public void hide(WindowEvent event) {&lt;br /&gt;
      Browser browser = (Browser)event.widget;&lt;br /&gt;
      Shell shell = browser.getShell();&lt;br /&gt;
      shell.setVisible(false);&lt;br /&gt;
    }&lt;br /&gt;
    public void show(WindowEvent event) {&lt;br /&gt;
      Browser browser = (Browser)event.widget;&lt;br /&gt;
      final Shell shell = browser.getShell();&lt;br /&gt;
      /* popup blocker - ignore windows with no style */&lt;br /&gt;
      if (!event.addressBar &amp;amp;&amp;amp; !event.menuBar &amp;amp;&amp;amp; !event.statusBar &amp;amp;&amp;amp; !event.toolBar) {&lt;br /&gt;
        System.out.println(&amp;quot;Popup blocked.&amp;quot;);&lt;br /&gt;
        event.display.asyncExec(new Runnable() {&lt;br /&gt;
          public void run() {&lt;br /&gt;
            shell.close();&lt;br /&gt;
          }&lt;br /&gt;
        });&lt;br /&gt;
        return;&lt;br /&gt;
      }&lt;br /&gt;
      if (event.location != null) shell.setLocation(event.location);&lt;br /&gt;
      if (event.size != null) {&lt;br /&gt;
        Point size = event.size;&lt;br /&gt;
        shell.setSize(shell.ruputeSize(size.x, size.y));&lt;br /&gt;
      }&lt;br /&gt;
      shell.open();&lt;br /&gt;
    }&lt;br /&gt;
  });&lt;br /&gt;
  browser.addCloseWindowListener(new CloseWindowListener() {&lt;br /&gt;
    public void close(WindowEvent event) {&lt;br /&gt;
      Browser browser = (Browser)event.widget;&lt;br /&gt;
      Shell shell = browser.getShell();&lt;br /&gt;
      shell.close();&lt;br /&gt;
    }&lt;br /&gt;
  });&lt;br /&gt;
}&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Browser: modify DOM (executing javascript) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/*******************************************************************************&lt;br /&gt;
 * Copyright (c) 2000, 2004 IBM Corporation and others.&lt;br /&gt;
 * All rights reserved. This program and the accompanying materials&lt;br /&gt;
 * are made available under the terms of the Eclipse Public License v1.0&lt;br /&gt;
 * which accompanies this distribution, and is available at&lt;br /&gt;
 * http://www.eclipse.org/legal/epl-v10.html&lt;br /&gt;
 *&lt;br /&gt;
 * Contributors:&lt;br /&gt;
 *     IBM Corporation - initial API and implementation&lt;br /&gt;
 *******************************************************************************/&lt;br /&gt;
/*&lt;br /&gt;
 * Browser example snippet: modify DOM (executing javascript)&lt;br /&gt;
 *&lt;br /&gt;
 * For a list of all SWT example snippets see&lt;br /&gt;
 * http://www.eclipse.org/swt/snippets/&lt;br /&gt;
 * &lt;br /&gt;
 * @since 3.1&lt;br /&gt;
 */&lt;br /&gt;
import org.eclipse.swt.SWT;&lt;br /&gt;
import org.eclipse.swt.browser.Browser;&lt;br /&gt;
import org.eclipse.swt.layout.FillLayout;&lt;br /&gt;
import org.eclipse.swt.widgets.Button;&lt;br /&gt;
import org.eclipse.swt.widgets.ruposite;&lt;br /&gt;
import org.eclipse.swt.widgets.Display;&lt;br /&gt;
import org.eclipse.swt.widgets.Event;&lt;br /&gt;
import org.eclipse.swt.widgets.Listener;&lt;br /&gt;
import org.eclipse.swt.widgets.Shell;&lt;br /&gt;
import org.eclipse.swt.widgets.Text;&lt;br /&gt;
public class JavascriptExec {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    final String html = &amp;quot;&amp;lt;html&amp;gt;&amp;lt;title&amp;gt;Snippet&amp;lt;/title&amp;gt;&amp;lt;body&amp;gt;&amp;lt;p id=&amp;quot;myid&amp;quot;&amp;gt;Best Friends&amp;lt;/p&amp;gt;&amp;lt;p id=&amp;quot;myid2&amp;quot;&amp;gt;Cat and Dog&amp;lt;/p&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&amp;quot;;&lt;br /&gt;
    Display display = new Display();&lt;br /&gt;
    final Shell shell = new Shell(display);&lt;br /&gt;
    shell.setLayout(new FillLayout());&lt;br /&gt;
    final Browser browser = new Browser(shell, SWT.BORDER);&lt;br /&gt;
    Composite comp = new Composite(shell, SWT.NONE);&lt;br /&gt;
    comp.setLayout(new FillLayout(SWT.VERTICAL));&lt;br /&gt;
    final Text text = new Text(comp, SWT.MULTI);&lt;br /&gt;
    text.setText(&amp;quot;var newNode = document.createElement(&amp;quot;P&amp;quot;); \r\n&amp;quot;&lt;br /&gt;
        + &amp;quot;var text = document.createTextNode(&amp;quot;At least when I am around&amp;quot;);\r\n&amp;quot;&lt;br /&gt;
        + &amp;quot;newNode.appendChild(text);\r\n&amp;quot;&lt;br /&gt;
        + &amp;quot;document.getElementById(&amp;quot;myid&amp;quot;).appendChild(newNode);\r\n&amp;quot; + &amp;quot;\r\n&amp;quot;&lt;br /&gt;
        + &amp;quot;document.bgColor=&amp;quot;yellow&amp;quot;;&amp;quot;);&lt;br /&gt;
    final Button button = new Button(comp, SWT.PUSH);&lt;br /&gt;
    button.setText(&amp;quot;Execute Script&amp;quot;);&lt;br /&gt;
    button.addListener(SWT.Selection, new Listener() {&lt;br /&gt;
      public void handleEvent(Event event) {&lt;br /&gt;
        boolean result = browser.execute(text.getText());&lt;br /&gt;
        if (!result) {&lt;br /&gt;
          /* Script may fail or may not be supported on certain platforms. */&lt;br /&gt;
          System.out.println(&amp;quot;Script was not executed.&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    browser.setText(html);&lt;br /&gt;
    shell.open();&lt;br /&gt;
    while (!shell.isDisposed()) {&lt;br /&gt;
      if (!display.readAndDispatch())&lt;br /&gt;
        display.sleep();&lt;br /&gt;
    }&lt;br /&gt;
    display.dispose();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Browser: query DOM node value ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/*******************************************************************************&lt;br /&gt;
 * Copyright (c) 2000, 2004 IBM Corporation and others.&lt;br /&gt;
 * All rights reserved. This program and the accompanying materials&lt;br /&gt;
 * are made available under the terms of the Eclipse Public License v1.0&lt;br /&gt;
 * which accompanies this distribution, and is available at&lt;br /&gt;
 * http://www.eclipse.org/legal/epl-v10.html&lt;br /&gt;
 *&lt;br /&gt;
 * Contributors:&lt;br /&gt;
 *     IBM Corporation - initial API and implementation&lt;br /&gt;
 *******************************************************************************/&lt;br /&gt;
/*&lt;br /&gt;
 * Browser example snippet: query DOM node value&lt;br /&gt;
 *&lt;br /&gt;
 * For a list of all SWT example snippets see&lt;br /&gt;
 * http://www.eclipse.org/swt/snippets/&lt;br /&gt;
 * &lt;br /&gt;
 * @since 3.1&lt;br /&gt;
 */&lt;br /&gt;
import org.eclipse.swt.SWT;&lt;br /&gt;
import org.eclipse.swt.browser.Browser;&lt;br /&gt;
import org.eclipse.swt.browser.ProgressEvent;&lt;br /&gt;
import org.eclipse.swt.browser.ProgressListener;&lt;br /&gt;
import org.eclipse.swt.browser.StatusTextEvent;&lt;br /&gt;
import org.eclipse.swt.browser.StatusTextListener;&lt;br /&gt;
import org.eclipse.swt.layout.FillLayout;&lt;br /&gt;
import org.eclipse.swt.widgets.Display;&lt;br /&gt;
import org.eclipse.swt.widgets.Shell;&lt;br /&gt;
public class DOMQuerySWTBrowser {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    final String html = &amp;quot;&amp;lt;html&amp;gt;&amp;lt;title&amp;gt;Snippet&amp;lt;/title&amp;gt;&amp;lt;body&amp;gt;&amp;lt;p id=&amp;quot;myid&amp;quot;&amp;gt;Best Friends&amp;lt;/p&amp;gt;&amp;lt;p id=&amp;quot;myid2&amp;quot;&amp;gt;Cat and Dog&amp;lt;/p&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&amp;quot;;&lt;br /&gt;
    Display display = new Display();&lt;br /&gt;
    final Shell shell = new Shell(display);&lt;br /&gt;
    shell.setLayout(new FillLayout());&lt;br /&gt;
    final Browser browser = new Browser(shell, SWT.NONE);&lt;br /&gt;
    browser.addStatusTextListener(new StatusTextListener() {&lt;br /&gt;
      public void changed(StatusTextEvent event) {&lt;br /&gt;
        browser.setData(&amp;quot;query&amp;quot;, event.text);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    browser.addProgressListener(new ProgressListener() {&lt;br /&gt;
      public void changed(ProgressEvent event) {&lt;br /&gt;
      }&lt;br /&gt;
      public void completed(ProgressEvent event) {&lt;br /&gt;
        /*&lt;br /&gt;
         * Use JavaScript to query the desired node content through the Document&lt;br /&gt;
         * Object Model&lt;br /&gt;
         * &lt;br /&gt;
         * Assign result to the window property status to pass the result to the&lt;br /&gt;
         * StatusTextListener This trick is required since &amp;lt;code&amp;gt;execute&amp;lt;/code&amp;gt;&lt;br /&gt;
         * does not return the &amp;lt;code&amp;gt;String&amp;lt;/code&amp;gt; directly.&lt;br /&gt;
         */&lt;br /&gt;
        boolean result = browser&lt;br /&gt;
            .execute(&amp;quot;window.status=document.getElementById(&amp;quot;myid&amp;quot;).childNodes[0].nodeValue;&amp;quot;);&lt;br /&gt;
        if (!result) {&lt;br /&gt;
          /* Script may fail or may not be supported on certain platforms. */&lt;br /&gt;
          System.out.println(&amp;quot;Script was not executed.&amp;quot;);&lt;br /&gt;
          return;&lt;br /&gt;
        }&lt;br /&gt;
        String value = (String) browser.getData(&amp;quot;query&amp;quot;);&lt;br /&gt;
        System.out.println(&amp;quot;Node value: &amp;quot; + value);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    /* Load an HTML document */&lt;br /&gt;
    browser.setText(html);&lt;br /&gt;
    shell.open();&lt;br /&gt;
    while (!shell.isDisposed()) {&lt;br /&gt;
      if (!display.readAndDispatch())&lt;br /&gt;
        display.sleep();&lt;br /&gt;
    }&lt;br /&gt;
    display.dispose();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Browser: render HTML that includes relative links from memory ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/*******************************************************************************&lt;br /&gt;
 * Copyright (c) 2000, 2004 IBM Corporation and others.&lt;br /&gt;
 * All rights reserved. This program and the accompanying materials&lt;br /&gt;
 * are made available under the terms of the Eclipse Public License v1.0&lt;br /&gt;
 * which accompanies this distribution, and is available at&lt;br /&gt;
 * http://www.eclipse.org/legal/epl-v10.html&lt;br /&gt;
 *&lt;br /&gt;
 * Contributors:&lt;br /&gt;
 *     IBM Corporation - initial API and implementation&lt;br /&gt;
 *******************************************************************************/&lt;br /&gt;
/*&lt;br /&gt;
 * Browser example snippet: render HTML that includes relative links from memory&lt;br /&gt;
 *&lt;br /&gt;
 * For a list of all SWT example snippets see&lt;br /&gt;
 * http://www.eclipse.org/swt/snippets/&lt;br /&gt;
 * &lt;br /&gt;
 * @since 3.0&lt;br /&gt;
 */&lt;br /&gt;
import org.eclipse.swt.SWT;&lt;br /&gt;
import org.eclipse.swt.browser.Browser;&lt;br /&gt;
import org.eclipse.swt.layout.FillLayout;&lt;br /&gt;
import org.eclipse.swt.widgets.Display;&lt;br /&gt;
import org.eclipse.swt.widgets.Shell;&lt;br /&gt;
public class HTMLRenderRelativeMemory {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    /* Relative links: use the HTML base tag */&lt;br /&gt;
    String html = &amp;quot;&amp;lt;html&amp;gt;&amp;lt;head&amp;gt;&amp;quot; + &amp;quot;&amp;lt;base href=\&amp;quot;http://www.eclipse.org/swt/\&amp;quot; &amp;gt;&amp;quot;&lt;br /&gt;
        + &amp;quot;&amp;lt;title&amp;gt;HTML Test&amp;lt;/title&amp;gt;&amp;lt;/head&amp;gt;&amp;quot;&lt;br /&gt;
        + &amp;quot;&amp;lt;body&amp;gt;&amp;lt;/body&amp;gt;&amp;lt;/html&amp;gt;&amp;quot;;&lt;br /&gt;
    Display display = new Display();&lt;br /&gt;
    Shell shell = new Shell(display);&lt;br /&gt;
    shell.setLayout(new FillLayout());&lt;br /&gt;
    Browser browser = new Browser(shell, SWT.NONE);&lt;br /&gt;
    browser.setText(html);&lt;br /&gt;
    shell.open();&lt;br /&gt;
    while (!shell.isDisposed()) {&lt;br /&gt;
      if (!display.readAndDispatch())&lt;br /&gt;
        display.sleep();&lt;br /&gt;
    }&lt;br /&gt;
    display.dispose();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Browser supports the following listeners: ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;OL&amp;gt;&amp;lt;LI&amp;gt;CloseWindowListener&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;LocationListener&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;OpenWindowListener&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;ProgressListener&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;StatusTextListener&amp;lt;/LI&amp;gt;&amp;lt;LI&amp;gt;VisibilityWindowListener&amp;lt;/LI&amp;gt;&amp;lt;/OL&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Renderer HTML in memory ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import org.eclipse.swt.SWT;&lt;br /&gt;
import org.eclipse.swt.browser.Browser;&lt;br /&gt;
import org.eclipse.swt.layout.FillLayout;&lt;br /&gt;
import org.eclipse.swt.widgets.Display;&lt;br /&gt;
import org.eclipse.swt.widgets.Shell;&lt;br /&gt;
public class HTMLRendererInMemory {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    String html = &amp;quot;&amp;lt;HTML&amp;gt;&amp;lt;HEAD&amp;gt;&amp;lt;TITLE&amp;gt;HTML Test&amp;lt;/TITLE&amp;gt;&amp;lt;/HEAD&amp;gt;&amp;lt;BODY&amp;gt;&amp;quot;;&lt;br /&gt;
    for (int i = 0; i &amp;lt; 100; i++){&lt;br /&gt;
      html += &amp;quot;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;quot;;&lt;br /&gt;
    }&lt;br /&gt;
    html += &amp;quot;&amp;lt;/BODY&amp;gt;&amp;lt;/HTML&amp;gt;&amp;quot;;&lt;br /&gt;
    Display display = new Display();&lt;br /&gt;
    Shell shell = new Shell(display);&lt;br /&gt;
    shell.setLayout(new FillLayout());&lt;br /&gt;
    Browser browser = new Browser(shell, SWT.NONE);&lt;br /&gt;
    browser.setText(html);&lt;br /&gt;
    shell.open();&lt;br /&gt;
    while (!shell.isDisposed()) {&lt;br /&gt;
      if (!display.readAndDispatch())&lt;br /&gt;
        display.sleep();&lt;br /&gt;
    }&lt;br /&gt;
    display.dispose();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Using Browser to load a website ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import org.eclipse.swt.SWT;&lt;br /&gt;
import org.eclipse.swt.browser.Browser;&lt;br /&gt;
import org.eclipse.swt.widgets.Display;&lt;br /&gt;
import org.eclipse.swt.widgets.Shell;&lt;br /&gt;
public class BrowserLoadingWebsite {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Display display = new Display();&lt;br /&gt;
    Shell shell = new Shell(display);&lt;br /&gt;
    &lt;br /&gt;
    Browser browser = new Browser(shell, SWT.NONE);&lt;br /&gt;
    browser.setBounds(5,5,600,600);&lt;br /&gt;
    browser.setUrl(&amp;quot;http://jexp.ru&amp;quot;);    &lt;br /&gt;
    shell.open();&lt;br /&gt;
    while (!shell.isDisposed()) {&lt;br /&gt;
      if (!display.readAndDispatch())&lt;br /&gt;
        display.sleep();&lt;br /&gt;
    }&lt;br /&gt;
    display.dispose();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Using ProgressBar to display the Browser progress ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import org.eclipse.swt.SWT;&lt;br /&gt;
import org.eclipse.swt.browser.Browser;&lt;br /&gt;
import org.eclipse.swt.browser.ProgressEvent;&lt;br /&gt;
import org.eclipse.swt.browser.ProgressListener;&lt;br /&gt;
import org.eclipse.swt.widgets.Display;&lt;br /&gt;
import org.eclipse.swt.widgets.ProgressBar;&lt;br /&gt;
import org.eclipse.swt.widgets.Shell;&lt;br /&gt;
public class BrowserProgress {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Display display = new Display();&lt;br /&gt;
    Shell shell = new Shell(display);&lt;br /&gt;
    &lt;br /&gt;
    Browser browser = new Browser(shell, SWT.NONE);&lt;br /&gt;
    browser.setBounds(5,5,600,600);&lt;br /&gt;
    final ProgressBar progressBar = new ProgressBar(shell, SWT.NONE);&lt;br /&gt;
    progressBar.setBounds(5,650,600,20);&lt;br /&gt;
    &lt;br /&gt;
    browser.addProgressListener(new ProgressListener() {&lt;br /&gt;
      public void changed(ProgressEvent event) {&lt;br /&gt;
          if (event.total == 0) return;                            &lt;br /&gt;
          int ratio = event.current * 100 / event.total;&lt;br /&gt;
          progressBar.setSelection(ratio);&lt;br /&gt;
      }&lt;br /&gt;
      public void completed(ProgressEvent event) {&lt;br /&gt;
        progressBar.setSelection(0);&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    &lt;br /&gt;
    browser.setUrl(&amp;quot;http://jexp.ru&amp;quot;);    &lt;br /&gt;
    shell.open();&lt;br /&gt;
    while (!shell.isDisposed()) {&lt;br /&gt;
      if (!display.readAndDispatch())&lt;br /&gt;
        display.sleep();&lt;br /&gt;
    }&lt;br /&gt;
    display.dispose();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>