X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Frenderer%2FAnnotationRenderer.java;h=75099c2aca14b2adb573dbdbb4a245529863636f;hb=37ccad699d3f506184538702799df55866211528;hp=33596788d2bfe4c5e491372f21d02d74712ce8d2;hpb=fddf3084802b37e5cee17829e32692a4aac3e60d;p=jalview.git diff --git a/src/jalview/renderer/AnnotationRenderer.java b/src/jalview/renderer/AnnotationRenderer.java index 3359678..75099c2 100644 --- a/src/jalview/renderer/AnnotationRenderer.java +++ b/src/jalview/renderer/AnnotationRenderer.java @@ -47,6 +47,12 @@ import com.stevesoft.pat.Regex; public class AnnotationRenderer { + private static final int UPPER_TO_LOWER = 'a' - 'A'; // 32 + + private static final int CHAR_A = 'A'; // 65 + + private static final int CHAR_Z = 'Z'; // 90 + /** * flag indicating if timing and redraw parameter info should be output */ @@ -96,9 +102,9 @@ public class AnnotationRenderer // if (validRes && column>1 && row_annotations[column-2]!=null && // dc.equals(row_annotations[column-2].displayCharacter)) { - g.fillPolygon(new int[] - { lastSSX + 5, lastSSX + 5, lastSSX }, new int[] - { y + iconOffset, y + 14 + iconOffset, y + 8 + iconOffset }, 3); + g.fillPolygon(new int[] { lastSSX + 5, lastSSX + 5, lastSSX }, + new int[] { y + iconOffset, y + 14 + iconOffset, + y + 8 + iconOffset }, 3); x1 += 5; } if (diffdownstream) @@ -112,9 +118,8 @@ public class AnnotationRenderer // display a forward arrow if (diffdownstream) { - g.fillPolygon(new int[] - { x2 - 5, x2 - 5, x2 }, new int[] - { y + iconOffset, y + 14 + iconOffset, y + 8 + iconOffset }, 3); + g.fillPolygon(new int[] { x2 - 5, x2 - 5, x2 }, new int[] { + y + iconOffset, y + 14 + iconOffset, y + 8 + iconOffset }, 3); x2 -= 5; } if (diffupstream) @@ -221,9 +226,9 @@ public class AnnotationRenderer // if (validRes && column>1 && row_annotations[column-2]!=null && // dc.equals(row_annotations[column-2].displayCharacter)) { - g.fillPolygon(new int[] - { lastSSX + 5, lastSSX + 5, lastSSX }, new int[] - { y + iconOffset, y + 14 + iconOffset, y + 8 + iconOffset }, 3); + g.fillPolygon(new int[] { lastSSX + 5, lastSSX + 5, lastSSX }, + new int[] { y + iconOffset, y + 14 + iconOffset, + y + 8 + iconOffset }, 3); x1 += 5; } if (diffdownstream) @@ -237,9 +242,8 @@ public class AnnotationRenderer // display a forward arrow if (diffdownstream) { - g.fillPolygon(new int[] - { x2 - 5, x2 - 5, x2 }, new int[] - { y + iconOffset, y + 14 + iconOffset, y + 8 + iconOffset }, 3); + g.fillPolygon(new int[] { x2 - 5, x2 - 5, x2 }, new int[] { + y + iconOffset, y + 14 + iconOffset, y + 8 + iconOffset }, 3); x2 -= 5; } if (diffupstream) @@ -594,14 +598,9 @@ public class AnnotationRenderer if (columnSelection != null) { - for (int n = 0; n < columnSelection.size(); n++) + if (columnSelection.contains(column)) { - int v = columnSelection.columnAt(n); - - if (v == column) - { - g.fillRect(x * charWidth, y, charWidth, charHeight); - } + g.fillRect(x * charWidth, y, charWidth, charHeight); } } } @@ -628,17 +627,17 @@ public class AnnotationRenderer // // if (scaleColLabel) // { - // justify the label and scale to fit in column - if (fmWidth > charWidth) - { - // scale only if the current font isn't already small enough - fmScaling = charWidth; - fmScaling /= fmWidth; - g.setFont(ofont.deriveFont(AffineTransform - .getScaleInstance(fmScaling, 1.0))); - // and update the label's width to reflect the scaling. - fmWidth = charWidth; - } + // justify the label and scale to fit in column + if (fmWidth > charWidth) + { + // scale only if the current font isn't already small enough + fmScaling = charWidth; + fmScaling /= fmWidth; + g.setFont(ofont.deriveFont(AffineTransform + .getScaleInstance(fmScaling, 1.0))); + // and update the label's width to reflect the scaling. + fmWidth = charWidth; + } // } } // TODO is it ok to use width of / show all characters here? @@ -715,14 +714,14 @@ public class AnnotationRenderer } } - if (ss >= 65) + if (isRNA && (ss >= CHAR_A) && (ss <= CHAR_Z)) { // distinguish between forward/backward base-pairing - if (displayChar.indexOf(ss + 32) > -1) + int ssLowerCase = ss + UPPER_TO_LOWER; + // TODO would .equals() be safer here? or charAt(0)? + if (displayChar.indexOf(ssLowerCase) > -1) { - - ss = (char) (ss + 32); - + ss = (char) ssLowerCase; } } @@ -1090,11 +1089,9 @@ public class AnnotationRenderer { g.fillRect(lastSSX, y + 4 + iconOffset, (x * charWidth) - lastSSX - 4, 7); - g.fillPolygon(new int[] - { (x * charWidth) - 4, (x * charWidth) - 4, (x * charWidth) }, - new int[] - { y + iconOffset, y + 14 + iconOffset, y + 7 + iconOffset }, - 3); + g.fillPolygon(new int[] { (x * charWidth) - 4, (x * charWidth) - 4, + (x * charWidth) }, new int[] { y + iconOffset, + y + 14 + iconOffset, y + 7 + iconOffset }, 3); } else { @@ -1249,8 +1246,7 @@ public class AnnotationRenderer g.setColor(_aa.threshold.colour); Graphics2D g2 = (Graphics2D) g; g2.setStroke(new BasicStroke(1, BasicStroke.CAP_SQUARE, - BasicStroke.JOIN_ROUND, 3f, new float[] - { 5f, 3f }, 0f)); + BasicStroke.JOIN_ROUND, 3f, new float[] { 5f, 3f }, 0f)); y2 = (int) (y - ((_aa.threshold.value - min) / range) * graphHeight); g.drawLine(0, y2, (eRes - sRes) * charWidth, y2); @@ -1433,8 +1429,7 @@ public class AnnotationRenderer g.setColor(_aa.threshold.colour); Graphics2D g2 = (Graphics2D) g; g2.setStroke(new BasicStroke(1, BasicStroke.CAP_SQUARE, - BasicStroke.JOIN_ROUND, 3f, new float[] - { 5f, 3f }, 0f)); + BasicStroke.JOIN_ROUND, 3f, new float[] { 5f, 3f }, 0f)); y2 = (int) (y - ((_aa.threshold.value - min) / range) * _aa.graphHeight);