public void paint(Graphics g)\r
{\r
\r
+ if (img != null && (fastPaint\r
+ || (getSize().width != g.getClipBounds().width)\r
+ || (getSize().height != g.getClipBounds().height)))\r
+ {\r
+ g.drawImage(img, 0, 0, this);\r
+ fastPaint = false;\r
+ return;\r
+ }\r
+\r
if (fastPaint)\r
{\r
g.drawImage(img, 0, 0, this);\r
int LABEL_WEST, LABEL_EAST;\r
public int getWrappedCanvasWidth(int cwidth)\r
{\r
+ cwidth -= cwidth % av.charWidth;\r
+\r
FontMetrics fm = getFontMetrics(av.getFont());\r
\r
LABEL_EAST = 0;\r
\r
FontMetrics fm = getFontMetrics(av.getFont());\r
\r
- int LABEL_EAST = 0;\r
\r
if (av.scaleRightWrapped)\r
{\r
LABEL_EAST = fm.stringWidth(getMask());\r
}\r
\r
- int LABEL_WEST = 0;\r
-\r
if (av.scaleLeftWrapped)\r
{\r
LABEL_WEST = fm.stringWidth(getMask());\r
\r
void drawPanel(Graphics g, int startRes, int endRes, int startSeq, int endSeq, int offset)\r
{\r
-\r
g.setFont(av.getFont());\r
sr.renderGaps(av.renderGaps);\r
\r
groupIndex = 0;\r
}\r
\r
- if ( group != null)\r
+ if ( group != null )\r
{\r
do\r
{\r
boolean inGroup = false;\r
int top = -1;\r
int bottom = -1;\r
+ int alHeight = av.alignment.getHeight()-1;\r
\r
for (i = startSeq; i < endSeq; i++)\r
{\r
}\r
\r
if ( (sx <= (endRes-startRes)*av.charWidth) &&\r
- group.sequences.contains(av.alignment.getSequenceAt(\r
+ group.getSequences(false).contains(av.alignment.getSequenceAt(\r
i)))\r
{\r
- if ((bottom == -1) &&\r
- !group.sequences.contains(\r
- av.alignment.getSequenceAt(i + 1)))\r
+ if ( (bottom == -1) &&\r
+ (i >= alHeight ||\r
+ !group.getSequences(false).contains(\r
+ av.alignment.getSequenceAt(i + 1))))\r
{\r
bottom = sy + av.charHeight;\r
}\r
if (!inGroup)\r
{\r
if (((top == -1) && (i == 0)) ||\r
- !group.sequences.contains(\r
+ !group.getSequences(false).contains(\r
av.alignment.getSequenceAt(i - 1)))\r
{\r
top = sy;\r