org.apache.wicket.markup.html.image.resource
Class RenderedDynamicImageResource

java.lang.Object
  extended by org.apache.wicket.request.resource.AbstractResource
      extended by org.apache.wicket.request.resource.DynamicImageResource
          extended by org.apache.wicket.markup.html.image.resource.RenderedDynamicImageResource
All Implemented Interfaces:
java.io.Serializable, IClusterable, IResource
Direct Known Subclasses:
DefaultButtonImageResource

public abstract class RenderedDynamicImageResource
extends DynamicImageResource

A DynamicImageResource subclass that allows easy rendering of regeneratable (unbuffered) dynamic images. A RenderedDynamicImageResource implements the abstract method render(Graphics2D) to create/re-create a given image on-the-fly. When a RenderedDynamicImageResource is serialized, the image state is transient, which means it will disappear when the resource is sent over the wire and then will be recreated when required.

The format of the image (and therefore the resource's extension) can be specified with setFormat(String). The default format is "PNG" because JPEG is lossy and makes generated images look bad and GIF has patent issues.

Author:
Jonathan Locke, Gili Tzabari, Johan Compagner
See Also:
DefaultButtonImageResource, DefaultButtonImageResourceFactory, Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.wicket.request.resource.AbstractResource
AbstractResource.ResourceResponse, AbstractResource.WriteCallback
 
Nested classes/interfaces inherited from interface org.apache.wicket.request.resource.IResource
IResource.Attributes
 
Field Summary
 
Fields inherited from class org.apache.wicket.request.resource.AbstractResource
INTERNAL_HEADERS
 
Constructor Summary
RenderedDynamicImageResource(int width, int height)
          Constructor.
RenderedDynamicImageResource(int width, int height, java.lang.String format)
          Constructor.
 
Method Summary
 int getHeight()
           
protected  byte[] getImageData(IResource.Attributes attributes)
          Get image data for our dynamic image resource.
 int getType()
           
 int getWidth()
           
 void invalidate()
          Causes the image to be redrawn the next time its requested.
protected  byte[] render()
          Renders this image
protected abstract  boolean render(java.awt.Graphics2D graphics)
          Override this method to provide your rendering code
 void setHeight(int height)
           
 void setType(int type)
           
 void setWidth(int width)
           
 
Methods inherited from class org.apache.wicket.request.resource.DynamicImageResource
configureResponse, getFormat, newResourceResponse, setFormat, setLastModifiedTime, toImageData
 
Methods inherited from class org.apache.wicket.request.resource.AbstractResource
configureCache, getCachingStrategy, respond, setResponseHeaders
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RenderedDynamicImageResource

public RenderedDynamicImageResource(int width,
                                    int height)
Constructor.

Parameters:
width - Width of image
height - Height of image

RenderedDynamicImageResource

public RenderedDynamicImageResource(int width,
                                    int height,
                                    java.lang.String format)
Constructor.

Parameters:
width - Width of image
height - Height of image
format - The format of the image (jpg, png or gif)
Method Detail

getHeight

public int getHeight()
Returns:
Returns the height.

getType

public int getType()
Returns:
Returns the type (one of BufferedImage.TYPE_*).

getWidth

public int getWidth()
Returns:
Returns the width.

invalidate

public void invalidate()
Causes the image to be redrawn the next time its requested.


setHeight

public void setHeight(int height)
Parameters:
height - The height to set.

setType

public void setType(int type)
Parameters:
type - The type to set (one of BufferedImage.TYPE_*).

setWidth

public void setWidth(int width)
Parameters:
width - The width to set.

getImageData

protected byte[] getImageData(IResource.Attributes attributes)
Description copied from class: DynamicImageResource
Get image data for our dynamic image resource. If the subclass regenerates the data, it should set the DynamicImageResource.setLastModifiedTime(Time) when it does so. This ensures that image caching works correctly.

Specified by:
getImageData in class DynamicImageResource
Parameters:
attributes - the context bringing the request, response and the parameters
Returns:
The image data for this dynamic image. null means there is no image and 404 (Not found) response will be return.

render

protected byte[] render()
Renders this image

Returns:
The image data

render

protected abstract boolean render(java.awt.Graphics2D graphics)
Override this method to provide your rendering code

Parameters:
graphics - The graphics context to render on
Returns:
True if the image was rendered. False if the image size was changed by the rendering implementation and the image should be re-rendered at the new size.


Copyright © 2006-2011 Apache Software Foundation. All Rights Reserved.