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
SimilarityPairFeature
s.
Drawing outside the visible area using a range of valid
double
s 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, removeChangeListener
public 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 PairwiseSequenceRenderer
g2
- 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 PairwiseSequenceRenderer
context
- a PairwiseRenderContext
.me
- a MouseEvent
.path
- a List
.SequenceViewerEvent
.Copyright © 2014 BioJava. All rights reserved.