org.jdesktop.jdic.browser
Class WebBrowser

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Canvas
          extended by org.jdesktop.jdic.browser.WebBrowser
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, javax.accessibility.Accessible

public class WebBrowser
extends java.awt.Canvas

A WebBrowser component represents a blank rectangular area of the screen onto which the application can load webpages or from which the application can trap events from the browser window. In order to show WebBrowser component in GUI, users need to add WebBrowser to a top-level container, such as Frame.

The class that is interested in processing a WebBrowser event should implement interface WebBrowserListener, and the object created with that class should use WebBrowser's addWebBrowserListener method to register as a listener.

As an AWT component, a WebBrowser component must be hosted by a native container somewhere higher up in the component tree (for example, by a JPanel object).

Version:
0.1, 03/07/17
Author:
Kyle Yuan
See Also:
WebBrowserEvent, WebBrowserListener, Serialized Form

Nested Class Summary
static class WebBrowser.Status
          Deprecated. As of release 0.9 of JDIC. Its APIs have been moved to org.jdesktop.jdic.browser.WebBrowser class. Will be removed in a future release.
 
Nested classes/interfaces inherited from class java.awt.Canvas
java.awt.Canvas.AccessibleAWTCanvas
 
Nested classes/interfaces inherited from class java.awt.Component
java.awt.Component.AccessibleAWTComponent, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
 
Field Summary
 
Fields inherited from class java.awt.Component
BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
 
Fields inherited from interface java.awt.image.ImageObserver
ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
 
Constructor Summary
WebBrowser()
          Constructs a new WebBrowser object with no URL specified.
WebBrowser(boolean autoDispose)
          Constructs a new WebBrowser object with the specified boolean value autoDispose as the flag which indicates whether this instance will automatically dispose itself in removeNotify() or should be disposed by the developer directly calling dispose().
WebBrowser(java.net.URL url)
          Constructs a new WebBrowser with an URL specified.
WebBrowser(java.net.URL url, boolean autoDispose)
          Constructs a new WebBrowser with an specified URL and boolean flag to indicate the dispose schema.
 
Method Summary
 void addNotify()
          Creates the peer for this WebBrowser component.
 void addWebBrowserListener(WebBrowserListener listener)
          Adds a WebBrowserEvent listener to the listener list.
 void back()
          Navigates backward one item in the history list.
 void dispose()
          Release this instance's resource and make it undisplayable.
 java.lang.String executeScript(java.lang.String javaScript)
          Executes the specified JavaScript code on the currently loaded document.
 void forward()
          Navigates forward one item in the history list.
static java.lang.String getBrowserBinary()
          Deprecated. As of release 0.9 of JDIC. This method was unnecessarily exposed and will be removed in a future release.
 java.lang.String getContent()
          Returns the HTML content of a document, loaded in a browser.
 WebBrowser.Status getStatus()
          Deprecated. The WebBrowser.Status inner class is deprecated as of release 0.9 of JDIC. Its APIs have been moved to this Browser class. This API is no longer used, and will be removed in a future release.
 java.net.URL getURL()
          Returns the URL of the resource that is currently being loaded.
 WebBrowserListener[] getWebBrowserListeners()
          Returns an array of all the registered WebBrowser listeners.
 boolean isAutoDispose()
          Return the boolean flag which indicates how to dispose this instance.
 boolean isBackEnabled()
          Checks whether this WebBrowser object's back command is enabled.
 boolean isForwardEnabled()
          Checks whether this WebBrowser object's forward command is enabled.
 boolean isInitialized()
          Checks whether this WebBrowser object is initialized successfully.
 void print()
          Prints the currently loaded document.
 void refresh()
          Reloads the URL that is currently loaded in the WebBrowser component.
 void removeNotify()
          Makes this WebBrowser component undisplayable by destroying it native screen resource if the isAutoDispose() return true.
 void removeWebBrowserListener(WebBrowserListener listener)
          Removes a WebBrowserEvent listener from the listener list.
 void setBounds(int x, int y, int width, int height)
          Moves and resizes this component.
 void setContent(java.lang.String htmlContent)
          Sets new HTML content.
