Class WindowEvent

All Implemented Interfaces:
Serializable

public class WindowEvent extends TypedEvent
A WindowEvent is sent by a Browser when a new window needs to be created or when an existing window needs to be closed. This notification occurs when a javascript command such as window.open or window.close gets executed by a Browser.

The following example shows how WindowEvent's are typically handled.


        public static void main(String[] args) {
                Display display = new Display();
                Shell shell = new Shell(display);
                shell.setText("Main Window");
                shell.setLayout(new FillLayout());
                Browser browser = new Browser(shell, SWT.NONE);
                initialize(display, browser);
                shell.open();
                browser.setUrl("http://www.eclipse.org");
                while (!shell.isDisposed()) {
                        if (!display.readAndDispatch())
                                display.sleep();
                }
                display.dispose();
        }

        static void initialize(final Display display, Browser browser) {
                browser.addOpenWindowListener(new OpenWindowListener() {
                        public void open(WindowEvent event) {
                                // Certain platforms can provide a default full browser.
                                // simply return in that case if the application prefers
                                // the default full browser to the embedded one set below.
                                if (!event.required) return;

                                // Embed the new window
                                Shell shell = new Shell(display);
                                shell.setText("New Window");
                                shell.setLayout(new FillLayout());
                                Browser browser = new Browser(shell, SWT.NONE);
                                initialize(display, browser);
                                event.browser = browser;
                        }
                });
                browser.addVisibilityWindowListener(new VisibilityWindowListener() {
                        public void hide(WindowEvent event) {
                                Browser browser = (Browser)event.widget;
                                Shell shell = browser.getShell();
                                shell.setVisible(false);
                        }
                        public void show(WindowEvent event) {
                                Browser browser = (Browser)event.widget;
                                Shell shell = browser.getShell();
                                if (event.location != null) shell.setLocation(event.location);
                                if (event.size != null) {
                                        Point size = event.size;
                                        shell.setSize(shell.computeSize(size.x, size.y));
                                }
                                if (event.addressBar || event.menuBar || event.statusBar || event.toolBar) {
                                        // Create widgets for the address bar, menu bar, status bar and/or tool bar
                                        // leave enough space in the Shell to accommodate a Browser of the size
                                        // given by event.size
                                }
                                shell.open();
                        }
                });
                browser.addCloseWindowListener(new CloseWindowListener() {
                        public void close(WindowEvent event) {
                                Browser browser = (Browser)event.widget;
                                Shell shell = browser.getShell();
                                shell.close();
                        }
                });
        }
 
The following notifications are emitted when the user selects a hyperlink that targets a new window or as the result of a javascript that executes window.open.

Main Browser

  • User selects a link that opens in a new window or javascript requests a new window
  • OpenWindowListener.open() notified
    • Application creates a new Shell and a second Browser inside that Shell
    • Application registers WindowListener's on that second Browser, such as VisibilityWindowListener
    • Application returns the second Browser as the host for the new window content

Second Browser

  • VisibilityWindowListener.show() notified
    • Application sets navigation tool bar, status bar, menu bar and Shell size
    • Application makes the Shell hosting the second Browser visible
    • User now sees the new window
Since:
3.0
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    boolean
    Specifies whether the Shell hosting the Browser should display an address bar.
    Browser provided by the application.
    Requested location for the Shell hosting the Browser.
    boolean
    Specifies whether the Shell hosting the Browser should display a menu bar.
    boolean
    Specifies whether the platform requires the user to provide a Browser to handle the new window.
    Requested Browser size.
    boolean
    Specifies whether the Shell hosting the Browser should display a status bar.
    boolean
    Specifies whether the Shell hosting the Browser should display a tool bar.

    Fields inherited from class org.eclipse.swt.events.TypedEvent

    data, display, time, widget

    Fields inherited from class java.util.EventObject

    source
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructs a new instance of this class.
  • Method Summary

    Modifier and Type
    Method
    Description
    Returns a string containing a concise, human-readable description of the receiver.

    Methods inherited from class java.util.EventObject

    getSource

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Field Details

    • required

      public boolean required
      Specifies whether the platform requires the user to provide a Browser to handle the new window.
      Since:
      3.1
    • browser

      public Browser browser
      Browser provided by the application.
    • location

      public Point location
      Requested location for the Shell hosting the Browser. It is null if no location has been requested.
    • size

      public Point size
      Requested Browser size. The client area of the Shell hosting the Browser should be large enough to accommodate that size. It is null if no size has been requested.
    • addressBar

      public boolean addressBar
      Specifies whether the Shell hosting the Browser should display an address bar.
      Since:
      3.1
    • statusBar

      public boolean statusBar
      Specifies whether the Shell hosting the Browser should display a status bar.
      Since:
      3.1
    • toolBar

      public boolean toolBar
      Specifies whether the Shell hosting the Browser should display a tool bar.
      Since:
      3.1
  • Constructor Details

    • WindowEvent

      public WindowEvent(Widget widget)
      Constructs a new instance of this class.
      Parameters:
      widget - the widget that fired the event
      Since:
      3.5
  • Method Details

    • toString

      public String toString()
      Returns a string containing a concise, human-readable description of the receiver.
      Overrides:
      toString in class TypedEvent
      Returns:
      a string representation of the event