org.lobobrowser.html.test
Class SimpleHtmlRendererContext

java.lang.Object
  extended by org.lobobrowser.html.test.SimpleHtmlRendererContext
All Implemented Interfaces:
HtmlRendererContext

public class SimpleHtmlRendererContext
extends java.lang.Object
implements HtmlRendererContext

The SimpleHtmlRendererContext class implements the HtmlRendererContext interface. Note that this class provides rudimentary implementations of most callback methods. Overridding some of the methods in this class will usually be necessary in a professional application.

A simple way to load a URL into the HtmlPanel of the renderer context is to invoke navigate(String).


Field Summary
protected  java.net.URLConnection currentConnection
          The connection currently opened by openSync() if any.
 
Constructor Summary
SimpleHtmlRendererContext(HtmlPanel contextComponent)
          Deprecated. Use constructor that takes HtmlPanel and UserAgentContext
SimpleHtmlRendererContext(HtmlPanel contextComponent, HtmlRendererContext parentRcontext)
          Constructs a SimpleHtmlRendererContext that is a child of another HtmlRendererContext.
SimpleHtmlRendererContext(HtmlPanel contextComponent, UserAgentContext ucontext)
          Constructs a SimpleHtmlRendererContext.
 
Method Summary
 void alert(java.lang.String message)
          Opens a simple message dialog.
 void back()
          It should navigate back one page.
 void blur()
          It should give up focus on the current browser window.
 void close()
          It should close the current browser window.
 boolean confirm(java.lang.String message)
          Opens a simple confirmation window.
 BrowserFrame createBrowserFrame()
          Creates a BrowserFrame instance.
protected  HTMLDocumentImpl createDocument(org.xml.sax.InputSource inputSource)
          Creates a blank document instance.
 void error(java.lang.String message)
           
 void error(java.lang.String message, java.lang.Throwable throwable)
           
 void focus()
          It should request focus for the current browser window.
 void forward()
          Goes forward one page.
 java.lang.String getCurrentURL()
          Gets the current URL in history.
 java.lang.String getDefaultStatus()
          Should return true if and only if the current browser window is closed.
protected  java.lang.String getDocumentCharset(java.net.URLConnection connection)
          This method is invoked by submitForm(String, URL, String, String, FormInput[]) to determine the charset of a document.
 org.w3c.dom.html2.HTMLCollection getFrames()
          Gets a collection of current document frames, by querying the document currently held by the local HtmlPanel instance.
 int getHistoryLength()
          Gets the number of pages in the history list.
 HtmlObject getHtmlObject(org.w3c.dom.html2.HTMLElement element)
          Returns null.
 HtmlPanel getHtmlPanel()
           
 java.lang.String getName()
          It should return the name of the browser window, if this renderer context is for the top frame in the window.
 java.lang.String getNextURL()
          Gets the next URL in the history.
 HtmlRendererContext getOpener()
          Gets the opener of the frame/window in the current context.
 HtmlRendererContext getParent()
          Gets the parent of the frame/window in the current context.
 java.lang.String getPreviousURL()
          Gets the previous URL in the history.
protected  java.net.Proxy getProxy()
          Gets the connection proxy used in navigate(URL, String).
 java.lang.String getSourceCode()
          Gets the source code of the current HTML document.
 java.lang.String getStatus()
          Gets the window status text.
 HtmlRendererContext getTop()
          Gets the top-most browser frame/window.
 UserAgentContext getUserAgentContext()
          If a UserAgentContext instance was provided in the constructor, then that instance is returned.
 void goToHistoryURL(java.lang.String url)
          Navigates to a URL in the history list.
 boolean isClosed()
          Should return true if and only if the current browser window is closed.
 boolean isImageLoadingEnabled()
          This method should return true if and only if image loading needs to be enabled.
