ranges.getStartRes(), ranges.getEndRes(),
ranges.getStartSeq(), ranges.getEndSeq());
- if (fastPaint || (getVisibleRect().width != g.getClipBounds().width)
- || (getVisibleRect().height != g.getClipBounds().height))
+ if ((img != null) && (fastPaint
+ || (getVisibleRect().width != g.getClipBounds().width)
+ || (getVisibleRect().height != g.getClipBounds().height)))
{
BufferedImage lcimg = buildLocalImage(selectImage);
g.drawImage(lcimg, 0, 0, this);
}
}
+ /**
+ * Draw an alignment panel for printing
+ *
+ * @param g1
+ * Graphics object to draw with
+ * @param startRes
+ * start residue of print area
+ * @param endRes
+ * end residue of print area
+ * @param startSeq
+ * start sequence of print area
+ * @param endSeq
+ * end sequence of print area
+ */
+ public void drawPanelForPrint(Graphics g1, int startRes, int endRes,
+ int startSeq, int endSeq)
+ {
+ BufferedImage selectImage = drawSelectionGroup(startRes, endRes,
+ startSeq, endSeq);
+ drawPanel(g1, startRes, endRes, startSeq, endSeq, 0);
+ ((Graphics2D) g1).setComposite(
+ AlphaComposite.getInstance(AlphaComposite.SRC_OVER));
+ g1.drawImage(selectImage, 0, 0, this);
+ }
+
/*
* Make a local image by combining the cached image img
* with any selection
return lcimg;
}
- private void paintSeqGroup()
- {
- fastPaint = true;
- repaint();
- }
-
+ /*
+ * Set up a buffered image of the correct height and size for the sequence canvas
+ */
private BufferedImage setupImage()
{
BufferedImage lcimg = null;
{
System.gc();
System.err.println(
- "Selection Group image OutOfMemory Redraw Error.\n" + er);
+ "Group image OutOfMemory Redraw Error.\n" + er);
new OOMWarning("Creating alignment image for display", er);
return null;
return annotations.adjustPanelHeight();
}
- /**
- * DOCUMENT ME!
+ /*
+ * Draw an alignment panel for printing
*
* @param g1
- * DOCUMENT ME!
+ * Graphics object to draw with
* @param startRes
- * DOCUMENT ME!
+ * start residue of print area
* @param endRes
- * DOCUMENT ME!
+ * end residue of print area
* @param startSeq
- * DOCUMENT ME!
+ * start sequence of print area
* @param endSeq
- * DOCUMENT ME!
+ * end sequence of print area
* @param offset
- * DOCUMENT ME!
+ * vertical offset
*/
- public void drawPanel(Graphics g1, int startRes, int endRes,
+ private void drawPanel(Graphics g1, int startRes, int endRes,
int startSeq, int endSeq, int offset)
{
updateViewport();
sx = 0;
}
+ // don't let width extend beyond current block, or group extent
+ // fixes JAL-2672
if (sx + xwidth >= (endRes - startRes + 1) * charWidth)
{
xwidth = (endRes - startRes + 1) * charWidth - sx;
if (eventName.equals(SequenceGroup.SEQ_GROUP_CHANGED))
{
- paintSeqGroup();
+ fastPaint = true;
+ repaint();
}
else if (av.getWrapAlignment())
{