static void setDebug(boolean b)
          Enables or disables debug message output.
 void setURL()
          Sets the loaded page to be a blank page.
 void setURL(java.net.URL url)
          Navigates to a resource identified by a URL.
 void setURL(java.net.URL url, java.lang.String postData)
          Navigates to a resource identified by a URL, with the HTTP POST data to send to the server.
 void setURL(java.net.URL url, java.lang.String postData, java.lang.String headers)
          Navigates to a resource identified by a URL, with the HTTP POST data and HTTP headers to send to the server.
 void stop()
          Stops any page loading and rendering activities.
protected  boolean willOpenURL(java.net.URL url)
          Called before a navigation occurs.
protected  boolean willOpenWindow()
          Called when a new window is to be created for loading a resource.
 
Methods inherited from class java.awt.Canvas
createBufferStrategy, createBufferStrategy, getAccessibleContext, getBufferStrategy, paint, update
 
Methods inherited from class java.awt.Component
action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, bounds, checkImage, checkImage, coalesceEvents, contains, contains, createImage, createImage, createVolatileImage, createVolatileImage, deliverEvent, disable, disableEvents, dispatchEvent, doLayout, enable, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getAlignmentX, getAlignmentY, getBackground, getBounds, getBounds, getColorModel, getComponentAt, getComponentAt, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeys, getFocusTraversalKeysEnabled, getFont, getFontMetrics, getForeground, getGraphics, getGraphicsConfiguration, getHeight, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getListeners, getLocale, getLocation, getLocation, getLocationOnScreen, getMaximumSize, getMinimumSize, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPreferredSize, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getSize, getToolkit, getTreeLock, getWidth, getX, getY, gotFocus, handleEvent, hasFocus, hide, imageUpdate, inside, invalidate, isBackgroundSet, isCursorSet, isDisplayable, isDoubleBuffered, isEnabled, isFocusable, isFocusCycleRoot, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isOpaque, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, layout, list, list, list, list, list, locate, location, lostFocus, minimumSize, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, paramString, postEvent, preferredSize, prepareImage, prepareImage, print, printAll, processComponentEvent, processEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processKeyEvent, processMouseEvent, processMouseMotionEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, reshape, resize, resize, setBackground, setBounds, setComponentOrientation, setCursor, setDropTarget, setEnabled, setFocusable, setFocusTraversalKeys, setFocusTraversalKeysEnabled, setFont, setForeground, setIgnoreRepaint, setLocale, setLocation, setLocation, setMaximumSize, setMinimumSize, setName, setPreferredSize, setSize, setSize, setVisible, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle, validate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

WebBrowser

public WebBrowser()
Constructs a new WebBrowser object with no URL specified. This instance will automatically dispose itself when removeNotify() is called.

This constructor is equivalent to WebBrowser(true).

See Also:
WebBrowser(boolean), removeNotify(), dispose()

WebBrowser

public WebBrowser(boolean autoDispose)
Constructs a new WebBrowser object with the specified boolean value autoDispose as the flag which indicates whether this instance will automatically dispose itself in removeNotify() or should be disposed by the developer directly calling dispose().

This constructor is equivalent to WebBrowser(null, autoDispose) .

Parameters:
autoDispose - ture to indicate this instance will automatically dispose itself in removeNotify(); false to indicate the developer should call dispose() when this instance is no longer needed.
See Also:
removeNotify(), dispose(), isAutoDispose()

WebBrowser

public WebBrowser(java.net.URL url)
Constructs a new WebBrowser with an URL specified. This instance will automatically dispose itself when removeNotify() is called.

This constructor is equivalent to WebBrowser(url, true).