protected  boolean isNavigationAsynchronous()
          Indicates whether navigation (via submitForm(String, URL, String, String, FormInput[])) should be asynchronous.
 boolean isVisitedLink(org.w3c.dom.html2.HTMLLinkElement link)
          Should be overridden to return true if the link has been visited.
 void linkClicked(org.w3c.dom.html2.HTMLElement linkNode, java.net.URL url, java.lang.String target)
          Implements the link click handler by invoking navigate(URL, String).
 void moveInHistory(int offset)
          Navigates the history according to the given offset.
 void navigate(java.lang.String fullURL)
          Convenience method provided to allow loading a document into the renderer.
 void navigate(java.net.URL href, java.lang.String target)
          Implements simple navigation with incremental rendering by invoking submitForm(String, URL, String, String, FormInput[]) with a GET request method.
 boolean onContextMenu(org.w3c.dom.html2.HTMLElement element, java.awt.event.MouseEvent event)
          This method must be overridden to implement a context menu.
 boolean onDoubleClick(org.w3c.dom.html2.HTMLElement element, java.awt.event.MouseEvent event)
          This method is called when there's a mouse double-click on an element.
 boolean onMouseClick(org.w3c.dom.html2.HTMLElement element, java.awt.event.MouseEvent event)
          This method is called when there's a mouse click on an element.
 void onMouseOut(org.w3c.dom.html2.HTMLElement element, java.awt.event.MouseEvent event)
          This method can be overridden to receive notifications when the mouse leaves an element.
 void onMouseOver(org.w3c.dom.html2.HTMLElement element, java.awt.event.MouseEvent event)
          This method can be overridden to receive notifications when the mouse first enters an element.
 HtmlRendererContext open(java.lang.String url, java.lang.String windowName, java.lang.String windowFeatures, boolean replace)
          Deprecated. Use open(URL, String, String, boolean).
 HtmlRendererContext open(java.net.URL url, java.lang.String windowName, java.lang.String windowFeatures, boolean replace)
          It should open a new browser window.
 java.lang.String prompt(java.lang.String message, java.lang.String inputDefault)
          Shows a simple prompt dialog.
 void reload()
          Implements reload as navigation to current URL.
 void resizeBy(int byWidth, int byHeight)
          Resizes the window.
 void resizeTo(int width, int height)
          Resizes the window.
 void scroll(int x, int y)
          Changes the origin of the HTML block's scrollable area according to the position given.
 void scrollBy(int x, int y)
          Scrolls the client area.
 void setDefaultStatus(java.lang.String message)
           
 void setOpener(HtmlRendererContext opener)
          Sets the context that opened the current frame/window.
 void setStatus(java.lang.String message)
          Sets the window status text.
 void submitForm(java.lang.String method, java.net.URL action, java.lang.String target, java.lang.String enctype, FormInput[] formInputs)
          Implements simple navigation and form submission with incremental rendering and target processing, including frame lookup.
protected  void submitFormSync(java.lang.String method, java.net.URL action, java.lang.String target, java.lang.String enctype, FormInput[] formInputs)
          Submits a form and/or navigates by making a synchronous request.
 void warn(java.lang.String message)
           
 void warn(java.lang.String message, java.lang.Throwable throwable)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

currentConnection

protected java.net.URLConnection currentConnection
The connection currently opened by openSync() if any.

Constructor Detail

SimpleHtmlRendererContext

public SimpleHtmlRendererContext(HtmlPanel contextComponent)
Deprecated. Use constructor that takes HtmlPanel and UserAgentContext

Constructs a SimpleHtmlRendererContext.

Parameters:
contextComponent - The component that will render HTML.

SimpleHtmlRendererContext

public SimpleHtmlRendererContext(HtmlPanel contextComponent,
                                 UserAgentContext ucontext)
Constructs a SimpleHtmlRendererContext.

Parameters:
contextComponent - The component that will render HTML.
See Also:
SimpleUserAgentContext

SimpleHtmlRendererContext

public SimpleHtmlRendererContext(HtmlPanel contextComponent,
                                 HtmlRendererContext parentRcontext)
Constructs a SimpleHtmlRendererContext that is a child of another HtmlRendererContext.

Parameters:
contextComponent - The component that will render HTML.
parentRcontext - The parent's renderer context.
Method Detail

getHtmlPanel

public HtmlPanel getHtmlPanel()

getSourceCode

public java.lang.String getSourceCode()
Gets the source code of the current HTML document.


getFrames

public org.w3c.dom.html2.HTMLCollection getFrames()
Gets a collection of current document frames, by querying the document currently held by the local HtmlPanel instance.

Specified by:
getFrames in interface HtmlRendererContext

reload

public void reload()
Implements reload as navigation to current URL. Override to implement a more robust reloading mechanism.

Specified by:
reload in interface HtmlRendererContext

linkClicked

public void linkClicked(org.w3c.dom.html2.HTMLElement linkNode,
                        java.net.URL url,
                        java.lang.String target)
Implements the link click handler by invoking navigate(URL, String).

Specified by:
linkClicked in interface HtmlRendererContext
Parameters:
linkNode - The HTML node that was clicked.
url - The destination URL.
target - Same as the target attribute in the HTML anchor tag, i.e. _top, _blank, etc.

getProxy

protected java.net.Proxy getProxy()
Gets the connection proxy used in navigate(URL, String). This implementation calls SimpleUserAgentContext.getProxy() if getUserAgentContext() returns an instance assignable to SimpleUserAgentContext. The method may be overridden to provide a different proxy setting.


