Eclipse Remote Application Platform

org.eclipse.swt.browser
Class Browser

java.lang.Object
  extended by org.eclipse.swt.widgets.Widget
      extended by org.eclipse.swt.widgets.Control
          extended by org.eclipse.swt.widgets.Scrollable
              extended by org.eclipse.swt.widgets.Composite
                  extended by org.eclipse.swt.browser.Browser
All Implemented Interfaces:
Adaptable, Drawable

public class Browser
extends Composite

Instances of this class implement the browser user interface metaphor. It allows the user to visualize and navigate through HTML documents.

Note that although this class is a subclass of Composite, it does not make sense to set a layout on it.

IMPORTANT: This class is not intended to be subclassed.

Since:
1.0

Currently implemented

The enabled property in not (yet) evaluated.

Focus events are not yet implemented


Constructor Summary
Browser(Composite parent, int style)
          Constructs a new instance of this class given its parent and a style value describing its behavior and appearance.
 
Method Summary
 void addLocationListener(LocationListener listener)
          Adds the listener to the collection of listeners who will be notified when the current location has changed or is about to change.
 void addProgressListener(ProgressListener listener)
          Adds the listener to the collection of listeners who will be notified when a progress is made during the loading of the current URL or when the loading of the current URL has been completed.
protected  void checkWidget()
          Throws an SWTException if the receiver can not be accessed by the caller.
 java.lang.Object evaluate(java.lang.String script)
          Returns the result, if any, of executing the specified script.
 boolean execute(java.lang.String script)
          Execute the specified script.
<T> T
getAdapter(java.lang.Class<T> adapter)
          Implementation of the Adaptable interface.
 java.lang.String getUrl()
          Returns the current URL.
 java.lang.Object getWebBrowser()
          Returns the JavaXPCOM nsIWebBrowser for the receiver, or null if it is not available.
 void removeLocationListener(LocationListener listener)
          Removes the listener from the collection of listeners who will be notified when the current location is changed or about to be changed.
 void removeProgressListener(ProgressListener listener)
          Removes the listener from the collection of listeners who will be notified when a progress is made during the loading of the current URL or when the loading of the current URL has been completed.
 boolean setText(java.lang.String html)
          Renders HTML.
 boolean setUrl(java.lang.String url)
          Loads a URL.
 
Methods inherited from class org.eclipse.swt.widgets.Composite
changed, computeSize, getBackgroundMode, getChildren, getLayout, getLayoutDeferred, getTabList, isLayoutDeferred, layout, layout, layout, layout, layout, setBackgroundMode, setFocus, setLayout, setLayoutDeferred, setTabList
 
Methods inherited from class org.eclipse.swt.widgets.Scrollable
computeTrim, getClientArea, getHorizontalBar, getVerticalBar
 
Methods inherited from class org.eclipse.swt.widgets.Control
addControlListener, addDragDetectListener, addFocusListener, addGestureListener, addHelpListener, addKeyListener, addMenuDetectListener, addMouseListener, addTouchListener, addTraverseListener, computeSize, forceFocus, getAccessible, getBackground, getBackgroundImage, getBorderWidth, getBounds, getCursor, getEnabled, getFont, getForeground, getLayoutData, getLocation, getMenu, getMonitor, getOrientation, getParent, getShell, getSize, getToolTipText, getTouchEnabled, getVisible, isEnabled, isFocusControl, isReparentable, isVisible, moveAbove, moveBelow, pack, pack, redraw, redraw, removeControlListener, removeDragDetectListener, removeFocusListener, removeGestureListener, removeHelpListener, removeKeyListener, removeMenuDetectListener, removeMouseListener, removeTouchListener, removeTraverseListener, setBackground, setBackgroundImage, setBounds, setBounds, setCursor, setEnabled, setFont, setForeground, setLayoutData, setLocation, setLocation, setMenu, setOrientation, setParent, setRedraw, setSize, setSize, setToolTipText, setTouchEnabled, setVisible, toControl, toControl, toDisplay, toDisplay, update
 
Methods inherited from class org.eclipse.swt.widgets.Widget
addDisposeListener, addListener, checkSubclass, dispose, getData, getData, getDisplay, getListeners, getStyle, isDisposed, isListening, notifyListeners, removeDisposeListener, removeListener, reskin, setData, setData, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Browser

