NASA World Wind

gov.nasa.worldwind.util.webview
Class MacWebView

java.lang.Object
  extended by gov.nasa.worldwind.avlist.AVListImpl
      extended by gov.nasa.worldwind.WWObjectImpl
          extended by gov.nasa.worldwind.util.webview.AbstractWebView
              extended by gov.nasa.worldwind.util.webview.MacWebView
All Implemented Interfaces:
AVList, Disposable, MessageListener, WebView, WWObject, PropertyChangeListener, EventListener

public class MacWebView
extends AbstractWebView


Nested Class Summary
protected  class MacWebView.MacWebViewTexture
           
 
Field Summary
protected  long webViewWindowPtr
          The address of the native WebViewWindow object.
 
Fields inherited from class gov.nasa.worldwind.util.webview.AbstractWebView
active, frameSize, textureRep
 
Constructor Summary
MacWebView(Dimension frameSize)
           
 
Method Summary
protected  WWTexture createTextureRepresentation(DrawContext dc)
          Create a texture representation of the WebView.
 void dispose()
          Disposes of any internal resources allocated by the object.
protected  void doSetFrameSize(Dimension size)
           
 Color getBackgroundColor()
          Not implemented.
 Dimension getContentSize()
          Returns the size in pixels of this WebView's current content.
 URL getContentURL()
          Returns the URL of this WebView's current content, or null if the current content is the HTML string specified by setHTMLString.
 Iterable<AVList> getLinks()
          Returns an iterable of AVList elements describing this WebView's visible links.
 Dimension getMinContentSize()
          Returns the minimum size in pixels of this WebView's content area.
 void goBack()
          Navigate the WebView to the previous page in the browsing history.
 void goForward()
          Navigate the WebView to the next page in the browsing history.
 void sendEvent(InputEvent event)
          Sends the specified input event to the WebView.
 void setBackgroundColor(Color color)
          Not implemented.
 void setHTMLString(String htmlString)
          Specifies this WebView's HTML content as a string.
 void setHTMLString(String htmlString, URL baseURL)
          Specifies this WebView's HTML content as a string.
 void setHTMLString(String htmlString, WebResourceResolver resourceResolver)
          Specifies this WebView's HTML content as a string.
 void setMinContentSize(Dimension size)
          Specifies the minimum size in pixels of this WebView content area.
 
Methods inherited from class gov.nasa.worldwind.util.webview.AbstractWebView
finalize, getFrameSize, getTextureRepresentation, isActive, propertyChange, setActive, setFrameSize
 
Methods inherited from class gov.nasa.worldwind.WWObjectImpl
onMessage
 
Methods inherited from class gov.nasa.worldwind.avlist.AVListImpl
addPropertyChangeListener, addPropertyChangeListener, clearList, copy, firePropertyChange, firePropertyChange, getBooleanValue, getBooleanValue, getChangeSupport, getDoubleValue, getDoubleValue, getEntries, getIntegerValue, getIntegerValue, getLongValue, getLongValue, getRestorableStateForAVPair, getStringValue, getStringValue, getStringValue, getValue, getValues, hasKey, removeKey, removePropertyChangeListener, removePropertyChangeListener, setValue, setValues
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface gov.nasa.worldwind.avlist.AVList
addPropertyChangeListener, addPropertyChangeListener, clearList, copy, firePropertyChange, firePropertyChange, getEntries, getStringValue, getValue, getValues, hasKey, removeKey, removePropertyChangeListener, removePropertyChangeListener, setValue, setValues
 

Field Detail

webViewWindowPtr

protected long webViewWindowPtr
The address of the native WebViewWindow object. Initialized during construction.

Constructor Detail

MacWebView

public MacWebView(Dimension frameSize)
Method Detail

createTextureRepresentation

protected WWTexture createTextureRepresentation(DrawContext dc)
Description copied from class: AbstractWebView
Create a texture representation of the WebView.

Specified by:
createTextureRepresentation in class AbstractWebView
Parameters:
dc - draw context.
Returns:
A texture representation of the WebView contents.

dispose

public void dispose()
Description copied from interface: Disposable
Disposes of any internal resources allocated by the object.


doSetFrameSize

protected void doSetFrameSize(Dimension size)
Specified by:
doSetFrameSize in class AbstractWebView

getBackgroundColor

public Color getBackgroundColor()
Not implemented. MacWebView generates transparent WebView textures, so setting a background color is not necessary. The texture can be drawn over the desired background color.

Returns:
the color applied to the WebView background, or null if no color has been set.

getContentSize

public Dimension getContentSize()
Returns the size in pixels of this WebView's current content. This returns null if the size of this WebView's current content is unknown, either because it has not finished loading or because its size cannot be determined. This WebView attempts to determine its current content's size each time an HTML frame is loaded and its layout is performed. If the content is plain text or has no HTML frames, this WebView determines its content size after the text is loaded.

The returned size changes as this WebView navigates to new content or navigates within its history, and always reflects the size of the current content. The returned size is limited by this WebView's minimum content size. See WebView.getMinContentSize() for more information on how the minimum content size is used.

