ap.annotationScroller.getVerticalScrollBar().addAdjustmentListener(this);\r
}\r
\r
+ public AnnotationPanel(AlignViewport av)\r
+ {\r
+ this.av = av;\r
+ }\r
+\r
+\r
/**\r
* DOCUMENT ME!\r
*\r
/**\r
* DOCUMENT ME!\r
*/\r
- public void adjustPanelHeight()\r
+ public int adjustPanelHeight()\r
{\r
// setHeight of panels\r
+ image = null;\r
AlignmentAnnotation[] aa = av.alignment.getAlignmentAnnotation();\r
int height = 0;\r
\r
}\r
\r
this.setPreferredSize(new Dimension(1, height));\r
+\r
+ return height;\r
}\r
\r
/**\r
if (activeRow == -1)\r
{\r
AlignmentAnnotation[] aa = av.alignment.getAlignmentAnnotation();\r
+ if(aa==null)\r
+ return;\r
\r
for (int j = 0; j < aa.length; j++)\r
{\r
if (activeRow == -1)\r
{\r
AlignmentAnnotation[] aa = av.alignment.getAlignmentAnnotation();\r
+ if(aa==null)\r
+ return;\r
\r
for (int j = 0; j < aa.length; j++)\r
{\r
\r
for (int i = 0; i < aa.length; i++)\r
{\r
- height += aa[i].height;\r
+ if (aa[i].visible)\r
+ {\r
+ height += aa[i].height;\r
+ }\r
\r
if (evt.getY() < height)\r
{\r
g.setColor(Color.white);\r
g.fillRect(0, 0, getWidth(), getHeight());\r
\r
- if (fastPaint)\r
+ if (fastPaint && image!=null)\r
{\r
g.drawImage(image, 0, 0, this);\r
fastPaint = false;\r
* @param startRes DOCUMENT ME!\r
* @param endRes DOCUMENT ME!\r
*/\r
- public void drawComponent(Graphics2D g, int startRes, int endRes)\r
+ public void drawComponent(Graphics g, int startRes, int endRes)\r
{\r
+ g.setFont(av.getFont());\r
+\r
+ if (fm == null)\r
+ fm = g.getFontMetrics();\r
+\r
+\r
g.setColor(Color.white);\r
g.fillRect(0, 0, (endRes - startRes) * av.charWidth, getHeight());\r
\r
continue;\r
}\r
\r
+\r
if (row.isGraph)\r
{\r
// this is so that we draw the characters below the graph\r
}\r
\r
// used by overview window\r
- public void drawGraph(Graphics g, AlignmentAnnotation aa, int width, int y)\r
+ public void drawGraph(Graphics g, AlignmentAnnotation aa, int width, int y, int sRes, int eRes)\r
{\r
g.setColor(Color.white);\r
g.fillRect(0, 0, width, y);\r
g.setColor(new Color(0, 0, 180));\r
\r
- int x = 0;\r
\r
- for (int j = 0; j < aa.annotations.length; j++)\r
+ int x = 0, height;\r
+\r
+ for (int j = sRes; j < eRes; j++)\r
{\r
g.setColor(new Color(0, 0, 180));\r
\r
- int height = (int) ((aa.annotations[j].value / aa.graphMax) * GRAPH_HEIGHT);\r
+ height = (int) ((aa.annotations[j].value / aa.graphMax) * GRAPH_HEIGHT);\r
+ if(height>y)\r
+ height = y;\r
+\r
g.fillRect(x, y - height, av.charWidth, height);\r
x += av.charWidth;\r
}\r