Package org.eclipse.swt.browser
Class WindowEvent
java.lang.Object
java.util.EventObject
org.eclipse.swt.events.TypedEvent
org.eclipse.swt.browser.WindowEvent
- All Implemented Interfaces:
Serializable
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
-
Field Summary
FieldsModifier and TypeFieldDescriptionbooleanSpecifies whether theShellhosting theBrowsershould display an address bar.Browserprovided by the application.Requested location for theShellhosting theBrowser.booleanSpecifies whether theShellhosting theBrowsershould display a menu bar.booleanSpecifies whether the platform requires the user to provide aBrowserto handle the new window.RequestedBrowsersize.booleanSpecifies whether theShellhosting theBrowsershould display a status bar.booleanSpecifies whether theShellhosting theBrowsershould display a tool bar.Fields inherited from class org.eclipse.swt.events.TypedEvent
data, display, time, widgetFields inherited from class java.util.EventObject
source -
Constructor Summary
Constructors -
Method Summary
Methods inherited from class java.util.EventObject
getSource
-
Field Details
-
required
public boolean requiredSpecifies whether the platform requires the user to provide aBrowserto handle the new window.- Since:
- 3.1
-
browser
Browserprovided by the application. -
location
Requested location for theShellhosting theBrowser. It isnullif no location has been requested. -
size
RequestedBrowsersize. The client area of theShellhosting theBrowsershould be large enough to accommodate that size. It isnullif no size has been requested. -
addressBar
public boolean addressBarSpecifies whether theShellhosting theBrowsershould display an address bar.- Since:
- 3.1
-
statusBar
public boolean statusBarSpecifies whether theShellhosting theBrowsershould display a status bar.- Since:
- 3.1
-
toolBar
public boolean toolBarSpecifies whether theShellhosting theBrowsershould display a tool bar.- Since:
- 3.1
-
-
Constructor Details
-
WindowEvent
Constructs a new instance of this class.- Parameters:
widget- the widget that fired the event- Since:
- 3.5
-
-
Method Details
-
toString
Returns a string containing a concise, human-readable description of the receiver.- Overrides:
toStringin classTypedEvent- Returns:
- a string representation of the event
-