public Browser(Composite parent,
               int style)
Constructs a new instance of this class given its parent and a style value describing its behavior and appearance.

The style value is either one of the style constants defined in class SWT which is applicable to instances of this class, or must be built by bitwise OR'ing together (that is, using the int "|" operator) two or more of those SWT style constants. The class description lists the style constants that are applicable to the class. Style bits are also inherited from superclasses.

Parameters:
parent - a widget which will be the parent of the new instance (cannot be null)
style - the style of widget to construct
Throws:
java.lang.IllegalArgumentException -
  • ERROR_NULL_ARGUMENT - if the parent is null
SWTException -
  • ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the parent
SWTError -
  • ERROR_NO_HANDLES if a handle could not be obtained for browser creation
See Also:
Widget.getStyle()
Method Detail

setUrl

public boolean setUrl(java.lang.String url)
Loads a URL.

Parameters:
url - the URL to be loaded
Returns:
true if the operation was successful and false otherwise.
Throws:
java.lang.IllegalArgumentException -
  • ERROR_NULL_ARGUMENT - if the url is null
SWTException -
  • ERROR_THREAD_INVALID_ACCESS when called from the wrong thread
  • ERROR_WIDGET_DISPOSED when the widget has been disposed
See Also:
getUrl()

getUrl

public java.lang.String getUrl()
Returns the current URL.

Returns:
the current URL or an empty String if there is no current URL
Throws:
SWTException -
  • ERROR_THREAD_INVALID_ACCESS when called from the wrong thread
  • ERROR_WIDGET_DISPOSED when the widget has been disposed
See Also:
setUrl(java.lang.String)

setText

public boolean setText(java.lang.String html)
Renders HTML.

The html parameter is Unicode encoded since it is a java String. As a result, the HTML meta tag charset should not be set. The charset is implied by the String itself.

Parameters:
html - the HTML content to be rendered
Returns:
true if the operation was successful and false otherwise.
Throws:
java.lang.IllegalArgumentException -
  • ERROR_NULL_ARGUMENT - if the html is null
SWTException -
  • ERROR_THREAD_INVALID_ACCESS when called from the wrong thread
  • ERROR_WIDGET_DISPOSED when the widget has been disposed
See Also:
setUrl(java.lang.String)

execute

public boolean execute(java.lang.String script)
Execute the specified script.

Execute a script containing javascript commands in the context of the current document.

Note: Care should be taken when using this method. The given script is executed in an IFRAME inside the document that represents the client-side application. Since the execution context of an IFRAME is not fully isolated from the surrounding document it may break the client-side application.

This method is not supported when running the application in JEE_COMPATIBILITY mode. Use BrowserUtil#evaluate instead.

Parameters:
script - the script with javascript commands
Returns:
true if the operation was successful and false otherwise
Throws:
java.lang.IllegalArgumentException -
  • ERROR_NULL_ARGUMENT - if the script is null
SWTException -
  • ERROR_THREAD_INVALID_ACCESS when called from the wrong thread
  • ERROR_WIDGET_DISPOSED when the widget has been disposed
java.lang.UnsupportedOperationException - when running the application in JEE_COMPATIBILITY mode
Since:
1.1
See Also:
Application.OperationMode

evaluate

public java.lang.Object evaluate(java.lang.String script)
                          throws SWTException
Returns the result, if any, of executing the specified script.

Evaluates a script containing javascript commands in the context of the current document. If document-defined functions or properties are accessed by the script then this method should not be invoked until the document has finished loading (ProgressListener.completed() gives notification of this).

If the script returns a value with a supported type then a java representation of the value is returned. The supported javascript -> java mappings are:

An SWTException is thrown if the return value has an unsupported type, or if evaluating the script causes a javascript error to be thrown.

Note: Care should be taken when using this method. The given script is executed in an IFRAME inside the document that represents the client-side application. Since the execution context of an IFRAME is not fully isolated from the surrounding document it may break the client-side application.

This method is not supported when running the application in JEE_COMPATIBILITY mode. Use BrowserUtil#evaluate instead.

Parameters:
script - the script with javascript commands
Returns:
the return value, if any, of executing the script
Throws:
java.lang.IllegalArgumentException -
  • ERROR_NULL_ARGUMENT - if the script is null
