/*\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
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
*/\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
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
{\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
{\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
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
}\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
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