edu.neu.ccs.gui
Class ImagePaintableLite

java.lang.Object
  |
  +--edu.neu.ccs.gui.AbstractPaintable
        |
        +--edu.neu.ccs.gui.ImagePaintableLite
All Implemented Interfaces:
Paintable, SupportsPropertyChange

public class ImagePaintableLite
extends AbstractPaintable

An ImagePaintableLite creates an AbstractPaintable using an image filename or an image URL.

To save memory, an ImagePaintableLite does not cache its image but rather retrieves its image as needed for paint operations. Thus the class trades time for space. This design enables a program to access a much larger collection of images at one time than would be possible by directly using the Java classes Image or ImageIcon or the JPT class ImagePaintable. These other classes all retain the bit data for an image and thus entail a high memory cost.

Since:
2.3.3
See Also:
ImagePaintable

Field Summary
static String SET_IMAGE
          Bound property name for set image.
static String SET_TOP_LEFT_CORNER
          Bound property name for set top left point.
 
Fields inherited from class edu.neu.ccs.gui.AbstractPaintable
SET_DEFAULT_BOUNDS2D, SET_DEFAULT_CENTER, SET_OPACITY, SET_VISIBLE
 
Constructor Summary
ImagePaintableLite()
          The default constructor that does not specify the image.
ImagePaintableLite(String filename)
          The constructor to specify the image by an image file name.
ImagePaintableLite(String filename, double x, double y)
          The constructor to specify the image by an image file name and the top left corner (x, y).
ImagePaintableLite(String filename, Point2D corner)
          The constructor to specify the image by an image file name and the top left corner.
ImagePaintableLite(URL url)
          The constructor to specify the image by an image URL.
ImagePaintableLite(URL url, double x, double y)
          The constructor to specify the image by an image URL and the top left corner (x, y).
ImagePaintableLite(URL url, Point2D corner)
          The constructor to specify the image by an image URL and the top left corner.
 
Method Summary
 boolean contains(double x, double y)
          Tests if a point specified by coordinates is inside the paintable.
 Rectangle2D getBounds2D()
          Returns the bounds of the paintable based on the default settings or on more detailed computations.
 Point2D getCenter()
          If the value of getDefaultCenter is non-null, then this value is returned.
 int getImageHeight()
          Returns the image height.
 int getImageWidth()
          Returns the image width.
 Point2D getTopLeftCorner()
          Returns a copy of the top left corner.
 void paint(Graphics g)
          Paints onto a Graphics context using information from this object.
 void setImageByFileName(String filename)
          Sets the image by file name.
 void setImageByURL(URL url)
          Sets the image by URL.
 void setTopLeftCorner(double x, double y)
          Sets the top left corner with the given corner (x, y).
 void setTopLeftCorner(Point2D corner)
          Sets the top left corner with the given corner.
 
Methods inherited from class edu.neu.ccs.gui.AbstractPaintable
addForwardingListener, addPropertyChangeListener, addPropertyChangeListener, addPropertyChangeListeners, addPropertyChangeListeners, applyOpacity, contains, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getDefaultBounds2D, getDefaultCenter, getForwardingListener, getOpacity, getPreparedGraphics2D, getPropertyChangeListeners, getPropertyChangeListeners, hasListeners, isVisible, possiblyContains, removeAndAddForwardingListener, removeForwardingListener, removePropertyChangeListener, removePropertyChangeListener, setDefaultBounds2D, setDefaultCenter, setOpacity, setVisible
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

SET_IMAGE

public static final String SET_IMAGE
Bound property name for set image.

See Also:
Constant Field Values

SET_TOP_LEFT_CORNER

public static final String SET_TOP_LEFT_CORNER
Bound property name for set top left point.

See Also:
Constant Field Values
Constructor Detail

ImagePaintableLite

public ImagePaintableLite()

The default constructor that does not specify the image.

Other constructors:


ImagePaintableLite

public ImagePaintableLite(String filename)

The constructor to specify the image by an image file name.

Parameters:
filename - the filename for the file with the image
See Also:
ImagePaintableLite()

ImagePaintableLite

public ImagePaintableLite(String filename,
                          Point2D corner)

The constructor to specify the image by an image file name and the top left corner.

Parameters:
filename - the filename for the file with the image
corner - the top left corner
See Also:
ImagePaintableLite()

ImagePaintableLite

public ImagePaintableLite(String filename,
                          double x,
                          double y)

The constructor to specify the image by an image file name and the top left corner (x, y).

