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
public class WindowEvent extends TypedEvent
AWindowEventis sent by aBrowserwhen a new window needs to be created or when an existing window needs to be closed. This notification occurs when a javascript command such aswindow.openorwindow.closegets executed by aBrowser.The following example shows how
WindowEvent's are typically handled.
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.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(); } }); }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:
CloseWindowListener,OpenWindowListener,VisibilityWindowListener, Sample code and further information, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description booleanaddressBarSpecifies whether theShellhosting theBrowsershould display an address bar.BrowserbrowserBrowserprovided by the application.PointlocationRequested location for theShellhosting theBrowser.booleanmenuBarSpecifies whether theShellhosting theBrowsershould display a menu bar.booleanrequiredSpecifies whether the platform requires the user to provide aBrowserto handle the new window.PointsizeRequestedBrowsersize.booleanstatusBarSpecifies whether theShellhosting theBrowsershould display a status bar.booleantoolBarSpecifies whether theShellhosting theBrowsershould 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 WindowEvent(Widget widget)Constructs a new instance of this class.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description StringtoString()Returns a string containing a concise, human-readable description of the receiver.-
Methods inherited from class java.util.EventObject
getSource
-
-
-
-
Field Detail
-
required
public boolean required
Specifies whether the platform requires the user to provide aBrowserto handle the new window.- Since:
- 3.1
-
browser
public Browser browser
Browserprovided by the application.
-
location
public Point location
Requested location for theShellhosting theBrowser. It isnullif no location has been requested.
-
size
public Point 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 addressBar
Specifies whether theShellhosting theBrowsershould display an address bar.- Since:
- 3.1
-
menuBar
public boolean menuBar
Specifies whether theShellhosting theBrowsershould display a menu bar. Note that this is alwaystrueon OS X.- Since:
- 3.1
-
statusBar
public boolean statusBar
Specifies whether theShellhosting theBrowsershould display a status bar.- Since:
- 3.1
-
toolBar
public boolean toolBar
Specifies whether theShellhosting theBrowsershould display a tool bar.- Since:
- 3.1
-
-
Constructor Detail
-
WindowEvent
public WindowEvent(Widget widget)
Constructs a new instance of this class.- Parameters:
widget- the widget that fired the event- Since:
- 3.5
-
-
Method Detail
-
toString
public String toString()
Returns a string containing a concise, human-readable description of the receiver.- Overrides:
toStringin classTypedEvent- Returns:
- a string representation of the event
-
-