Class PairwiseDiagonalRenderer
- All Implemented Interfaces:
Serializable
,PairwiseSequenceRenderer
,Changeable
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.
- Since:
- 1.2
- Author:
- Keith James, Leen Ammeraal
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.biojava.bio.gui.sequence.PairwiseSequenceRenderer
PairwiseSequenceRenderer.PairwiseRendererForwarder
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Line2D.Float
line
is the line to be drawn for each feature.protected Paint
outline
is the line colour.static final ChangeType
ConstantOUTLINE
indicating a change to the fill of the features. -
Constructor Summary
ConstructorsConstructorDescriptionCreates a newPairwiseDiagonalRenderer
which will draw black lines.PairwiseDiagonalRenderer
(Paint outline) Creates a newPairwiseDiagonalRenderer
which will draw lines using the specifiedPaint
. -
Method Summary
Modifier and TypeMethodDescriptiongetOutline
returns the colour used to draw the lines.void
paint
(Graphics2D g2, PairwiseRenderContext context) paint
renders the feature as a simple line.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.Methods inherited from class org.biojava.utils.AbstractChangeable
addChangeListener, addChangeListener, generateChangeSupport, getChangeSupport, hasListeners, hasListeners, isUnchanging, removeChangeListener, removeChangeListener
-
Field Details
-
OUTLINE
ConstantOUTLINE
indicating a change to the fill of the features. -
line
line
is the line to be drawn for each feature. -
outline
outline
is the line colour.
-
-
Constructor Details
-
PairwiseDiagonalRenderer
public PairwiseDiagonalRenderer()Creates a newPairwiseDiagonalRenderer
which will draw black lines. -
PairwiseDiagonalRenderer
Creates a newPairwiseDiagonalRenderer
which will draw lines using the specifiedPaint
.- Parameters:
outline
- aPaint
.
-
-
Method Details
-
paint
paint
renders the feature as a simple line.- Specified by:
paint
in interfacePairwiseSequenceRenderer
- Parameters:
g2
- aGraphics2D
.context
- aPairwiseRenderContext
.
-
getOutline
getOutline
returns the colour used to draw the lines.- Returns:
- a
Paint
.
-
setOutline
setOutline
sets the the colour used to draw the lines.- Parameters:
outline
- aPaint
.- Throws:
ChangeVetoException
- if an error occurs.
-
processMouseEvent
public SequenceViewerEvent processMouseEvent(PairwiseRenderContext context, MouseEvent me, List path) processMouseEvent
acts on a mouse gesture. The target object is aFeatureHolder
containing the features on the primary sequence which contain the mouse pointer.- Specified by:
processMouseEvent
in interfacePairwiseSequenceRenderer
- Parameters:
context
- aPairwiseRenderContext
.me
- aMouseEvent
.path
- aList
.- Returns:
- a
SequenceViewerEvent
.
-