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 other
PairwiseSequenceRenderer
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:
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.biojava.bio.gui.sequence.PairwiseSequenceRenderer
PairwiseSequenceRenderer.PairwiseRendererForwarder
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final ChangeType
ConstantRENDERERS
indicating a change to the renderers handled by the overlay. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected void
_addRenderer
(PairwiseSequenceRenderer renderer) protected void
_removeRenderer
(PairwiseSequenceRenderer renderer) void
addRenderer
(PairwiseSequenceRenderer renderer) addRenderer
adds a renderer.void
clearRenderers
removes all the renderers.protected ChangeSupport
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.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 Details
-
RENDERERS
ConstantRENDERERS
indicating a change to the renderers handled by the overlay.
-
-
Constructor Details
-
PairwiseOverlayRenderer
public PairwiseOverlayRenderer()Creates a new, emptyPairwiseOverlayRenderer
.
-
-
Method Details
-
addRenderer
addRenderer
adds a renderer.- Parameters:
renderer
- aPairwiseSequenceRenderer
.- Throws:
ChangeVetoException
- if an error occurs.
-
removeRenderer
removeRenderer
removes a renderer.- Parameters:
renderer
- aPairwiseSequenceRenderer
.- Throws:
ChangeVetoException
- if an error occurs.
-
clearRenderers
clearRenderers
removes all the renderers.- Throws:
ChangeVetoException
- if an error occurs.
-
paint
paint
applies all renderers in the order in which they were added.- Specified by:
paint
in interfacePairwiseSequenceRenderer
- Parameters:
g2
- aGraphics2D
.context
- aPairwiseRenderContext
.
-
getChangeSupport
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 invalid input: '&' unregister the forwarder in the code that does the ChangeEvent handling in setter methods.ChangeSupport cs = super.getChangeSupport(ct); if(someForwarder == null invalid input: '&'invalid input: '&' 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
-
_removeRenderer
-