Parameters:
url - the URL to be shown in this instance.
See Also:
WebBrowser(boolean), removeNotify(), dispose()

WebBrowser

public WebBrowser(java.net.URL url,
                  boolean autoDispose)
Constructs a new WebBrowser with an specified URL and boolean flag to indicate the dispose schema.

Parameters:
url - the URL to be shown in this instance.
autoDispose - ture to indicate this instance will automatically dispose itself in removeNotify(); false to indicate the developer should call dispose() when this instance is no longer needed.
See Also:
removeNotify(), dispose(), isAutoDispose()
Method Detail

addNotify

public void addNotify()
Creates the peer for this WebBrowser component. The peer allows us to modify the appearance of the WebBrowser component without changing its functionality.

Overrides:
addNotify in class java.awt.Canvas
See Also:
removeNotify()

removeNotify

public void removeNotify()
Makes this WebBrowser component undisplayable by destroying it native screen resource if the isAutoDispose() return true. Or just make this instance invisible if the isAutoDispose() return false.

This method is called by the toolkit internally and should not be called directly by programs.

If isAutoDispose() return false, developer should call dispose() when this instance is no longer needed. Otherwise, it resource will never be released untill this JVM exit.

Overrides:
removeNotify in class java.awt.Component
See Also:
addNotify(), dispose(), isAutoDispose()

dispose

public void dispose()
Release this instance's resource and make it undisplayable. If isAutoDispose() return true, this method will be called by the toolkit internally. If isAutoDispose() return false, this method should be called by developer when this instance is no longer needed.

See Also:
removeNotify(), isAutoDispose()

isAutoDispose

public boolean isAutoDispose()
Return the boolean flag which indicates how to dispose this instance.

Returns:
true if this instance should be disposed by itself when removeNotify() is called. false if this instance should be disposed by the developer directly calling dispose() when it is no longer needed.
See Also:
removeNotify(), addNotify(), dispose()

setBounds

public void setBounds(int x,
                      int y,
                      int width,
                      int height)
Moves and resizes this component. The new location of the top-left corner is specified by x and y, and the new size is specified by width and height.

Overrides:
setBounds in class java.awt.Component
Parameters:
x - - the new x-coordinate of this component
y - - the new y-coordinate of this component
width - - the new width of this component
height - - the new height of this component

addWebBrowserListener

public void addWebBrowserListener(WebBrowserListener listener)
Adds a WebBrowserEvent listener to the listener list. If listener is null, no exception is thrown and no action is performed.

Parameters:
listener - the WebBrowser event listener.

removeWebBrowserListener

public void removeWebBrowserListener(WebBrowserListener listener)
Removes a WebBrowserEvent listener from the listener list. If listener is null, no exception is thrown and no action is performed. If the listener is not in the listener list, no listener is removed.

Parameters:
listener - the WebBrowser event listener.

getWebBrowserListeners

public WebBrowserListener[] getWebBrowserListeners()
Returns an array of all the registered WebBrowser listeners.

Returns:
all of this component's WebBrowserListeners or an empty array if no component listeners are currently registered.
Since:
0.9

getURL

public java.net.URL getURL()
Returns the URL of the resource that is currently being loaded.

Returns:
the current URL being loaded, or null if no URL is currentlloadayed or the WebBrowser is not yet initialized.

setURL

public void setURL()
Sets the loaded page to be a blank page.


setURL

public void setURL(java.net.URL url)
Navigates to a resource identified by a URL.

Parameters:
url - the URL to navigate to.

setURL

public void setURL(java.net.URL url,
                   java.lang.String postData)
Navigates to a resource identified by a URL, with the HTTP POST data to send to the server.

Parameters:
url - the URL to navigate to.
postData - the post data to send with the HTTP POST transaction. For example, "username=myid&password=mypasswd"

setURL

public void setURL(java.net.URL url,
                   java.lang.String postData,
                   java.lang.String headers)
