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