import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
+import java.awt.image.RasterFormatException;
import javax.swing.JPanel;
import jalview.api.AlignViewportI;
import jalview.bin.Cache;
+import jalview.bin.Console;
import jalview.renderer.OverviewRenderer;
import jalview.renderer.OverviewResColourFinder;
import jalview.viewmodel.OverviewDimensions;
if (od.getGraphHeight() > 0 && od.getSequencesHeight() > 0 // BH 2019
)
{
- BufferedImage topImage = lastMiniMe.getSubimage(0, 0,
- od.getWidth(), od.getSequencesHeight());
- BufferedImage bottomImage = lastMiniMe.getSubimage(0,
- od.getSequencesHeight(), od.getWidth(),
- od.getGraphHeight());
-
- // must be done at this point as we rely on using old width/height
- // above, and new width/height below
- od.setWidth(getWidth());
- od.setHeight(getHeight());
-
- // stick the images back together so lastMiniMe is consistent in the
- // event of a repaint - BUT probably not thread safe
- lastMiniMe = new BufferedImage(od.getWidth(), od.getHeight(),
- BufferedImage.TYPE_INT_RGB);
- Graphics lg = lastMiniMe.getGraphics();
- lg.drawImage(topImage, 0, 0, od.getWidth(),
- od.getSequencesHeight(), null);
- lg.drawImage(bottomImage, 0, od.getSequencesHeight(),
- od.getWidth(), od.getGraphHeight(), this);
- lg.dispose();
+ try
+ {
+ BufferedImage topImage = lastMiniMe.getSubimage(0, 0,
+ od.getWidth(), od.getSequencesHeight());
+ BufferedImage bottomImage = lastMiniMe.getSubimage(0,
+ od.getSequencesHeight(), od.getWidth(),
+ od.getGraphHeight());
+
+ // must be done at this point as we rely on using old width/height
+ // above, and new width/height below
+ od.setWidth(getWidth());
+ od.setHeight(getHeight());
+
+ // stick the images back together so lastMiniMe is consistent in the
+ // event of a repaint - BUT probably not thread safe
+ lastMiniMe = new BufferedImage(od.getWidth(), od.getHeight(),
+ BufferedImage.TYPE_INT_RGB);
+ Graphics lg = lastMiniMe.getGraphics();
+ lg.drawImage(topImage, 0, 0, od.getWidth(),
+ od.getSequencesHeight(), null);
+ lg.drawImage(bottomImage, 0, od.getSequencesHeight(),
+ od.getWidth(), od.getGraphHeight(), this);
+ lg.dispose();
+ } catch (RasterFormatException e)
+ {
+ Console.debug(
+ "Scaling miscalculation resizing Overview window");
+ od.setWidth(getWidth());
+ od.setHeight(getHeight());
+ }
}
else
{
*/
package jalview.viewmodel;
+import java.awt.Graphics;
+
import jalview.api.AlignmentColsCollectionI;
import jalview.api.AlignmentRowsCollectionI;
import jalview.datamodel.AlignmentI;
import jalview.datamodel.HiddenColumns;
import jalview.datamodel.HiddenSequences;
-import java.awt.Graphics;
-
public abstract class OverviewDimensions
{
protected static final int MAX_WIDTH = 400;
public void setWidth(int w)
{
- width = w;
+ width = w < 1 ? 1 : w;
widthRatio = (float) alwidth / width;
}
public void setHeight(int h)
{
- sequencesHeight = h - graphHeight;
+ sequencesHeight = (h < 1 ? 1 : h) - graphHeight;
heightRatio = (float) alheight / sequencesHeight;
}