ranges.getStartRes(), ranges.getEndRes(),
ranges.getStartSeq(), ranges.getEndSeq());
- BufferedImage cursorImage = drawCursor(ranges.getStartRes(),
- ranges.getEndRes(), ranges.getStartSeq(), ranges.getEndSeq());
-
if ((img != null) && (fastPaint
|| (getVisibleRect().width != g.getClipBounds().width)
|| (getVisibleRect().height != g.getClipBounds().height)))
{
- BufferedImage lcimg = buildLocalImage(selectImage, cursorImage);
+ BufferedImage lcimg = buildLocalImage(selectImage);
g.drawImage(lcimg, 0, 0, this);
fastPaint = false;
}
}
// lcimg is a local *copy* of img which we'll draw selectImage on top of
- BufferedImage lcimg = buildLocalImage(selectImage, cursorImage);
+ BufferedImage lcimg = buildLocalImage(selectImage);
g.drawImage(lcimg, 0, 0, this);
+
}
+ drawCursor(g, ranges.getStartRes(), ranges.getEndRes(),
+ ranges.getStartSeq(), ranges.getEndSeq());
}
/**
* Make a local image by combining the cached image img
* with any selection
*/
- private BufferedImage buildLocalImage(BufferedImage selectImage,
- BufferedImage cursorImage)
+ private BufferedImage buildLocalImage(BufferedImage selectImage)
{
// clone the cached image
BufferedImage lcimg = new BufferedImage(img.getWidth(), img.getHeight(),
AlphaComposite.getInstance(AlphaComposite.SRC_OVER));
g2d.drawImage(selectImage, 0, 0, this);
}
- // overlay cursor on lcimg
- if (cursorImage != null)
- {
- g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER));
- g2d.drawImage(cursorImage, 0, 0, this);
- }
+
g2d.dispose();
return lcimg;
}
}
}
-
- /* if (av.cursorMode && cursorY == i && cursorX >= startRes
- && cursorX <= endRes)
- {
- seqRdr.drawCursor(nextSeq, cursorX, (cursorX - startRes) * charWidth,
- offset + ((i - startSeq) * charHeight));
- }*/
}
if (av.getSelectionGroup() != null
* @return a transparent image of the same size as the sequence canvas, with
* the cursor drawn on it, if any
*/
- private BufferedImage drawCursor(int startRes, int endRes, int startSeq,
+ private void drawCursor(Graphics g, int startRes, int endRes,
+ int startSeq,
int endSeq)
{
- // define our cursor image
- BufferedImage cursorImage = null;
-
// convert the cursorY into a position on the visible alignment
int cursor_ypos = av.getAlignment().getHiddenSequences()
.findIndexWithoutHiddenSeqs(cursorY);
// now check if cursor is within range for x values
if (cursor_xpos >= startx && cursor_xpos <= endx)
{
- // get a new image of the correct size
- cursorImage = setupImage();
- Graphics2D g = (Graphics2D) cursorImage.getGraphics();
-
// get the character the cursor is drawn at
SequenceI seq = av.getAlignment().getSequenceAt(cursorY);
char s = seq.getCharAt(cursorX);
g.dispose();
}
}
-
- return cursorImage;
}