org.lobobrowser.html.test

Class SimpleHtmlRendererContext

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.

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(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(String message)
Opens a simple confirmation window.
BrowserFrame
createBrowserFrame()
protected HTMLDocumentImpl
createDocument(org.xml.sax.InputSource inputSource)
Creates a blank document instance.
void
error(String message)
void
error(String message, Throwable throwable)
void
focus()
It should request focus for the current browser window.
String
getDefaultStatus()
Should return true if and only if the current browser window is closed.
protected String
getDocumentCharset(URLConnection connection)
This method is invoked by submitForm(String, URL, String, String, FormInput[]) to determine the charset of a document.
HTMLCollection
getFrames()
Gets a collection of current document frames, by querying the document currently held by the local HtmlPanel instance.
HtmlObject
getHtmlObject(HTMLElement element)
Returns null.
String
getName()
It should return the name of the browser window, if this renderer context is for the top frame in the window.
HtmlRendererContext
getOpener()
HtmlRendererContext
getParent()
protected Proxy
getProxy()
Gets the connection proxy used in navigate(URL,String).
String
getSourceCode()
Gets the source code of the current HTML document.
String
getStatus()
HtmlRendererContext
getTop()
UserAgentContext
getUserAgentContext()
If a UserAgentContext instance was provided in the constructor, then that instance is returned.
boolean
isClosed()
Should return true if and only if the current browser window is closed.
protected boolean
isNavigationAsynchronous()
Indicates whether navigation (via submitForm(String, URL, String, String, FormInput[])) should be asynchronous.
boolean
isVisitedLink(HTMLLinkElement link)
Should be overridden to return true if the link has been visited.
void
linkClicked(HTMLElement linkNode, URL url, String target)
Implements the link click handler by invoking navigate(URL,String).
void
navigate(String fullURL)
Convenience method provided to allow loading a document into the renderer.
void
navigate(URL href, String target)
Implements simple navigation with incremental rendering by invoking submitForm(String, URL, String, String, FormInput[]) with a GET request method.
void
onContextMenu(HTMLElement element, MouseEvent event)
This method must be overridden to implement a context menu.
void
onMouseOut(HTMLElement element, MouseEvent event)
This method can be overridden to receive notifications when the mouse leaves an element.
void
onMouseOver(HTMLElement element, MouseEvent event)
This method can be overridden to receive notifications when the mouse first enters an element.
HtmlRendererContext
open(String url, String windowName, String windowFeatures, boolean replace)
Deprecated. Use open(URL, String, String, boolean).
HtmlRendererContext
open(java.net.URL url, String windowName, String windowFeatures, boolean replace)
It should open a new browser window.
String
prompt(String message, String inputDefault)
Shows a simple prompt dialog.
void
reload()
Implements reload as navigation to current URL.
void
scroll(int x, int y)
Changes the origin of the HTML block's scrollable area according to the position given.
void
setDefaultStatus(String message)
void
setOpener(HtmlRendererContext opener)
void
setStatus(String message)
void
submitForm(String method, java.net.URL action, String target, String enctype, FormInput[] formInputs)
Implements simple navigation and form submission with incremental rendering and target processing, including frame lookup.
protected void
submitFormSync(String method, java.net.URL action, String target, String enctype, FormInput[] formInputs)
Submits a form and/or navigates by making a synchronous request.
void
warn(String message)
void
warn(String message, Throwable throwable)

Constructor Details

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,
                                 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.

SimpleHtmlRendererContext

public SimpleHtmlRendererContext(HtmlPanel contextComponent,
                                 UserAgentContext ucontext)
Constructs a SimpleHtmlRendererContext.
Parameters:
contextComponent - The component that will render HTML.

Method Details

alert

public void alert(String message)
Opens a simple message dialog.
Specified by:
alert in interface HtmlRendererContext

back

public void back()
It should navigate back one page. This implementation does nothing and should be overridden.
Specified by:
back in interface HtmlRendererContext

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(String message)
Opens a simple confirmation window.
Specified by:
confirm in interface HtmlRendererContext

createBrowserFrame

public BrowserFrame createBrowserFrame()
Specified by:
createBrowserFrame in interface HtmlRendererContext

createDocument

protected HTMLDocumentImpl createDocument(org.xml.sax.InputSource inputSource)
            throws 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.

error

public void error(String message)

error

public void error(String message,
                  Throwable throwable)

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

getDefaultStatus

public 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

getDocumentCharset

protected String getDocumentCharset(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.

getFrames

public 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

getHtmlObject

public HtmlObject getHtmlObject(HTMLElement element)
Returns null. This method should be overridden to provide OBJECT, EMBED or APPLET functionality.
Specified by:
getHtmlObject in interface HtmlRendererContext

getName

public 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

getOpener

public HtmlRendererContext getOpener()
Specified by:
getOpener in interface HtmlRendererContext

getParent

public HtmlRendererContext getParent()
Specified by:
getParent in interface HtmlRendererContext

getProxy

protected 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.

getSourceCode

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

getStatus

public String getStatus()
Specified by:
getStatus in interface HtmlRendererContext

getTop

public HtmlRendererContext getTop()
Specified by:
getTop 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

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

isNavigationAsynchronous

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

isVisitedLink

public boolean isVisitedLink(HTMLLinkElement link)
Should be overridden to return true if the link has been visited.
Specified by:
isVisitedLink in interface HtmlRendererContext

linkClicked

public void linkClicked(HTMLElement linkNode,
                        URL url,
                        String target)
Implements the link click handler by invoking navigate(URL,String).
Specified by:
linkClicked in interface HtmlRendererContext

navigate

public void navigate(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.

navigate

public void navigate(URL href,
                     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

onContextMenu

public void onContextMenu(HTMLElement element,
                          MouseEvent event)
This method must be overridden to implement a context menu.

onMouseOut

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

onMouseOver

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

open

public final HtmlRendererContext open(String url,
                                      String windowName,
                                      String windowFeatures,
                                      boolean replace)

Deprecated. Use open(URL, String, String, boolean).

Specified by:
open in interface HtmlRendererContext

open

public HtmlRendererContext open(java.net.URL url,
                                String windowName,
                                String windowFeatures,
                                boolean replace)
It should open a new browser window. This implementation does nothing and should be overridden.
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.

prompt

public String prompt(String message,
                     String inputDefault)
Shows a simple prompt dialog.
Specified by:
prompt 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

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.

setDefaultStatus

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

setOpener

public void setOpener(HtmlRendererContext opener)
Specified by:
setOpener in interface HtmlRendererContext

setStatus

public void setStatus(String message)
Specified by:
setStatus in interface HtmlRendererContext

submitForm

public void submitForm(String method,
                       java.net.URL action,
                       String target,
                       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:

  • Document encoding is defined by getDocumentCharset(URLConnection).
  • Caching is not implemented.
  • Cookies are not implemented.
  • Incremental rendering is not optimized for ignorable document change notifications.
  • Other HTTP features are not implemented.
  • The only form encoding type supported is application/x-www-form-urlencoded.
  • Navigation is normally asynchronous. See isNavigationAsynchronous().

submitFormSync

protected void submitFormSync(String method,
                              java.net.URL action,
                              String target,
                              String enctype,
                              FormInput[] formInputs)
            throws 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.
See Also:
submitForm(String, URL, String, String, FormInput[])

warn

public void warn(String message)

warn

public void warn(String message,
                 Throwable throwable)