image is panel size
[jalview.git] / src / jalview / appletgui / SeqCanvas.java
index e947f7a..f36cc6a 100755 (executable)
@@ -1,6 +1,6 @@
 /*\r
  * Jalview - A Sequence Alignment Editor and Viewer\r
- * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
+ * Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
  *\r
  * This program is free software; you can redistribute it and/or\r
  * modify it under the terms of the GNU General Public License\r
@@ -49,7 +49,7 @@ public class SeqCanvas
     this.av = av;\r
     fr = new FeatureRenderer(av);\r
     sr = new SequenceRenderer(av);\r
-    PaintRefresher.Register(this, av.alignment);\r
+    PaintRefresher.Register(this, av.getSequenceSetId());\r
   }\r
 \r
   public AlignViewport getViewport()\r
@@ -355,13 +355,22 @@ public class SeqCanvas
    */\r
   String getMask()\r
   {\r
-    String mask = "00";\r
-    for (int i = av.alignment.getWidth(); i > 0; i /= 10)\r
+    String mask = "0";\r
+    int maxWidth = 0;\r
+    int tmp;\r
+    for (int i = 0; i < av.alignment.getHeight(); i++)\r
+    {\r
+      tmp = av.alignment.getSequenceAt(i).getEnd();\r
+      if (tmp > maxWidth)\r
+        maxWidth = tmp;\r
+    }\r
+\r
+    for (int i = maxWidth; i > 0; i /= 10)\r
     {\r
       mask += "0";\r
     }\r
     return mask;\r
-    }\r
+  }\r
 \r
   public void drawWrappedPanel(Graphics g, int canvasWidth, int canvasHeight,\r
                                int startRes)\r
@@ -396,7 +405,7 @@ public class SeqCanvas
     int endx;\r
     int ypos = hgap;\r
 \r
-    int maxwidth = av.alignment.getWidth();\r
+    int maxwidth = av.alignment.getWidth()-1;\r
 \r
     if(av.hasHiddenColumns)\r
           maxwidth = av.getColumnSelection().findColumnPosition(maxwidth)-1;\r
@@ -532,9 +541,9 @@ public class SeqCanvas
           {\r
             g1.setColor(Color.blue);\r
             g1.drawLine( (blockEnd - blockStart + 1) * av.charWidth - 1,\r
-                        startSeq + offset,\r
-                        (blockEnd - blockStart + 1) * av.charWidth - 1,\r
-                        startSeq + (endSeq - startSeq) * av.charHeight + offset);\r
+                         0 + offset,\r
+                         (blockEnd - blockStart + 1) * av.charWidth - 1,\r
+                         (endSeq - startSeq) * av.charHeight + offset);\r
           }\r
 \r
           g1.translate( -screenY * av.charWidth, 0);\r
@@ -575,6 +584,9 @@ public class SeqCanvas
         {\r
             nextSeq = av.alignment.getSequenceAt(i);\r
 \r
+            if(nextSeq==null)\r
+              continue;\r
+\r
             sr.drawSequence(nextSeq, av.alignment.findAllGroups(nextSeq),\r
                             startRes, endRes,\r
                             offset + ( (i - startSeq) * av.charHeight));\r
@@ -629,7 +641,7 @@ public class SeqCanvas
      int ex = -1;\r
      int groupIndex = -1;\r
 \r
-     if ( (group == null) && (group.getSize(false) > 0))\r
+     if ( (group == null) && (av.alignment.getGroups().size() > 0))\r
      {\r
        group = (SequenceGroup) av.alignment.getGroups().elementAt(0);\r
        groupIndex = 0;\r
@@ -659,12 +671,12 @@ public class SeqCanvas
            }\r
 \r
            if ( (sx <= (endRes - startRes) * av.charWidth) &&\r
-               group.getSequences(false).\r
+               group.getSequences(null).\r
                contains(av.alignment.getSequenceAt(i)))\r
            {\r
              if ( (bottom == -1) &&\r
              (i >= alHeight ||\r
-                 !group.getSequences(false).contains(\r
+                 !group.getSequences(null).contains(\r
                      av.alignment.getSequenceAt(i + 1))))\r
              {\r
                bottom = sy + av.charHeight;\r
@@ -673,7 +685,7 @@ public class SeqCanvas
              if (!inGroup)\r
              {\r
                if ( ( (top == -1) && (i == 0)) ||\r
-                   !group.getSequences(false).contains(\r
+                   !group.getSequences(null).contains(\r
                        av.alignment.getSequenceAt(i - 1)))\r
                {\r
                  top = sy;\r