org.biojava.bio.gui.sequence
Class RectangularImapRenderer

java.lang.Object
  extended by org.biojava.bio.gui.sequence.RectangularImapRenderer
All Implemented Interfaces:
java.io.Serializable, BeadFeatureRenderer, FeatureRenderer, ImageMapRenderer

public class RectangularImapRenderer
extends java.lang.Object
implements BeadFeatureRenderer, ImageMapRenderer, java.io.Serializable

RectangularImapRenderer is a decorator for RectangularBeadRenderer which adds the ability to create HTML image map coordinates which correspond to the feature rendering produced by the RectangularBeadRenderer.

Since:
1.3
Author:
Keith James
See Also:
Serialized Form

Constructor Summary
RectangularImapRenderer(RectangularBeadRenderer renderer, ImageMap imageMap, URLFactory urlFactory)
          Creates a new RectangularImapRenderer.
 
Method Summary
 double getBeadDepth()
          getBeadDepth returns the depth of a single bead produced by the renderer.
 double getBeadDisplacement()
          getBeadDisplacement returns the displacement of beads from the centre line of the renderer.
 double getDepth(SequenceRenderContext context)
           
 boolean getHeightScaling()
          getHeightScaling returns the state of the height scaling policy.
 ImageMap getImageMap()
          getImageMap returns the current image map.
 FeatureHolder processMouseEvent(FeatureHolder holder, SequenceRenderContext context, java.awt.event.MouseEvent mEvent)
           
 void renderBead(java.awt.Graphics2D g2, Feature f, SequenceRenderContext context)
          renderBead should implement rendering for this bead type only.
 void renderFeature(java.awt.Graphics2D g2, Feature f, SequenceRenderContext context)
           
 void renderImageMap(java.awt.Graphics2D g2, Feature f, SequenceRenderContext context)
          renderImageMap writes a set of image map coordinates corresponding to the rectangle drawn by the renderer.
 void setDelegateRenderer(OptimizableFilter filter, BeadFeatureRenderer renderer)
          setDelegateRenderer for the specified filter.
 void setHeightScaling(boolean isEnabled)
          setHeightScaling sets the height scaling policy.
 void setImageMap(ImageMap imageMap)
          setImageMap sets the current image map.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RectangularImapRenderer

public RectangularImapRenderer(RectangularBeadRenderer renderer,
                               ImageMap imageMap,
                               URLFactory urlFactory)
Creates a new RectangularImapRenderer.

Parameters:
renderer - a RectangularBeadRenderer.
imageMap - an ImageMap.
urlFactory - a URLFactory which should be capable of creating a suitable URL from each Feature on the Sequence to be rendered.
Method Detail

getImageMap

public ImageMap getImageMap()
getImageMap returns the current image map.

Returns:
an ImageMap.

setImageMap

public void setImageMap(ImageMap imageMap)
setImageMap sets the current image map.

Parameters:
imageMap - an ImageMap.

setDelegateRenderer

public void setDelegateRenderer(OptimizableFilter filter,
                                BeadFeatureRenderer renderer)
setDelegateRenderer for the specified filter.

Specified by:
setDelegateRenderer in interface BeadFeatureRenderer
Parameters:
filter - an OptimizableFilter.
renderer - a BeadFeatureRenderer.

renderImageMap

public void renderImageMap(java.awt.Graphics2D g2,
                           Feature f,
                           SequenceRenderContext context)

renderImageMap writes a set of image map coordinates corresponding to the rectangle drawn by the renderer. The hotspots created by this method have the rendered Feature set as their user object.

This method is called by renderFeature when a raster image is rendered.

Specified by:
renderImageMap in interface ImageMapRenderer
Parameters:
g2 - a Graphics2D.
f - a Feature.
context - a SequenceRenderContext.

renderFeature

public void renderFeature(java.awt.Graphics2D g2,
                          Feature f,
                          SequenceRenderContext context)
Specified by:
renderFeature in interface FeatureRenderer

renderBead

public void renderBead(java.awt.Graphics2D g2,
                       Feature f,
                       SequenceRenderContext context)
Description copied from interface: BeadFeatureRenderer
renderBead should implement rendering for this bead type only. The renderFeature method is expected to handle the calls to delegate renderers.

Specified by:
renderBead in interface BeadFeatureRenderer
Parameters:
g2 - a Graphics2D.
f - a Feature to render.
context - a SequenceRenderContext context.

getDepth

public double getDepth(SequenceRenderContext context)
Specified by:
getDepth in interface FeatureRenderer

getBeadDepth

public double getBeadDepth()
Description copied from interface: BeadFeatureRenderer
getBeadDepth returns the depth of a single bead produced by the renderer.

Specified by:
getBeadDepth in interface BeadFeatureRenderer
Returns:
a double.

getBeadDisplacement

public double getBeadDisplacement()
Description copied from interface: BeadFeatureRenderer
getBeadDisplacement returns the displacement of beads from the centre line of the renderer. A positive value indicates displacment downwards (for horizontal renderers) or to the right (for vertical renderers).

Specified by:
getBeadDisplacement in interface BeadFeatureRenderer
Returns:
a double.

getHeightScaling

public boolean getHeightScaling()
getHeightScaling returns the state of the height scaling policy.

Returns:
a boolean true if height scaling is enabled.

setHeightScaling

public void setHeightScaling(boolean isEnabled)
                      throws ChangeVetoException
setHeightScaling sets the height scaling policy. Default behaviour is for this to be enabled leading to features being drawn with a height equal to half their width, subject to a maximum height restriction equal to the beadDepth set in the constructor. If disabled, features will always be drawn at the maximum height allowed by the beadDepth parameter.

Parameters:
isEnabled - a boolean.
Throws:
ChangeVetoException - if an error occurs.

processMouseEvent

public FeatureHolder processMouseEvent(FeatureHolder holder,
                                       SequenceRenderContext context,
                                       java.awt.event.MouseEvent mEvent)
Specified by:
processMouseEvent in interface FeatureRenderer