## org.biojava.bio.gui.sequence
Class RectangularBeadRenderer

    java.lang.Object
      org.biojava.utils.AbstractChangeable
          org.biojava.bio.gui.sequence.AbstractBeadRenderer
              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.