X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FSequenceRenderer.java;h=c431e7ccd6273a8344004f243f766791cda7d515;hb=5aeb9ce3b99be8cbe7ca47c04a31dca3e3bbc282;hp=6bf4d40f29c72c5322757aa508297b0808f6b7ca;hpb=67f9ce94a4535ca980cf84a1f23ce90eae4ecac0;p=jalview.git diff --git a/src/jalview/gui/SequenceRenderer.java b/src/jalview/gui/SequenceRenderer.java index 6bf4d40..c431e7c 100755 --- a/src/jalview/gui/SequenceRenderer.java +++ b/src/jalview/gui/SequenceRenderer.java @@ -23,6 +23,7 @@ import jalview.datamodel.*; import jalview.schemes.*; import java.awt.*; +import java.awt.image.BufferedImage; /** @@ -77,6 +78,23 @@ public class SequenceRenderer return resBoxColour; } + BufferedImage bi; + public Color findSequenceColour(Color initialCol, SequenceI seq, int i) + { + if (bi == null) + bi = new BufferedImage(1, 1, BufferedImage.TYPE_INT_RGB); + + bi.getGraphics().setColor(initialCol); + bi.getGraphics().fillRect(0, 0, 1, 1); + allGroups = null; + graphics = bi.getGraphics(); + + drawBoxes(seq, i,i, 0, 0, 1,1); + + return new Color(bi.getRGB(0, 0)); + } + + /** * DOCUMENT ME! * @@ -116,10 +134,10 @@ public class SequenceRenderer graphics = g; - drawBoxes(seq, start, end, x1, y1, width, height); + drawBoxes(seq, start, end, x1, y1, (int) width, height); fm = g.getFontMetrics(); - drawText(seq, start, end, x1, y1, width, height); + drawText(seq, start, end, x1, y1, (int) width, height); } /** @@ -168,7 +186,14 @@ public class SequenceRenderer { if (tempColour != null) { - graphics.fillRect(x1 + (width * (curStart - start)), y1, + int xxx = x1 + (int) (av.charWidth * (curStart - start)); + if (width != av.charWidth) + { + xxx = x1 + (int) (av.charWidth * (curStart - start)) / 3; + } + + + graphics.fillRect(xxx, y1, curWidth, height); } @@ -186,7 +211,14 @@ public class SequenceRenderer i++; } - graphics.fillRect(x1 + (width * (curStart - start)), y1, curWidth, + int xxx = x1 + (int) (av.charWidth * (curStart - start)); + if (width != av.charWidth) + { + xxx = x1 + (int) (av.charWidth * (curStart - start)) / 3; + } + + + graphics.fillRect(xxx, y1, curWidth, height); } @@ -208,6 +240,7 @@ public class SequenceRenderer int charOffset = 0; char s; + // Need to find the sequence position here. String sequence = seq.getSequence(); @@ -261,8 +294,14 @@ public class SequenceRenderer } charOffset = (width - fm.charWidth(s)) / 2; - graphics.drawString(String.valueOf(s), - charOffset + x1 + (int)(width * (i - start)), (y1 + height) - pady); + + int xxx = charOffset + x1 + (int)(av.charWidth * (i - start)); + if(width != av.charWidth) + { + xxx = charOffset + x1 + (int)(av.charWidth * (i - start))/3; + } + + graphics.drawString(String.valueOf(s),xxx, (y1 + height) - pady); } }