X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FSeqCanvas.java;h=a9b9d4d3413c6b2677867443a4afb512348dc8da;hb=8550acbddfcf94dbacaae9738a4b6d4f68b16b02;hp=e96270973b2dd1b2fb1f9b14e6c4c0f7d2205d13;hpb=f35dfec0655116f4eb1afec4997eb496683687f6;p=jalview.git diff --git a/src/jalview/gui/SeqCanvas.java b/src/jalview/gui/SeqCanvas.java index e962709..a9b9d4d 100755 --- a/src/jalview/gui/SeqCanvas.java +++ b/src/jalview/gui/SeqCanvas.java @@ -56,8 +56,8 @@ import javax.swing.JPanel; @SuppressWarnings("serial") public class SeqCanvas extends JPanel implements ViewportListenerI { - /* - * pixels gap between sequences and annotations when in wrapped mode + /** + * vertical gap in pixels between sequences and annotations when in wrapped mode */ static final int SEQS_ANNOTATION_GAP = 3; @@ -456,7 +456,7 @@ public class SeqCanvas extends JPanel implements ViewportListenerI if (av.getWrapAlignment()) { - drawWrappedPanel(gg, width, height, ranges.getStartRes()); + drawWrappedPanel(gg, getWidth(), getHeight(), ranges.getStartRes()); } else { @@ -890,35 +890,24 @@ public class SeqCanvas extends JPanel implements ViewportListenerI int canvasWidth, int canvasHeight, int startRes) { - int charHeight = av.getCharHeight(); - int charWidth = av.getCharWidth(); - - // height gap above each panel - int hgap = charHeight; - if (av.getScaleAboveWrapped()) - { - hgap += charHeight; - } - - int cWidth = (canvasWidth - labelWidthEast - labelWidthWest) - / charWidth; - int cHeight = av.getAlignment().getHeight() * charHeight; - - int startx = startRes; - int endx; - int ypos = hgap; // vertical offset - int maxwidth = av.getAlignment().getVisibleWidth(); - // chop the wrapped alignment extent up into panel-sized blocks and treat // each block as if it were a block from an unwrapped alignment g.setStroke(new BasicStroke(1, BasicStroke.CAP_BUTT, BasicStroke.JOIN_ROUND, 3f, new float[] { 5f, 3f }, 0f)); g.setColor(Color.RED); + + int charWidth = av.getCharWidth(); + int cWidth = (canvasWidth - labelWidthEast - labelWidthWest) + / charWidth; + int startx = startRes; + int maxwidth = av.getAlignment().getVisibleWidth(); + int ypos = wrappedSpaceAboveAlignment; + while ((ypos <= canvasHeight) && (startx < maxwidth)) { // set end value to be start + width, or maxwidth, whichever is smaller - endx = startx + cWidth - 1; + int endx = startx + cWidth - 1; if (endx > maxwidth) { @@ -926,22 +915,24 @@ public class SeqCanvas extends JPanel implements ViewportListenerI } g.translate(labelWidthWest, 0); - drawUnwrappedSelection(g, group, startx, endx, 0, av.getAlignment().getHeight() - 1, ypos); - g.translate(-labelWidthWest, 0); - // update vertical offset - ypos += cHeight + getAnnotationHeight() + hgap; + ypos += wrappedRepeatHeightPx; - // update horizontal offset startx += cWidth; } g.setStroke(new BasicStroke()); } + /** + * Answers zero if annotations are not shown, otherwise recalculates and answers + * the total height of all annotation rows in pixels + * + * @return + */ int getAnnotationHeight() { if (!av.isShowAnnotation())