public class PairwiseDiagonalRenderer extends AbstractChangeable implements PairwiseSequenceRenderer, Serializable
PairwiseDiagonalRenderer renders a region of
similarity between two sequences as a straight line. The effect
produced is similar to a dotplot. This implementation requires that
these regions be represented by
SimilarityPairFeatures.
Drawing outside the visible area using a range of valid
doubles may cause Java to hang (Sun JDK 1.3.1 on
Linux, Compaq JDK 1.3.1 on Tru64, but not Sun JDK 1.4.0-beta2-b77
on Linux). I got round this by manual clipping of the lines to the
clip area. The code uses an implementation of the Cohen-Sutherland
line-clipping algorithm which clips lines to within a
rectangle.
The clipping code is taken from Computer Graphics for Java Programmers by Leen Ammeraal (1998, ISBN 0-471-98142-7) and cosmetically altered to support Java2D objects. Any bugs introduced are my responsibility.
PairwiseSequenceRenderer.PairwiseRendererForwarder| Modifier and Type | Field and Description |
|---|---|
protected Line2D.Float |
line
line is the line to be drawn for each feature. |
protected Paint |
outline
outline is the line colour. |
static ChangeType |
OUTLINE
Constant
OUTLINE indicating a change to the fill of
the features. |
| Constructor and Description |
|---|
PairwiseDiagonalRenderer()
Creates a new
PairwiseDiagonalRenderer which will
draw black lines. |
PairwiseDiagonalRenderer(Paint outline)
Creates a new
PairwiseDiagonalRenderer which will
draw lines using the specified Paint. |
| Modifier and Type | Method and Description |
|---|---|
Paint |
getOutline()
getOutline returns the colour used to draw the
lines. |
void |
paint(Graphics2D g2,
PairwiseRenderContext context)
paint renders the feature as a simple line. |
SequenceViewerEvent |
processMouseEvent(PairwiseRenderContext context,
MouseEvent me,
List path)
processMouseEvent acts on a mouse gesture. |
void |
setOutline(Paint outline)
setOutline sets the the colour used to draw the
lines. |
addChangeListener, addChangeListener, generateChangeSupport, getChangeSupport, hasListeners, hasListeners, isUnchanging, removeChangeListener, removeChangeListenerpublic static final ChangeType OUTLINE
OUTLINE indicating a change to the fill of
the features.protected Line2D.Float line
line is the line to be drawn for each feature.public PairwiseDiagonalRenderer()
PairwiseDiagonalRenderer which will
draw black lines.public PairwiseDiagonalRenderer(Paint outline)
PairwiseDiagonalRenderer which will
draw lines using the specified Paint.outline - a Paint.public void paint(Graphics2D g2, PairwiseRenderContext context)
paint renders the feature as a simple line.paint in interface PairwiseSequenceRendererg2 - a Graphics2D.context - a PairwiseRenderContext.public Paint getOutline()
getOutline returns the colour used to draw the
lines.Paint.public void setOutline(Paint outline) throws ChangeVetoException
setOutline sets the the colour used to draw the
lines.outline - a Paint.ChangeVetoException - if an error occurs.public SequenceViewerEvent processMouseEvent(PairwiseRenderContext context, MouseEvent me, List path)
processMouseEvent acts on a mouse gesture. The
target object is a FeatureHolder containing the
features on the primary sequence which contain the mouse
pointer.processMouseEvent in interface PairwiseSequenceRenderercontext - a PairwiseRenderContext.me - a MouseEvent.path - a List.SequenceViewerEvent.Copyright © 2020 BioJava. All rights reserved.