X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FOverviewCanvas.java;fp=src%2Fjalview%2Fappletgui%2FOverviewCanvas.java;h=07f591971754be002438eb8392145dba1f51bdec;hb=4f77328104498504339216829abf5ea87e2791ec;hp=7f4e9622df0cf4b1bf5324e69e12d03b6d0a0e93;hpb=2b8c0785318a3528e1876e8e2dd48b7d831eae69;p=jalview.git diff --git a/src/jalview/appletgui/OverviewCanvas.java b/src/jalview/appletgui/OverviewCanvas.java index 7f4e962..07f5919 100644 --- a/src/jalview/appletgui/OverviewCanvas.java +++ b/src/jalview/appletgui/OverviewCanvas.java @@ -30,9 +30,7 @@ import java.awt.Dimension; 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 @@ -51,23 +49,13 @@ public class OverviewCanvas extends Component 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; @@ -113,23 +101,46 @@ public class OverviewCanvas extends Component } 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 @@ -141,14 +152,13 @@ public class OverviewCanvas extends Component @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(); } } @@ -160,25 +170,4 @@ public class OverviewCanvas extends Component 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(); - } - } - }