Class RenderedDynamicImageResource

  • All Implemented Interfaces:
    Serializable, IResource, IClusterable
    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
    • 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,
                                            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.
      • render

        protected byte[] render​(IResource.Attributes attributes)
        Renders this image
        Parameters:
        attributes - the current request attributes
        Returns:
        The image data
      • render

        protected abstract boolean render​(Graphics2D graphics,
                                          IResource.Attributes attributes)
        Override this method to provide your rendering code.
        Parameters:
        graphics - The graphics context to render on.
        attributes - the current request attributes
        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.