## org.biojava.bio.gui.sequence
Interface BeadFeatureRenderer

All Superinterfaces:
  FeatureRenderer

All Known Implementing Classes:
  AbstractBeadRenderer, EllipticalBeadRenderer, RectangularBeadRenderer, RectangularImapRenderer, RoundRectangularBeadRenderer

    public interface BeadFeatureRenderer

extends FeatureRenderer

`BeadFeatureRenderer`s use a 'string of beads' metaphor for displaying features.

A concrete `BeadFeatureRenderer` may render a series of features in more than one style by delegating to other `BeadFeatureRenderer`s for the additional style(s). This is achieved using the `setDelegateRenderer()` method which associates an `OptimizableFilter` with another `BeadFeatureRenderer`. Any feature accepted by the filter is rendered with that renderer, while the remainder are rendered by the current renderer.

Since:
  1.2
Author:
  Keith James

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.
`void` `renderBead(Graphics2D g2, Feature f, SequenceRenderContext context)` `renderBead` should implement rendering for this bead type only.
`void` `setDelegateRenderer(OptimizableFilter filter, BeadFeatureRenderer renderer)` `setDelegateRenderer` associates an `OptimizableFilter` with a `BeadFeatureRenderer`.

Methods inherited from interface org.biojava.bio.gui.sequence.FeatureRenderer
`getDepth, processMouseEvent, renderFeature`

Method Detail

### getBeadDepth

    double getBeadDepth()

  `getBeadDepth` returns the depth of a single bead produced by the renderer.

  Returns:
    a `double`.

### getBeadDisplacement

    double getBeadDisplacement()

  `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).

  Returns:
    a `double`.

### setDelegateRenderer

    void setDelegateRenderer(OptimizableFilter filter,
                             BeadFeatureRenderer renderer)

  `setDelegateRenderer` associates an `OptimizableFilter` with a `BeadFeatureRenderer`. Any feature accepted by the filter will be passed to the associated renderer for drawing. The `OptimizableFilter`s should be disjoint with respect to each other (a feature may not be rendered more than once).

  Parameters:
    `filter` - an `OptimizableFilter`.
    `renderer` - a `BeadFeatureRenderer`.

### renderBead

    void renderBead(Graphics2D g2,
                    Feature f,
                    SequenceRenderContext context)

  `renderBead` should implement rendering for this bead type only. The `renderFeature` method is expected to handle the calls to delegate renderers.

  Parameters:
    `g2` - a `Graphics2D`.
    `f` - a `Feature` to render.
    `context` - a `SequenceRenderContext` context.