navigate

public void navigate(java.net.URL href,
                     java.lang.String target)
Implements simple navigation with incremental rendering by invoking submitForm(String, URL, String, String, FormInput[]) with a GET request method.

Specified by:
navigate in interface HtmlRendererContext
Parameters:
href - The destination URL.
target - Same as the target attribute in the HTML anchor tag, i.e. _top, _blank, etc.

navigate

public void navigate(java.lang.String fullURL)
              throws java.net.MalformedURLException
Convenience method provided to allow loading a document into the renderer.

Parameters:
fullURL - The absolute URL of the document.
Throws:
java.net.MalformedURLException
See Also:
navigate(URL, String)

submitForm

public void submitForm(java.lang.String method,
                       java.net.URL action,
                       java.lang.String target,
                       java.lang.String enctype,
                       FormInput[] formInputs)
Implements simple navigation and form submission with incremental rendering and target processing, including frame lookup. Should be overridden to allow for more robust browser navigation and form submission.

Notes:

Specified by:
submitForm in interface HtmlRendererContext
Parameters:
method - The request method, GET or POST.
action - The destination URL.
target - Same as the target attribute in the FORM tag, i.e. _blank, _top, etc.
enctype - The encoding type.
formInputs - An array of FormInput instances.
See Also:
navigate(URL, String)

isNavigationAsynchronous

protected boolean isNavigationAsynchronous()
Indicates whether navigation (via submitForm(String, URL, String, String, FormInput[])) should be asynchronous. This overridable implementation returns true.


submitFormSync

protected void submitFormSync(java.lang.String method,
                              java.net.URL action,
                              java.lang.String target,
                              java.lang.String enctype,
                              FormInput[] formInputs)
                       throws java.io.IOException,
                              org.xml.sax.SAXException
Submits a form and/or navigates by making a synchronous request. This method is invoked by submitForm(String, URL, String, String, FormInput[]).

Parameters:
method - The request method.
action - The action URL.
target - The target identifier.
enctype - The encoding type.
formInputs - The form inputs.
Throws:
java.io.IOException
org.xml.sax.SAXException
See Also:
submitForm(String, URL, String, String, FormInput[])

createDocument

protected HTMLDocumentImpl createDocument(org.xml.sax.InputSource inputSource)
                                   throws java.io.IOException,
                                          org.xml.sax.SAXException
Creates a blank document instance. This method is invoked whenever navigation or form submission occur. It is provided so it can be overridden to create specialized document implmentations.

Parameters:
inputSource - The document input source.
Throws:
java.io.IOException
org.xml.sax.SAXException

getDocumentCharset

protected java.lang.String getDocumentCharset(java.net.URLConnection connection)
This method is invoked by submitForm(String, URL, String, String, FormInput[]) to determine the charset of a document. The charset is determined by looking at the Content-Type header.

Parameters:
connection - A URL connection.

alert

public void alert(java.lang.String message)
Opens a simple message dialog.

Specified by:
alert in interface HtmlRendererContext
Parameters:
message - Message shown by the dialog.

blur

public void blur()
It should give up focus on the current browser window. This implementation does nothing and should be overridden.

Specified by:
blur in interface HtmlRendererContext

close

public void close()
It should close the current browser window. This implementation does nothing and should be overridden.

Specified by:
close in interface HtmlRendererContext

confirm

public boolean confirm(java.lang.String message)
Opens a simple confirmation window.

Specified by:
confirm in interface HtmlRendererContext
Parameters:
message - The message shown by the confirmation dialog.
Returns:
True if the user selects YES.

focus

public void focus()
It should request focus for the current browser window. This implementation does nothing and should be overridden.

Specified by:
focus in interface HtmlRendererContext

open

public final HtmlRendererContext open(java.lang.String url,
                                      java.lang.String windowName,
                                      java.lang.String windowFeatures,
                                      boolean replace)
Deprecated. Use open(URL, String, String, boolean).

Description copied from interface: HtmlRendererContext
Opens a separate browser window and renders a URL.

Specified by:
open in interface HtmlRendererContext
Parameters:
url - The URL to be rendered.
windowName - The name of the new window.
windowFeatures - The features of the new window (same as in Javascript open method).
Returns:
A new HtmlRendererContext instance.

open

public HtmlRendererContext open(java.net.URL url,
                                java.lang.String windowName,
                                java.lang.String windowFeatures,
                                boolean replace)
It should open a new browser window. This implementation does nothing and should be overridden.

