Module java.desktop
Package javax.swing.text.html

# Class ImageView

java.lang.Object
javax.swing.text.View
javax.swing.text.html.ImageView

All Implemented Interfaces:
  `SwingConstants`

public class ImageView extends View
View of an Image, intended to support the HTML <IMG> tag. Supports scaling via the HEIGHT and WIDTH attributes of the tag. If the image is unable to be loaded any text specified via the `ALT` attribute will be rendered.

While this class has been part of swing for a while now, it is public as of 1.4.

Since:
  1.4
See Also:
  - `IconView`

## Field Summary

### Fields declared in class javax.swing.text.View

`BadBreakWeight, ExcellentBreakWeight, ForcedBreakWeight, GoodBreakWeight, X_AXIS, Y_AXIS`

### Fields declared in interface javax.swing.SwingConstants

`BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST`

## Constructor Summary

Constructors
Constructor
Description
`ImageView(Element elem)`
Creates a new view that represents an IMG element.

## Method Summary

Modifier and Type
Method
Description
`void`
`changedUpdate(DocumentEvent e, Shape a, ViewFactory f)`
Invoked when the Elements attributes have changed.
`float`
`getAlignment(int axis)`
Determines the desired alignment for this view along an axis.
`String`
`getAltText()`
Returns the text to display if the image cannot be loaded.
`AttributeSet`
`getAttributes()`
Fetches the attributes to use when rendering.
`Image`
`getImage()`
Returns the image to render.
`URL`
`getImageURL()`
Return a URL for the image source, or null if it could not be determined.
`Icon`
`getLoadingImageIcon()`
Returns the icon to use while in the process of loading the image.
`boolean`
`getLoadsSynchronously()`
Returns `true` if the image should be loaded when first asked for.
`Icon`
`getNoImageIcon()`
Returns the icon to use if the image could not be found.
`float`
`getPreferredSpan(int axis)`
Determines the preferred span for this view along an axis.
`protected StyleSheet`
`getStyleSheet()`
Convenient method to get the StyleSheet.
`String`
`getToolTipText(float x, float y, Shape allocation)`
For images the tooltip text comes from text specified with the `ALT` attribute.
`Shape`
`modelToView(int pos, Shape a, Position.Bias b)`
Provides a mapping from the document model coordinate space to the coordinate space of the view mapped to it.
`void`
`paint(Graphics g, Shape a)`
Paints the View.
`void`
`setLoadsSynchronously(boolean newValue)`
Sets how the image is loaded.
`void`
`setParent(View parent)`
Establishes the parent view for this view.
`protected void`
`setPropertiesFromAttributes()`
Update any cached values that come from attributes.
`void`
`setSize(float width, float height)`
Sets the size of the view.
`int`
`viewToModel(float x, float y, Shape a, Position.Bias[] bias)`
Provides a mapping from the view coordinate space to the logical coordinate space of the model.

### Methods declared in class javax.swing.text.View

`append, breakView, createFragment, forwardUpdate, forwardUpdateToView, getBreakWeight, getChildAllocation, getContainer, getDocument, getElement, getEndOffset, getGraphics, getMaximumSpan, getMinimumSpan, getNextVisualPositionFrom, getParent, getResizeWeight, getStartOffset, getView, getViewCount, getViewFactory, getViewIndex, getViewIndex, insert, insertUpdate, isVisible, modelToView, modelToView, preferenceChanged, remove, removeAll, removeUpdate, replace, updateChildren, updateLayout, viewToModel`

### Methods declared in class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

## Constructor Details

### ImageView

public ImageView(Element elem)
Creates a new view that represents an IMG element.

Parameters:
  `elem` - the element to create a view for

## Method Details

### getAltText

public String getAltText()
Returns the text to display if the image cannot be loaded. This is obtained from the Elements attribute set with the attribute name `HTML.Attribute.ALT`.

Returns:
  the test to display if the image cannot be loaded.

### getImageURL

public URL getImageURL()
Return a URL for the image source, or null if it could not be determined.

Returns:
  the URL for the image source, or null if it could not be determined.

### getNoImageIcon

public Icon getNoImageIcon()
Returns the icon to use if the image could not be found.

Returns:
  the icon to use if the image could not be found.

### getLoadingImageIcon

public Icon getLoadingImageIcon()
Returns the icon to use while in the process of loading the image.

Returns:
  the icon to use while in the process of loading the image.

### getImage

public Image getImage()
Returns the image to render.

Returns:
  the image to render.

### setLoadsSynchronously

public void setLoadsSynchronously(boolean newValue)
Sets how the image is loaded. If `newValue` is true, the image will be loaded when first asked for, otherwise it will be loaded asynchronously. The default is to not load synchronously, that is to load the image asynchronously.

