X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FSeqCanvas.java;h=3af9fb939edc8b3476e5f144a6172f718437d824;hb=b61f2d9b571c4e4ab3285257c6ddbd39da61fa05;hp=e947f7ab0a49bf80a21c75f800b7ab6b6d0b080e;hpb=5cd5b6e7864fe435ceb3f5c2f339a436ea0aac93;p=jalview.git diff --git a/src/jalview/appletgui/SeqCanvas.java b/src/jalview/appletgui/SeqCanvas.java index e947f7a..3af9fb9 100755 --- a/src/jalview/appletgui/SeqCanvas.java +++ b/src/jalview/appletgui/SeqCanvas.java @@ -1,6 +1,6 @@ /* * Jalview - A Sequence Alignment Editor and Viewer - * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -49,7 +49,7 @@ public class SeqCanvas this.av = av; fr = new FeatureRenderer(av); sr = new SequenceRenderer(av); - PaintRefresher.Register(this, av.alignment); + PaintRefresher.Register(this, av.getSequenceSetId()); } public AlignViewport getViewport() @@ -355,13 +355,22 @@ public class SeqCanvas */ String getMask() { - String mask = "00"; - for (int i = av.alignment.getWidth(); i > 0; i /= 10) + String mask = "0"; + int maxWidth = 0; + int tmp; + for (int i = 0; i < av.alignment.getHeight(); i++) + { + tmp = av.alignment.getSequenceAt(i).getEnd(); + if (tmp > maxWidth) + maxWidth = tmp; + } + + for (int i = maxWidth; i > 0; i /= 10) { mask += "0"; } return mask; - } + } public void drawWrappedPanel(Graphics g, int canvasWidth, int canvasHeight, int startRes) @@ -532,9 +541,9 @@ public class SeqCanvas { g1.setColor(Color.blue); g1.drawLine( (blockEnd - blockStart + 1) * av.charWidth - 1, - startSeq + offset, - (blockEnd - blockStart + 1) * av.charWidth - 1, - startSeq + (endSeq - startSeq) * av.charHeight + offset); + 0 + offset, + (blockEnd - blockStart + 1) * av.charWidth - 1, + (endSeq - startSeq) * av.charHeight + offset); } g1.translate( -screenY * av.charWidth, 0); @@ -575,6 +584,9 @@ public class SeqCanvas { nextSeq = av.alignment.getSequenceAt(i); + if(nextSeq==null) + continue; + sr.drawSequence(nextSeq, av.alignment.findAllGroups(nextSeq), startRes, endRes, offset + ( (i - startSeq) * av.charHeight)); @@ -629,7 +641,7 @@ public class SeqCanvas int ex = -1; int groupIndex = -1; - if ( (group == null) && (group.getSize(false) > 0)) + if ( (group == null) && (av.alignment.getGroups().size() > 0)) { group = (SequenceGroup) av.alignment.getGroups().elementAt(0); groupIndex = 0; @@ -659,12 +671,12 @@ public class SeqCanvas } if ( (sx <= (endRes - startRes) * av.charWidth) && - group.getSequences(false). + group.getSequences(null). contains(av.alignment.getSequenceAt(i))) { if ( (bottom == -1) && (i >= alHeight || - !group.getSequences(false).contains( + !group.getSequences(null).contains( av.alignment.getSequenceAt(i + 1)))) { bottom = sy + av.charHeight; @@ -673,7 +685,7 @@ public class SeqCanvas if (!inGroup) { if ( ( (top == -1) && (i == 0)) || - !group.getSequences(false).contains( + !group.getSequences(null).contains( av.alignment.getSequenceAt(i - 1))) { top = sy;