public void draw(boolean showSequenceFeatures, boolean showAnnotation,
FeatureRenderer transferRenderer)
{
- // System.out.println(this.getHeight());
- // setPreferredSize(new Dimension(od.getWidth(), od.getHeight()));
-
miniMe = null;
veryLastMiniMe = lastMiniMe;
@Override
public void paintComponent(Graphics g)
{
-
if (restart)
{
if (lastMiniMe == null)
}
else if (lastMiniMe != null)
{
+ // is this a resize?
if ((getWidth() > 0) && (getHeight() > 0)
&& ((getWidth() != od.getWidth())
|| (getHeight() != od.getHeight())))
{
- // scale the alignment and annotation separately *** if there is
- // annotation ***
+ // if there is annotation, scale the alignment and annotation separately
if (od.getGraphHeight() > 0)
{
BufferedImage topImage = lastMiniMe.getSubimage(0, 0,
}
else
{
- System.out.println("Resetting height from/to: " + od.getHeight()
- + " " + getHeight());
od.setWidth(getWidth());
od.setHeight(getHeight());
}
od.setBoxPosition(av.getAlignment().getHiddenSequences(),
av.getAlignment().getHiddenColumns());
}
- else
+ else // not a resize
{
if (alpha != 0) // this is a timer triggered dissolve
{
g2d.dispose();
}
- /* else if (lastMiniMe != miniMe)
- {
- g.drawImage(lastMiniMe, 0, 0, getWidth(), getHeight(), this);
- g.setColor(TRANS_GREY);
- g.fillRect(0, 0, getWidth(), getHeight());
- }*/
else
{
// fall back to normal behaviour
g.drawImage(lastMiniMe, 0, 0, getWidth(), getHeight(), this);
}
-
}
-
}
// draw the box
private ProgressPanel progressPanel;
+ boolean resizing = false;
+
/**
* Creates a new OverviewPanel object.
*
(av.isShowAnnotation() && av
.getAlignmentConservationAnnotation() != null));
- // setSize(od.getWidth(), od.getHeight() + 20);
-
setLayout(new BorderLayout());
progressPanel = new ProgressPanel(OverviewRenderer.UPDATE,
MessageManager.getString("label.oview_calc"));
av.getRanges().addPropertyChangeListener(this);
+ // without this the overview window does not size to fit the overview canvas
+ setPreferredSize(new Dimension(od.getWidth(), od.getHeight()));
+
addComponentListener(new ComponentAdapter()
{
@Override
public void componentResized(ComponentEvent evt)
{
- updateOverviewImage();
+ // Resize is called on the initial display of the overview.
+ // This code adjusts sizes to account for the progress bar if it has not
+ // already been accounted for, which triggers another resize call for
+ // the correct sizing, at which point the overview image is updated.
+ // (This avoids a double recalculation of the image.)
+ if (getWidth() == od.getWidth() && getHeight() == od.getHeight()
+ + progressPanel.getHeight())
+ {
+ updateOverviewImage();
+ }
+ else
+ {
+ if ((getWidth() > 0) && (getHeight() > 0))
+ {
+ od.setWidth(getWidth());
+ od.setHeight(getHeight() - progressPanel.getHeight());
+ }
+
+ setPreferredSize(new Dimension(od.getWidth(),
+ od.getHeight() + progressPanel.getHeight()));
+ }
}
});
}
}
});
-
- setPreferredSize(new Dimension(od.getWidth(),
- od.getHeight()));
}
/*