Navigates to a resource identified by a URL, with the HTTP POST data and HTTP headers to send to the server.

Parameters:
url - the URL to navigate to.
postData - the post data to send with the HTTP POST transaction. For example, "username=myid&password=mypasswd"
headers - the HTTP headers to send with the HTTP POST transaction.
Since:
0.9.2

back

public void back()
Navigates backward one item in the history list.


forward

public void forward()
Navigates forward one item in the history list.


refresh

public void refresh()
Reloads the URL that is currently loaded in the WebBrowser component.


stop

public void stop()
Stops any page loading and rendering activities.


print

public void print()
Prints the currently loaded document.

This is a convenience method to use executeScript to print the currently loaded document:

     // Print the currently loaded document.    
     WebBrowser webBrowser = new WebBrowser();
     ......
     webBrowser.executeScript("window.print();");
 

Since:
0.9.2
See Also:
executeScript(java.lang.String)

setContent

public void setContent(java.lang.String htmlContent)
Sets new HTML content.

Parameters:
htmlContent - the HTML content to set.
Since:
0.9

getContent

public java.lang.String getContent()
Returns the HTML content of a document, loaded in a browser.

Returns:
the HTML content of a document, loaded in a browser.
Since:
0.9

executeScript

public java.lang.String executeScript(java.lang.String javaScript)
Executes the specified JavaScript code on the currently loaded document. This should not be called until after a documentCompleted event fired in WebBrowserListener.

For example, execute JavaScript to show an alert dialog:

     // Show a JavaScript alert dialog.    
     WebBrowser webBrowser = new WebBrowser();
     webBrowser.executeScript("alert('Using executeScript')");
 

Returns:
the result of JavaScript execution, if there is any.
Since:
0.9
See Also:
WebBrowserListener.documentCompleted(org.jdesktop.jdic.browser.WebBrowserEvent)

setDebug

public static void setDebug(boolean b)
Enables or disables debug message output. Debug message out is disabled initially by default. Calls it via reflection when necessary.

Parameters:
b - if true, debug message output is enabled; otherwise debug message output is disabled.

getStatus

public WebBrowser.Status getStatus()
Deprecated. The WebBrowser.Status inner class is deprecated as of release 0.9 of JDIC. Its APIs have been moved to this Browser class. This API is no longer used, and will be removed in a future release.

Returns a Status object, which indicates the status of this WebBrowser object.

See Also:
WebBrowser.Status

getBrowserBinary

public static java.lang.String getBrowserBinary()
Deprecated. As of release 0.9 of JDIC. This method was unnecessarily exposed and will be removed in a future release.

Returns the name of the embedded browser's native binary, which runs as a standalone native process.


isInitialized

public boolean isInitialized()
Checks whether this WebBrowser object is initialized successfully.

Returns:
true if the WebBrowser object is initialized successfully; otherwise, false.

isBackEnabled

public boolean isBackEnabled()
Checks whether this WebBrowser object's back command is enabled.

Returns:
true if the WebBrowser can navigate to the previous session history item, and false otherwise.
See Also:
back()

isForwardEnabled

public boolean isForwardEnabled()
Checks whether this WebBrowser object's forward command is enabled.

Returns:
true if the WebBrowser can navigate to the next session history item, and false otherwise.
See Also:
forward()

willOpenURL

protected boolean willOpenURL(java.net.URL url)
Called before a navigation occurs.

A subclass can override this method to block the navigation or allow it to proceed.

Parameters:
url - the URL to navigate to.
Returns:
false will block the navigation from starting; true otherwise. By default, it returns true.

willOpenWindow

protected boolean willOpenWindow()
Called when a new window is to be created for loading a resource.

A subclass can override this method to block the creation of a new window or allow it to proceed.

Returns:
false will block the creation of a new window; true otherwise. By default, it returns true.


Copyright © 2005 Sun Microsystems All Rights Reserved.