Package org.biojava.bio.gui.sequence
Class PairwiseOverlayRenderer
- java.lang.Object
-
- org.biojava.utils.AbstractChangeable
-
- org.biojava.bio.gui.sequence.PairwiseOverlayRenderer
-
- All Implemented Interfaces:
Serializable
,PairwiseSequenceRenderer
,Changeable
public class PairwiseOverlayRenderer extends AbstractChangeable implements PairwiseSequenceRenderer, Serializable
PairwiseOverlayRenderer
allows a list of otherPairwiseSequenceRenderer
s 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/interfaces inherited from interface org.biojava.bio.gui.sequence.PairwiseSequenceRenderer
PairwiseSequenceRenderer.PairwiseRendererForwarder
-
-
Field Summary
Fields Modifier and Type Field Description static ChangeType
RENDERERS
ConstantRENDERERS
indicating a change to the renderers handled by the overlay.
-
Constructor Summary
Constructors Constructor Description PairwiseOverlayRenderer()
Creates a new, emptyPairwiseOverlayRenderer
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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(Graphics2D g2, PairwiseRenderContext context)
paint
applies all renderers in the order in which they were added.SequenceViewerEvent
processMouseEvent(PairwiseRenderContext context, MouseEvent me, List path)
processMouseEvent
produces aSequenceViewerEvent
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, hasListeners, isUnchanging, removeChangeListener, removeChangeListener
-
-
-
-
Field Detail
-
RENDERERS
public static final ChangeType RENDERERS
ConstantRENDERERS
indicating a change to the renderers handled by the overlay.
-
-
Constructor Detail
-
PairwiseOverlayRenderer
public PairwiseOverlayRenderer()
Creates a new, emptyPairwiseOverlayRenderer
.
-
-
Method Detail
-
addRenderer
public void addRenderer(PairwiseSequenceRenderer renderer) throws ChangeVetoException
addRenderer
adds a renderer.- Parameters:
renderer
- aPairwiseSequenceRenderer
.- Throws:
ChangeVetoException
- if an error occurs.
-
removeRenderer
public void removeRenderer(PairwiseSequenceRenderer renderer) throws ChangeVetoException
removeRenderer
removes a renderer.- Parameters:
renderer
- aPairwiseSequenceRenderer
.- 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(Graphics2D g2, PairwiseRenderContext context)
paint
applies all renderers in the order in which they were added.- Specified by:
paint
in interfacePairwiseSequenceRenderer
- Parameters:
g2
- aGraphics2D
.context
- aPairwiseRenderContext
.
-
getChangeSupport
protected ChangeSupport getChangeSupport(ChangeType ct)
Description copied from class:AbstractChangeable
Called to retrieve the ChangeSupport for this object.Your implementation of this method should have the following structure:
It is usual for the forwarding listeners (someForwarder in this example) to be transient and lazily instantiated. Be sure to register & unregister the forwarder in the code that does the ChangeEvent handling in setter methods.ChangeSupport cs = super.getChangeSupport(ct); if(someForwarder == null && ct.isMatching(SomeInterface.SomeChangeType)) { someForwarder = new ChangeForwarder(... this.stateVariable.addChangeListener(someForwarder, VariableInterface.AChange); } return cs;
- Overrides:
getChangeSupport
in classAbstractChangeable
-
processMouseEvent
public SequenceViewerEvent processMouseEvent(PairwiseRenderContext context, MouseEvent me, List path)
processMouseEvent
produces aSequenceViewerEvent
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 interfacePairwiseSequenceRenderer
- Parameters:
context
- aPairwiseRenderContext
.me
- aMouseEvent
that caused the request.path
- aList
ofPairwiseSequenceRenderer
instances passed through so far.- Returns:
- a
SequenceViewerEvent
encapsulating the mouse gesture.
-
_addRenderer
protected void _addRenderer(PairwiseSequenceRenderer renderer)
-
_removeRenderer
protected void _removeRenderer(PairwiseSequenceRenderer renderer)
-
-