org.biojava.bio.gui.sequence
Class RectangularBeadRenderer

java.lang.Object
  extended by org.biojava.utils.AbstractChangeable
      extended by org.biojava.bio.gui.sequence.AbstractBeadRenderer
          extended by org.biojava.bio.gui.sequence.RectangularBeadRenderer
All Implemented Interfaces:
Serializable, BeadFeatureRenderer, FeatureRenderer, Changeable

public class RectangularBeadRenderer
extends AbstractBeadRenderer

RectangularBeadRenderer renders features as simple rectangles. Their outline and fill Paint, Stroke, feature depth, Y-axis displacement are configurable. The height of the rectangle will be equal to half its width, but not greater than the beadDepth set in the constructor.

An alternative bead height behaviour is available where the rectangle height does not scale with its current width. The setHeightScaling method should be passed a boolean value to change this. The default is to use height scaling.

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

Field Summary
static ChangeType HEIGHTSCALING
          Constant HEIGHTSCALING indicating a change to the feature height scaling policy.
protected  Rectangle2D rect
           
protected  boolean scaleHeight
           
 
Fields inherited from class org.biojava.bio.gui.sequence.AbstractBeadRenderer
beadDepth, beadDisplacement, beadFill, beadOutline, beadStroke, delegates, delegationCache, DEPTH, DISPLACEMENT, FILL, OUTLINE, STROKE
 
Constructor Summary
RectangularBeadRenderer()
          Creates a new RectangularBeadRenderer with the default settings.
RectangularBeadRenderer(double beadDepth, double beadDisplacement, Paint beadOutline, Paint beadFill, Stroke beadStroke)
          Creates a new RectangularBeadRenderer.
 
Method Summary
 double getDepth(SequenceRenderContext context)
          getDepth calculates the depth required by this renderer to display its beads.
 boolean getHeightScaling()
          getHeightScaling returns the state of the height scaling policy.
 void renderBead(Graphics2D g2, Feature f, SequenceRenderContext context)
          renderBead renders features as simple rectangle.
 void setHeightScaling(boolean isEnabled)
          setHeightScaling sets the height scaling policy.
 
Methods inherited from class org.biojava.bio.gui.sequence.AbstractBeadRenderer
getBeadDepth, getBeadDisplacement, getBeadFill, getBeadOutline, getBeadStroke, processMouseEvent, removeDelegateRenderer, renderFeature, setBeadDepth, setBeadDisplacement, setBeadFill, setBeadOutline, setBeadStroke, setDelegateRenderer
 
Methods inherited from class org.biojava.utils.AbstractChangeable
addChangeListener, addChangeListener, generateChangeSupport, getChangeSupport, hasListeners, hasListeners, isUnchanging, removeChangeListener, removeChangeListener
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

HEIGHTSCALING

public static final ChangeType HEIGHTSCALING
Constant HEIGHTSCALING indicating a change to the feature height scaling policy.


rect

protected Rectangle2D rect

scaleHeight

protected boolean scaleHeight
Constructor Detail

RectangularBeadRenderer

public RectangularBeadRenderer()
Creates a new RectangularBeadRenderer with the default settings.


RectangularBeadRenderer

public RectangularBeadRenderer(double beadDepth,
                               double beadDisplacement,
                               Paint beadOutline,
                               Paint beadFill,
                               Stroke beadStroke)
Creates a new RectangularBeadRenderer.

Parameters:
beadDepth - a double.
beadDisplacement - a double.
beadOutline - a Paint.
beadFill - a Paint.
beadStroke - a Stroke.
Method Detail

renderBead

public void renderBead(Graphics2D g2,
                       Feature f,
                       SequenceRenderContext context)
renderBead renders features as simple rectangle.

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

getDepth

public double getDepth(SequenceRenderContext context)
getDepth calculates the depth required by this renderer to display its beads.

Specified by:
getDepth in interface FeatureRenderer
Overrides:
getDepth in class AbstractBeadRenderer
Parameters:
context - a SequenceRenderContext.
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.