Returns:
the size of this WebView's content limited by the minContentSize, or null if this WebView's content size is unknown.
See Also:
WebView.getMinContentSize()

getContentURL

public URL getContentURL()
Returns the URL of this WebView's current content, or null if the current content is the HTML string specified by setHTMLString. The returned URL changes as this WebView navigates to new content or navigates within its history, and always reflects the URL of the current content.

Returns:
the URL of this WebView's current content, or null if the current content is the HTML string specified by setHTMLString.

getLinks

public Iterable<AVList> getLinks()
Returns an iterable of AVList elements describing this WebView's visible links. The returned iterable has no elements if this WebView has no links, or if none of the links are currently in the WebView's visible area. Each AVList describes the parameters for one link as follows:

The link rectangles are in the WebView's local coordinate system, and are clipped to the WebView's visible area. The WebView's coordinate system has its origin in the lower left corner with the X-axis pointing right and the Y-axis pointing up. Multi-line links are represented as one AVList with multiple pickable rectangles.

Returns:
an Iterable of AVList parameters describing this WebView's visible links.

getMinContentSize

public Dimension getMinContentSize()
Returns the minimum size in pixels of this WebView's content area.

HTML content can expand to fit its frame, so it is impossible to determine the size of content without laying out the content in a frame of some size. The minimum content size determines the size of the frame used to compute the content layout and size. If the content is simple text, the text will wrap to the minimum content width.

Returns:
The minimum size of the WebView content area.

goBack

public void goBack()
Navigate the WebView to the previous page in the browsing history. Has no effect if there is no previous page.


goForward

public void goForward()
Navigate the WebView to the next page in the browsing history. Has no effect if there is no next page.


sendEvent

public void sendEvent(InputEvent event)
Sends the specified input event to the WebView. Which events the WebView's responds to and how it responds is implementation-defined. Typical implementations respond to KeyEvent, MouseEvent, and MouseWheelEvent.

The screen coordinates for a MouseEvent must be transformed into the WebView's local coordinate system, which has its origin in the lower left corner with the X-axis pointing right and the Y-axis pointing up.

This does nothing if the specified event is null.

Users of the WebView must call WebView.setActive(boolean) before sending input events to the WebView. The WebView can be activated and deactivated any number of times. For example, a controller might call setActive(true) when the mouse enters the WebView texture, and call setActive(false) when the mouse exits the texture.

Parameters:
event - the event to send.
See Also:
WebView.setActive(boolean)

setBackgroundColor

public void setBackgroundColor(Color color)
Not implemented. MacWebView generates transparent WebView textures, so setting a background color is not necessary. The texture can be drawn over the desired background color.

Parameters:
color - Color to apply to the background.

setHTMLString

public void setHTMLString(String htmlString)
Specifies this WebView's HTML content as a string. The specified htmlString may be one of the following:

The WebView displays nothing if htmlString is null or empty. If the htmlString contains relative paths, they are not resolved and are interpreted as unresolved references.

If the application sends input events to the WebView, the user may navigate away from the specified HTML content by interacting with links or buttons in the content.

Parameters:
htmlString - the WebView's HTML text content, or null to display an empty WebView.

setHTMLString

public void setHTMLString(String htmlString,
                          URL baseURL)
Specifies this WebView's HTML content as a string. The specified htmlString may be one of the following:

The WebView displays nothing if htmlString is null or empty. The baseURL is used to resolve relative paths in the specified htmlString. If the baseURL is null, relative paths are not resolved and are interpreted as unresolved references.

If the application sends input events to the WebView, the user may navigate away from the specified HTML content by interacting with links or buttons in the content. Once the user navigates away from the content specified here, the htmlString and baseURL are no longer used.

Parameters:
htmlString - the WebView's HTML text content, or null to display an empty WebView.
baseURL - the URL used to resolve relative paths in the htmlString, or null to indicate that relative paths should be interpreted as unresolved references.

setHTMLString

public void setHTMLString(String htmlString,
                          WebResourceResolver resourceResolver)
Specifies this WebView's HTML content as a string. The specified htmlString may be one of the following:

The WebView displays nothing if htmlString is null or empty. The WebResourceResolver is used to resolve relative paths in the specified htmlString. If the WebResourceResolver is null, relative paths are not resolved and are interpreted as unresolved references.

If the application sends input events to the WebView, the user may navigate away from the specified HTML content by interacting with links or buttons in the content. Once the user navigates away from the content specified here, the htmlString and resourceResolver are no longer used.

Parameters:
htmlString - the WebView's HTML text content, or null to display an empty WebView.
resourceResolver - the WebResourceResolver used to resolve relative paths in the htmlString, or null to indicate that relative paths should be interpreted as unresolved references.

setMinContentSize

public void setMinContentSize(Dimension size)
Specifies the minimum size in pixels of this WebView content area. See WebView.getMinContentSize() for more information on how this value is interpreted.

Parameters:
size - Minimum size of the WebView content area.

NASA World Wind