Specified by:
open in interface HtmlRendererContext
Parameters:
url - The requested URL.
windowName - A window identifier.
windowFeatures - Window features specified in a format equivalent to that of window.open() in Javascript.
replace - Whether an existing window with the same name should be replaced.
Returns:
A new HtmlRendererContext instance.

prompt

public java.lang.String prompt(java.lang.String message,
                               java.lang.String inputDefault)
Shows a simple prompt dialog.

Specified by:
prompt in interface HtmlRendererContext
Parameters:
message - The message shown by the dialog.
inputDefault - The default input value.
Returns:
The user's input value.

scroll

public void scroll(int x,
                   int y)
Changes the origin of the HTML block's scrollable area according to the position given.

This method may be called outside of the GUI thread. The operation is scheduled immediately in that thread as needed.

Specified by:
scroll in interface HtmlRendererContext
Parameters:
x - The new x coordinate for the origin.
y - The new y coordinate for the origin.

scrollBy

public void scrollBy(int x,
                     int y)
Description copied from interface: HtmlRendererContext
Scrolls the client area.

Specified by:
scrollBy in interface HtmlRendererContext
Parameters:
x - Horizontal pixels to scroll.
y - Vertical pixels to scroll.

isClosed

public boolean isClosed()
Should return true if and only if the current browser window is closed. This implementation returns false and should be overridden.

Specified by:
isClosed in interface HtmlRendererContext

getDefaultStatus

public java.lang.String getDefaultStatus()
Should return true if and only if the current browser window is closed. This implementation returns false and should be overridden.

Specified by:
getDefaultStatus in interface HtmlRendererContext

getName

public java.lang.String getName()
It should return the name of the browser window, if this renderer context is for the top frame in the window. This implementation returns a blank string, so it should be overridden.

Specified by:
getName in interface HtmlRendererContext

getParent

public HtmlRendererContext getParent()
Description copied from interface: HtmlRendererContext
Gets the parent of the frame/window in the current context.

Specified by:
getParent in interface HtmlRendererContext

getOpener

public HtmlRendererContext getOpener()
Description copied from interface: HtmlRendererContext
Gets the opener of the frame/window in the current context.

Specified by:
getOpener in interface HtmlRendererContext

setOpener

public void setOpener(HtmlRendererContext opener)
Description copied from interface: HtmlRendererContext
Sets the context that opened the current frame/window.

Specified by:
setOpener in interface HtmlRendererContext
Parameters:
opener - A HtmlRendererContext.

getStatus

public java.lang.String getStatus()
Description copied from interface: HtmlRendererContext
Gets the window status text.

Specified by:
getStatus in interface HtmlRendererContext

setStatus

public void setStatus(java.lang.String message)
Description copied from interface: HtmlRendererContext
Sets the window status text.

Specified by:
setStatus in interface HtmlRendererContext
Parameters:
message - A string.

getTop

public HtmlRendererContext getTop()
Description copied from interface: HtmlRendererContext
Gets the top-most browser frame/window.

Specified by:
getTop in interface HtmlRendererContext

createBrowserFrame

public BrowserFrame createBrowserFrame()
Description copied from interface: HtmlRendererContext
Creates a BrowserFrame instance.

Specified by:
createBrowserFrame in interface HtmlRendererContext

warn

public void warn(java.lang.String message,
                 java.lang.Throwable throwable)

error

public void error(java.lang.String message,
                  java.lang.Throwable throwable)

warn

public void warn(java.lang.String message)

error

public void error(java.lang.String message)

getHtmlObject

public HtmlObject getHtmlObject(org.w3c.dom.html2.HTMLElement element)
Returns null. This method should be overridden to provide OBJECT, EMBED or APPLET functionality.

Specified by:
getHtmlObject in interface HtmlRendererContext
Parameters:
element - The DOM element for the object, which may either represent an OBJECT, EMBED or an APPLET tag.
Returns:
Implementations of this method must return null if they have any problems producing a HtmlObject instance. This is particularly true of OBJECT tags, where inner HTML of the tag must be rendered if the OBJECT content cannot be handled.

setDefaultStatus

public void setDefaultStatus(java.lang.String message)
Specified by:
setDefaultStatus in interface HtmlRendererContext

getUserAgentContext

public UserAgentContext getUserAgentContext()
If a UserAgentContext instance was provided in the constructor, then that instance is returned. Otherwise, an instance of SimpleUserAgentContext is created and returned.

The context returned by this method is used by local request facilities and other parts of the renderer.

Specified by:
getUserAgentContext in interface HtmlRendererContext

isVisitedLink

public boolean isVisitedLink(org.w3c.dom.html2.HTMLLinkElement link)
Should be overridden to return true if the link has been visited.