Parameters:
filename - the filename for the file with the image
x - the x-coordinate of the top left corner
y - the y-coordinate of the top left corner
See Also:
ImagePaintableLite()

ImagePaintableLite

public ImagePaintableLite(URL url)

The constructor to specify the image by an image URL.

Parameters:
url - the URL location for the image
See Also:
ImagePaintableLite()

ImagePaintableLite

public ImagePaintableLite(URL url,
                          Point2D corner)

The constructor to specify the image by an image URL and the top left corner.

Parameters:
url - the URL location for the image
corner - the top left corner
See Also:
ImagePaintableLite()

ImagePaintableLite

public ImagePaintableLite(URL url,
                          double x,
                          double y)

The constructor to specify the image by an image URL and the top left corner (x, y).

Parameters:
url - the URL location for the image
x - the x-coordinate of the top left corner
y - the y-coordinate of the top left corner
See Also:
ImagePaintableLite()
Method Detail

paint

public final void paint(Graphics g)

Paints onto a Graphics context using information from this object.

If the image cannot be loaded, this method will not paint.

Specified by:
paint in interface Paintable
Specified by:
paint in class AbstractPaintable
Parameters:
g - the graphics context on which to paint
See Also:
AbstractPaintable.getPreparedGraphics2D(Graphics)

getBounds2D

public final Rectangle2D getBounds2D()

Returns the bounds of the paintable based on the default settings or on more detailed computations.

If the value of getDefaultBounds2D is non-null, then this value is returned.

Otherwise, if the current image cannot be loaded, this method returns a rectangle of zero width and height located at the top-left corner.

Otherwise, this method returns a copy of the 2-dimensional bounds of the image region as defined by the image width and height and by the top-left corner.

Specified by:
getBounds2D in interface Paintable
Specified by:
getBounds2D in class AbstractPaintable
Returns:
a copy of the 2-dimensional bounds of the image region
See Also:
getTopLeftCorner(), getImageWidth(), getImageHeight(), AbstractPaintable.setDefaultBounds2D(Rectangle2D), AbstractPaintable.getDefaultBounds2D()

getCenter

public final Point2D getCenter()

If the value of getDefaultCenter is non-null, then this value is returned.

Otherwise, this method returns the value computed by the method inherited from its superclass.

Specified by:
getCenter in interface Paintable
Overrides:
getCenter in class AbstractPaintable
Returns:
a copy of the center of the paint region
See Also:
AbstractPaintable.getCenter(), AbstractPaintable.setDefaultCenter(Point2D), AbstractPaintable.getDefaultCenter()

contains

public final boolean contains(double x,
                              double y)

Tests if a point specified by coordinates is inside the paintable.

This method returns true if and only if:

Parameters:
x - the x-coordinate of the point
y - the y-coordinate of the point
Returns:
whether or not a specified point is inside the paintable

setImageByFileName

public final void setImageByFileName(String filename)

Sets the image by file name.

Fires property change: SET_IMAGE.

Parameters:
filename - the filename for the file with the image
See Also:
setImageByURL(URL)

setImageByURL

public final void setImageByURL(URL url)

Sets the image by URL.

Fires property change: SET_IMAGE.

Parameters:
url - the URL location for the image
See Also:
setImageByFileName(String)

setTopLeftCorner

public final void setTopLeftCorner(Point2D corner)

Sets the top left corner with the given corner.

A null parameter is ignored.

Fires property change: SET_TOP_LEFT_CORNER.

Parameters:
corner - the top left corner
See Also:
setTopLeftCorner(double, double), getTopLeftCorner()

setTopLeftCorner

public final void setTopLeftCorner(double x,
                                   double y)

Sets the top left corner with the given corner (x, y).

Fires property change: SET_TOP_LEFT_CORNER.

Parameters:
x - the x-coordinate of the top left corner
y - the y-coordinate of the top left corner
See Also:
setTopLeftCorner(Point2D), getTopLeftCorner()

getTopLeftCorner

public final Point2D getTopLeftCorner()

Returns a copy of the top left corner.

Returns:
a copy of the top left corner
See Also:
setTopLeftCorner(Point2D), setTopLeftCorner(double, double)

getImageWidth

public final int getImageWidth()

Returns the image width.

If the current image is undefined, this method returns 0.

Returns:
the image width
See Also:
getImageHeight()

getImageHeight

public final int getImageHeight()

Returns the image height.

If the current image is undefined, this method returns 0.

Returns:
the image height
See Also:
getImageWidth()