org.biojava.bio.gui.sequence
Class PairwiseOverlayRenderer

java.lang.Object
  extended byorg.biojava.utils.AbstractChangeable
      extended byorg.biojava.bio.gui.sequence.PairwiseOverlayRenderer
All Implemented Interfaces:
Changeable, PairwiseSequenceRenderer, java.io.Serializable

public class PairwiseOverlayRenderer
extends AbstractChangeable
implements PairwiseSequenceRenderer, java.io.Serializable

PairwiseOverlayRenderer allows a list of other PairwiseSequenceRenderers to superimpose their output. Operations on the child renderers (rendering, event handling) are carried out in the order in which they were added.

Since:
1.2
Author:
Keith James, Matthew Pocock
See Also:
Serialized Form

Nested Class Summary
 
Nested classes inherited from class org.biojava.bio.gui.sequence.PairwiseSequenceRenderer
PairwiseSequenceRenderer.PairwiseRendererForwarder
 
Field Summary
static ChangeType RENDERERS
          Constant RENDERERS indicating a change to the renderers handled by the overlay.
 
Constructor Summary
PairwiseOverlayRenderer()
          Creates a new, empty PairwiseOverlayRenderer.
 
Method Summary
protected  void _addRenderer(PairwiseSequenceRenderer renderer)
           
protected  void _removeRenderer(PairwiseSequenceRenderer renderer)
           
 void addRenderer(PairwiseSequenceRenderer renderer)
          addRenderer adds a renderer.
 void clearRenderers()
          clearRenderers removes all the renderers.
protected  ChangeSupport getChangeSupport(ChangeType ct)
          Called to retrieve the ChangeSupport for this object
 void paint(java.awt.Graphics2D g2, PairwiseRenderContext context)
          paint applies all renderers in the order in which they were added.
 SequenceViewerEvent processMouseEvent(PairwiseRenderContext context, java.awt.event.MouseEvent me, java.util.List path)
          processMouseEvent produces a SequenceViewerEvent in response to a mouse gesture.
 void removeRenderer(PairwiseSequenceRenderer renderer)
          removeRenderer removes a renderer.
 
Methods inherited from class org.biojava.utils.AbstractChangeable
addChangeListener, addChangeListener, generateChangeSupport, hasListeners, isUnchanging, removeChangeListener, removeChangeListener
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

RENDERERS

public static final ChangeType RENDERERS
Constant RENDERERS indicating a change to the renderers handled by the overlay.

Constructor Detail

PairwiseOverlayRenderer

public PairwiseOverlayRenderer()
Creates a new, empty PairwiseOverlayRenderer.

Method Detail

addRenderer

public void addRenderer(PairwiseSequenceRenderer renderer)
                 throws ChangeVetoException
addRenderer adds a renderer.

Parameters:
renderer - a PairwiseSequenceRenderer.
Throws:
ChangeVetoException - if an error occurs.

removeRenderer

public void removeRenderer(PairwiseSequenceRenderer renderer)
                    throws ChangeVetoException
removeRenderer removes a renderer.

Parameters:
renderer - a PairwiseSequenceRenderer.
Throws:
ChangeVetoException - if an error occurs.

clearRenderers

public void clearRenderers()
                    throws ChangeVetoException
clearRenderers removes all the renderers.

Throws:
ChangeVetoException - if an error occurs.

paint

public void paint(java.awt.Graphics2D g2,
                  PairwiseRenderContext context)
paint applies all renderers in the order in which they were added.

Specified by:
paint in interface PairwiseSequenceRenderer
Parameters:
g2 - a Graphics2D.
context - a PairwiseRenderContext.

getChangeSupport

protected ChangeSupport getChangeSupport(ChangeType ct)
Description copied from class: AbstractChangeable
Called to retrieve the ChangeSupport for this object

Overrides:
getChangeSupport in class AbstractChangeable

processMouseEvent

public SequenceViewerEvent processMouseEvent(PairwiseRenderContext context,
                                             java.awt.event.MouseEvent me,
                                             java.util.List path)
processMouseEvent produces a SequenceViewerEvent in response to a mouse gesture. The list of renderers are probed in the order in which they were added and the first renderer to accept the event will return.

Specified by:
processMouseEvent in interface PairwiseSequenceRenderer
Parameters:
me - a MouseEvent that caused the request.
path - a List of PairwiseSequenceRenderer instances passed through so far.
context - a PairwiseRenderContext.
Returns:
a SequenceViewerEvent encapsulating the mouse gesture.

_addRenderer

protected void _addRenderer(PairwiseSequenceRenderer renderer)

_removeRenderer

protected void _removeRenderer(PairwiseSequenceRenderer renderer)