SWTException -
  • ERROR_FAILED_EVALUATE when the script evaluation causes a javascript error to be thrown
  • ERROR_INVALID_RETURN_VALUE when the script returns a value of unsupported type
  • ERROR_THREAD_INVALID_ACCESS when called from the wrong thread
  • ERROR_WIDGET_DISPOSED when the widget has been disposed
java.lang.UnsupportedOperationException - when running the application in JEE_COMPATIBILITY mode
Since:
1.4
See Also:
ProgressListener.completed(ProgressEvent), Application.OperationMode

addLocationListener

public void addLocationListener(LocationListener listener)
Adds the listener to the collection of listeners who will be notified when the current location has changed or is about to change.

This notification typically occurs when the application navigates to a new location with setUrl(String) or when the user activates a hyperlink.

Parameters:
listener - the listener which should be notified
Throws:
java.lang.IllegalArgumentException -
  • ERROR_NULL_ARGUMENT - if the listener is null
SWTException -
  • ERROR_THREAD_INVALID_ACCESS when called from the wrong thread
  • ERROR_WIDGET_DISPOSED when the widget has been disposed

removeLocationListener

public void removeLocationListener(LocationListener listener)
Removes the listener from the collection of listeners who will be notified when the current location is changed or about to be changed.

Parameters:
listener - the listener which should no longer be notified
Throws:
java.lang.IllegalArgumentException -
  • ERROR_NULL_ARGUMENT - if the listener is null
SWTException -
  • ERROR_THREAD_INVALID_ACCESS when called from the wrong thread
  • ERROR_WIDGET_DISPOSED when the widget has been disposed

addProgressListener

public void addProgressListener(ProgressListener listener)
Adds the listener to the collection of listeners who will be notified when a progress is made during the loading of the current URL or when the loading of the current URL has been completed.

Parameters:
listener - the listener which should be notified
Throws:
java.lang.IllegalArgumentException -
  • ERROR_NULL_ARGUMENT - if the listener is null
SWTException -
  • ERROR_THREAD_INVALID_ACCESS when called from the wrong thread
  • ERROR_WIDGET_DISPOSED when the widget has been disposed
Since:
1.4

removeProgressListener

public void removeProgressListener(ProgressListener listener)
Removes the listener from the collection of listeners who will be notified when a progress is made during the loading of the current URL or when the loading of the current URL has been completed.

Parameters:
listener - the listener which should no longer be notified
Throws:
java.lang.IllegalArgumentException -
  • ERROR_NULL_ARGUMENT - if the listener is null
SWTException -
  • ERROR_THREAD_INVALID_ACCESS when called from the wrong thread
  • ERROR_WIDGET_DISPOSED when the widget has been disposed
Since:
1.4

getAdapter

public <T> T getAdapter(java.lang.Class<T> adapter)
Description copied from class: Widget
Implementation of the Adaptable interface.

IMPORTANT: This method is not part of the RWT public API. It is marked public only so that it can be shared within the packages provided by RWT. It should never be accessed from application code.

Specified by:
getAdapter in interface Adaptable
Overrides:
getAdapter in class Composite
Parameters:
adapter - the lookup class
Returns:
an object that can be cast to the given class or null if there is no adapter associated with the given class.

getWebBrowser

public java.lang.Object getWebBrowser()
Returns the JavaXPCOM nsIWebBrowser for the receiver, or null if it is not available. In order for an nsIWebBrowser to be returned all of the following must be true:

Returns:
the receiver's JavaXPCOM nsIWebBrowser or null
Since:
1.4

checkWidget

protected void checkWidget()
Description copied from class: Widget
Throws an SWTException if the receiver can not be accessed by the caller. This may include both checks on the state of the receiver and more generally on the entire execution context. This method should be called by widget implementors to enforce the standard SWT invariants.

Currently, it is an error to invoke any method (other than isDisposed()) on a widget that has had its dispose() method called. It is also an error to call widget methods from any thread that is different from the thread that created the widget.

In future releases of SWT, there may be more or fewer error checks and exceptions may be thrown for different reasons.

Overrides:
checkWidget in class Widget

Eclipse Remote Application Platform

Copyright (c) EclipseSource and others 2002, 2013. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0