import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
-import java.awt.image.BufferedImage;
-@SuppressWarnings("serial")
public class OverviewCanvas extends Component
{
// This is set true if the alignment view changes whilst
private AlignViewport av;
- private boolean showSequenceFeatures;
-
- private boolean showAnnotation;
-
- private jalview.api.FeatureRenderer featureRenderer;
-
private jalview.renderer.seqfeatures.FeatureRenderer fr;
private Frame nullFrame;
- private OverviewPanel panel;
-
- public OverviewCanvas(OverviewPanel panel,
- OverviewDimensions overviewDims,
+ public OverviewCanvas(OverviewDimensions overviewDims,
AlignViewport alignvp)
{
- this.panel = panel;
od = overviewDims;
av = alignvp;
}
public void draw(boolean showSequenceFeatures, boolean showAnnotation,
- jalview.api.FeatureRenderer featureRenderer)
+ FeatureRenderer transferRenderer)
{
- this.showSequenceFeatures = showSequenceFeatures;
- this.showAnnotation = showAnnotation;
- this.featureRenderer = featureRenderer;
+ miniMe = null;
if (showSequenceFeatures)
{
- fr.transferSettings(featureRenderer);
+ fr.transferSettings(transferRenderer);
}
setPreferredSize(new Dimension(od.getWidth(), od.getHeight()));
- or = new OverviewRenderer(panel.ap, fr, od, av.getAlignment(),
+ or = new OverviewRenderer(fr, od, av.getAlignment(),
av.getResidueShading(), new OverviewResColourFinder());
+ miniMe = nullFrame.createImage(od.getWidth(), od.getHeight());
offscreen = nullFrame.createImage(od.getWidth(), od.getHeight());
- or.drawMiniMe();
+
+ miniMe = or.draw(od.getRows(av.getAlignment()),
+ od.getColumns(av.getAlignment()));
+
+ Graphics mg = miniMe.getGraphics();
+
+ // checks for conservation annotation to make sure overview works for DNA
+ // too
+ if (showAnnotation)
+ {
+ mg.translate(0, od.getSequencesHeight());
+ or.drawGraph(mg, av.getAlignmentConservationAnnotation(),
+ od.getGraphHeight(), od.getColumns(av.getAlignment()));
+ mg.translate(0, -od.getSequencesHeight());
+ }
+
+ if (restart)
+ {
+ restart = false;
+ draw(showSequenceFeatures, showAnnotation, transferRenderer);
+ }
+ else
+ {
+ updaterunning = false;
+ }
}
@Override
@Override
public void paint(Graphics g)
{
+ Graphics og = offscreen.getGraphics();
if (miniMe != null)
{
- Graphics og = offscreen.getGraphics();
og.drawImage(miniMe, 0, 0, this);
og.setColor(Color.red);
od.drawBox(og);
g.drawImage(offscreen, 0, 0, this);
- og.dispose();
}
}
od = null;
}
- public void finalizeDraw(BufferedImage miniMe)
- {
- if (restart)
- {
- restart = false;
- draw(showSequenceFeatures, showAnnotation, featureRenderer);
- }
- else
- {
- this.miniMe = miniMe;
- // checks for conservation annotation to make sure overview works for DNA
- // too
- if (showAnnotation)
- {
- or.drawGraph(av.getAlignmentConservationAnnotation());
- }
- updaterunning = false;
- repaint();
- }
- }
-
}