Parameters:
  `newValue` - if `true` the image will be loaded when first asked for, otherwise it will be asynchronously.

### getLoadsSynchronously

public boolean getLoadsSynchronously()
Returns `true` if the image should be loaded when first asked for.

Returns:
  `true` if the image should be loaded when first asked for.

### getStyleSheet

protected StyleSheet getStyleSheet()
Convenient method to get the StyleSheet.

Returns:
  the StyleSheet

### getAttributes

public AttributeSet getAttributes()
Fetches the attributes to use when rendering. This is implemented to multiplex the attributes specified in the model with a StyleSheet.

Overrides:
  `getAttributes` in class `View`
Returns:
  the attributes to use when rendering

### getToolTipText

public String getToolTipText(float x, float y, Shape allocation)
For images the tooltip text comes from text specified with the `ALT` attribute. This is overriden to return `getAltText`.

Overrides:
  `getToolTipText` in class `View`
Parameters:
  `x` - the x coordinate
  `y` - the y coordinate
  `allocation` - current allocation of the View.
Returns:
  the tooltip text at the specified location
See Also:
  - `JTextComponent.getToolTipText(java.awt.event.MouseEvent)`

### setPropertiesFromAttributes

protected void setPropertiesFromAttributes()
Update any cached values that come from attributes.

### setParent

public void setParent(View parent)
Establishes the parent view for this view. Seize this moment to cache the AWT Container I'm in.

Overrides:
  `setParent` in class `View`
Parameters:
  `parent` - the new parent, or `null` if the view is being removed from a parent

### changedUpdate

public void changedUpdate(DocumentEvent e, Shape a, ViewFactory f)
Invoked when the Elements attributes have changed. Recreates the image.

Overrides:
  `changedUpdate` in class `View`
Parameters:
  `e` - the change information from the associated document
  `a` - the current allocation of the view
  `f` - the factory to use to rebuild if the view has children
See Also:
  - `View.changedUpdate(javax.swing.event.DocumentEvent, java.awt.Shape, javax.swing.text.ViewFactory)`

### paint

public void paint(Graphics g, Shape a)
Paints the View.

Specified by:
  `paint` in class `View`
Parameters:
  `g` - the rendering surface to use
  `a` - the allocated region to render into
See Also:
  - `View.paint(java.awt.Graphics, java.awt.Shape)`

### getPreferredSpan

public float getPreferredSpan(int axis)
Determines the preferred span for this view along an axis.

Specified by:
  `getPreferredSpan` in class `View`
Parameters:
  `axis` - may be either X_AXIS or Y_AXIS
Returns:
  the span the view would like to be rendered into; typically the view is told to render into the span that is returned, although there is no guarantee; the parent may choose to resize or break the view

### getAlignment

public float getAlignment(int axis)
Determines the desired alignment for this view along an axis. This is implemented to give the alignment to the bottom of the icon along the y axis, and the default along the x axis.

Overrides:
  `getAlignment` in class `View`
Parameters:
  `axis` - may be either X_AXIS or Y_AXIS
Returns:
  the desired alignment; this should be a value between 0.0 and 1.0 where 0 indicates alignment at the origin and 1.0 indicates alignment to the full span away from the origin; an alignment of 0.5 would be the center of the view

### modelToView

public Shape modelToView(int pos, Shape a, Position.Bias b) throws BadLocationException
Provides a mapping from the document model coordinate space to the coordinate space of the view mapped to it.

Specified by:
  `modelToView` in class `View`
Parameters:
  `pos` - the position to convert
  `a` - the allocated region to render into
  `b` - the bias toward the previous character or the next character represented by the offset, in case the position is a boundary of two views; `b` will have one of these values:
  - `Position.Bias.Forward`
  - `Position.Bias.Backward`
Returns:
  the bounding box of the given position
Throws:
  `BadLocationException` - if the given position does not represent a valid location in the associated document
See Also:
  - `View.modelToView(int, java.awt.Shape, javax.swing.text.Position.Bias)`

### viewToModel

public int viewToModel(float x, float y, Shape a, Position.Bias[] bias)
Provides a mapping from the view coordinate space to the logical coordinate space of the model.

Specified by:
  `viewToModel` in class `View`
Parameters:
  `x` - the X coordinate
  `y` - the Y coordinate
  `a` - the allocated region to render into
  `bias` - the returned bias
Returns:
  the location within the model that best represents the given point of view
See Also:
  - `View.viewToModel(float, float, java.awt.Shape, javax.swing.text.Position.Bias[])`

### setSize

public void setSize(float width, float height)
Sets the size of the view. This should cause layout of the view if it has any layout duties.

Overrides:
  `setSize` in class `View`
Parameters:
  `width` - the width >= 0
  `height` - the height >= 0