/*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.6)
- * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7)
+ * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, G Barton, M Clamp, S Searle
*
* This file is part of Jalview.
*
av = ap.av;
setLayout(null);
int height = adjustPanelHeight();
- ap.apvscroll.setValues(0, getHeight(), 0, height);
+ ap.apvscroll.setValues(0, getSize().height, 0, height);
addMouseMotionListener(this);
av.alignment.getAlignmentAnnotation()[graphStretch].graphHeight = 0;
}
graphStretchY = evt.getY();
- adjustPanelHeight();
+ calcPanelHeight();
needValidating = true;
ap.paintAlignment(true);
}
public int adjustPanelHeight(boolean repaint)
{
-
+ int height = calcPanelHeight();
+ this.setSize(new Dimension(getSize().width, height));
+ if (repaint)
+ {
+ repaint();
+ }
+ return height;
+ }
+ /**
+ * calculate the height for visible annotation, revalidating bounds where necessary
+ * ABSTRACT GUI METHOD
+ * @return total height of annotation
+ */
+ public int calcPanelHeight()
+ {
// setHeight of panels
AlignmentAnnotation[] aa = av.alignment.getAlignmentAnnotation();
int height = 0;
{
height = 20;
}
- this.setPreferredSize(new Dimension(getSize().width, height));
- if (repaint)
- {
- repaint();
- }
return height;
public void paint(Graphics g)
{
-
- imgWidth = getSize().width;
+ Dimension d = getSize();
+ imgWidth = d.width;
// (av.endRes - av.startRes + 1) * av.charWidth;
-
- if (image == null || imgWidth != image.getWidth(this))
+ if (imgWidth<1 || d.height<1)
+ {
+ return;
+ }
+ if (image == null || imgWidth != image.getWidth(this) || d.height != image.getHeight(this))
{
- image = createImage(imgWidth, ap.annotationPanel.getSize().height);
+ image = createImage(imgWidth, d.height);
gg = image.getGraphics();
gg.setFont(av.getFont());
fm = gg.getFontMetrics();