From ef39fb4e4ab6c38dd20255f4a60609a6af581dcf Mon Sep 17 00:00:00 2001 From: kiramt Date: Fri, 18 Aug 2017 09:03:44 +0100 Subject: [PATCH] JAL-2665 Refactoring (and side-effect fix for JAL-2672) --- src/jalview/gui/SeqCanvas.java | 163 ++-------------------------------------- 1 file changed, 8 insertions(+), 155 deletions(-) diff --git a/src/jalview/gui/SeqCanvas.java b/src/jalview/gui/SeqCanvas.java index fb6a10b..d5b27f8 100755 --- a/src/jalview/gui/SeqCanvas.java +++ b/src/jalview/gui/SeqCanvas.java @@ -79,6 +79,8 @@ public class SeqCanvas extends JComponent implements ViewportListenerI boolean fastpainting = false; + AnnotationPanel annotations; + /** * Creates a new SeqCanvas object. * @@ -738,8 +740,6 @@ public class SeqCanvas extends JComponent implements ViewportListenerI } } - AnnotationPanel annotations; - int getAnnotationHeight() { if (!av.isShowAnnotation()) @@ -908,12 +908,7 @@ public class SeqCanvas extends JComponent implements ViewportListenerI // /////////////////////////////////// SequenceGroup group = null; - - int sx = -1; - int sy = -1; - int ex = -1; int groupIndex = -1; - int visWidth = (endRes - startRes + 1) * charWidth; if (av.getAlignment().getGroups().size() > 0) { @@ -928,151 +923,9 @@ public class SeqCanvas extends JComponent implements ViewportListenerI do { + drawPartialGroupOutline(g, group, startRes, endRes, startSeq, + endSeq, offset); - // drawSelectionGroupPart(g, group, startRes, endRes, startSeq, - // endSeq,offset); - int oldY = -1; - int i = 0; - boolean inGroup = false; - int top = -1; - int bottom = -1; - - for (i = startSeq; i <= endSeq; i++) - { - // position of start residue of group relative to startRes, in pixels - sx = (group.getStartRes() - startRes) * charWidth; - sy = offset + ((i - startSeq) * charHeight); - // width of group in pixels - ex = (((group.getEndRes() + 1) - group.getStartRes()) * charWidth) - - 1; - - if (sx + ex < 0 || sx > visWidth) - { - continue; - } - - if ((sx <= (endRes - startRes) * charWidth) - && group.getSequences(null).contains( - av.getAlignment().getSequenceAt(i))) - { - if ((bottom == -1) - && !group.getSequences(null).contains( - av.getAlignment().getSequenceAt(i + 1))) - { - bottom = sy + charHeight; - } - - if (!inGroup) - { - if (((top == -1) && (i == 0)) - || !group.getSequences(null).contains( - av.getAlignment().getSequenceAt(i - 1))) - { - top = sy; - } - - oldY = sy; - inGroup = true; - - g.setStroke(new BasicStroke()); - g.setColor(group.getOutlineColour()); - } - } - else - { - if (inGroup) - { - // if start position is visible, draw vertical line to left of - // group - if (sx >= 0 && sx < visWidth) - { - g.drawLine(sx, oldY, sx, sy); - } - - // if end position is visible, draw vertical line to right of - // group - if (sx + ex < visWidth) - { - g.drawLine(sx + ex, oldY, sx + ex, sy); - } - - if (sx < 0) - { - ex += sx; - sx = 0; - } - - if (sx + ex > visWidth) - { - ex = visWidth; - } - else if (sx + ex >= (endRes - startRes + 1) * charWidth) - { - ex = (endRes - startRes + 1) * charWidth; - } - - // draw horizontal line at top of group - if (top != -1) - { - g.drawLine(sx, top, sx + ex, top); - top = -1; - } - - // draw horizontal line at bottom of group - if (bottom != -1) - { - g.drawLine(sx, bottom, sx + ex, bottom); - bottom = -1; - } - - inGroup = false; - } - } - } - - if (inGroup) - { - sy = offset + ((i - startSeq) * charHeight); - if (sx >= 0 && sx < visWidth) - { - g.drawLine(sx, oldY, sx, sy); - } - - if (sx + ex < visWidth) - { - g.drawLine(sx + ex, oldY, sx + ex, sy); - } - - if (sx < 0) - { - ex += sx; - sx = 0; - } - - if (sx + ex > visWidth) - { - ex = visWidth; - } - else if (sx + ex >= (endRes - startRes + 1) * charWidth) - { - ex = (endRes - startRes + 1) * charWidth; - } - - if (top != -1) - { - g.drawLine(sx, top, sx + ex, top); - top = -1; - } - - if (bottom != -1) - { - g.drawLine(sx, bottom - 1, sx + ex, bottom - 1); - bottom = -1; - } - - inGroup = false; - } - groupIndex++; g.setStroke(new BasicStroke()); @@ -1156,7 +1009,7 @@ public class SeqCanvas extends JComponent implements ViewportListenerI { if (!av.hasHiddenColumns()) { - drawSelectionGroupPart(g, group, startRes, endRes, startSeq, endSeq, + drawPartialGroupOutline(g, group, startRes, endRes, startSeq, endSeq, offset); } else @@ -1181,7 +1034,7 @@ public class SeqCanvas extends JComponent implements ViewportListenerI blockEnd = hideStart - 1; g.translate(screenY * charWidth, 0); - drawSelectionGroupPart(g, group, + drawPartialGroupOutline(g, group, blockStart, blockEnd, startSeq, endSeq, offset); g.translate(-screenY * charWidth, 0); @@ -1200,7 +1053,7 @@ public class SeqCanvas extends JComponent implements ViewportListenerI // remaining visible region to render blockEnd = blockStart + (endRes - startRes) - screenY; g.translate(screenY * charWidth, 0); - drawSelectionGroupPart(g, group, + drawPartialGroupOutline(g, group, blockStart, blockEnd, startSeq, endSeq, offset); g.translate(-screenY * charWidth, 0); @@ -1211,7 +1064,7 @@ public class SeqCanvas extends JComponent implements ViewportListenerI /* * Draw the selection group as a separate image and overlay */ - private void drawSelectionGroupPart(Graphics2D g, SequenceGroup group, + private void drawPartialGroupOutline(Graphics2D g, SequenceGroup group, int startRes, int endRes, int startSeq, int endSeq, int verticalOffset) { -- 1.7.10.2