JAL-3210 Barebones gradle/buildship/eclipse. See README
[jalview.git] / src / jalview / appletgui / OverviewCanvas.java
index 7f4e962..07f5919 100644 (file)
@@ -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();
-    }
-  }
-
 }