Specified by:
isVisitedLink in interface HtmlRendererContext

onContextMenu

public boolean onContextMenu(org.w3c.dom.html2.HTMLElement element,
                             java.awt.event.MouseEvent event)
This method must be overridden to implement a context menu.

Specified by:
onContextMenu in interface HtmlRendererContext
Parameters:
element - The narrowest element enclosing the mouse location.
event - The mouse event.
Returns:
The method should return true to continue propagating the event, or false to stop propagating it.

onMouseOut

public void onMouseOut(org.w3c.dom.html2.HTMLElement element,
                       java.awt.event.MouseEvent event)
This method can be overridden to receive notifications when the mouse leaves an element.

Specified by:
onMouseOut in interface HtmlRendererContext
Parameters:
element - The element that the mouse has just exited.
event - The mouse event.

onMouseOver

public void onMouseOver(org.w3c.dom.html2.HTMLElement element,
                        java.awt.event.MouseEvent event)
This method can be overridden to receive notifications when the mouse first enters an element.

Specified by:
onMouseOver in interface HtmlRendererContext
Parameters:
element - The element that the mouse has just entered.
event - The mouse event.

isImageLoadingEnabled

public boolean isImageLoadingEnabled()
Description copied from interface: HtmlRendererContext
This method should return true if and only if image loading needs to be enabled.

Specified by:
isImageLoadingEnabled in interface HtmlRendererContext

onDoubleClick

public boolean onDoubleClick(org.w3c.dom.html2.HTMLElement element,
                             java.awt.event.MouseEvent event)
Description copied from interface: HtmlRendererContext
This method is called when there's a mouse double-click on an element.

Specified by:
onDoubleClick in interface HtmlRendererContext
Parameters:
element - The narrowest element enclosing the mouse location.
event - The mouse event.
Returns:
The method should return true to continue propagating the event, or false to stop propagating it.

onMouseClick

public boolean onMouseClick(org.w3c.dom.html2.HTMLElement element,
                            java.awt.event.MouseEvent event)
Description copied from interface: HtmlRendererContext
This method is called when there's a mouse click on an element.

Specified by:
onMouseClick in interface HtmlRendererContext
Parameters:
element - The narrowest element enclosing the mouse location.
event - The mouse event.
Returns:
The method should return true to continue propagating the event, or false to stop propagating it.

resizeBy

public void resizeBy(int byWidth,
                     int byHeight)
Description copied from interface: HtmlRendererContext
Resizes the window.

Specified by:
resizeBy in interface HtmlRendererContext
Parameters:
byWidth - The number of pixels to resize the width by.
byHeight - The number of pixels to resize the height by.

resizeTo

public void resizeTo(int width,
                     int height)
Description copied from interface: HtmlRendererContext
Resizes the window.

Specified by:
resizeTo in interface HtmlRendererContext
Parameters:
width - The new width.
height - The new height.

back

public void back()
It should navigate back one page. This implementation does nothing and should be overridden.

Specified by:
back in interface HtmlRendererContext

forward

public void forward()
Description copied from interface: HtmlRendererContext
Goes forward one page.

Specified by:
forward in interface HtmlRendererContext

getCurrentURL

public java.lang.String getCurrentURL()
Description copied from interface: HtmlRendererContext
Gets the current URL in history.

Specified by:
getCurrentURL in interface HtmlRendererContext

getHistoryLength

public int getHistoryLength()
Description copied from interface: HtmlRendererContext
Gets the number of pages in the history list.

Specified by:
getHistoryLength in interface HtmlRendererContext

getNextURL

public java.lang.String getNextURL()
Description copied from interface: HtmlRendererContext
Gets the next URL in the history.

Specified by:
getNextURL in interface HtmlRendererContext

getPreviousURL

public java.lang.String getPreviousURL()
Description copied from interface: HtmlRendererContext
Gets the previous URL in the history.

Specified by:
getPreviousURL in interface HtmlRendererContext

goToHistoryURL

public void goToHistoryURL(java.lang.String url)
Description copied from interface: HtmlRendererContext
Navigates to a URL in the history list.

Specified by:
goToHistoryURL in interface HtmlRendererContext

moveInHistory

public void moveInHistory(int offset)
Description copied from interface: HtmlRendererContext
Navigates the history according to the given offset.

Specified by:
moveInHistory in interface HtmlRendererContext
Parameters:
offset - A positive or negative number. -1 is equivalent to HtmlRendererContext.back(). +1 is equivalent to HtmlRendererContext.forward().


SourceForge.net LogoCopyright © 2005, 2006, 2007 The Lobo Project. All Rights Reserved.
[Cobra Project Home]