JAL-3383 JAL-3253-applet additional efficiencies; FeatureStore
[jalview.git] / src / jalview / renderer / OverviewRenderer.java
index 6defca7..36b5847 100644 (file)
@@ -30,7 +30,6 @@ import jalview.datamodel.Annotation;
 import jalview.datamodel.SequenceGroup;
 import jalview.datamodel.SequenceI;
 import jalview.renderer.seqfeatures.FeatureColourFinder;
-import jalview.renderer.seqfeatures.FeatureRenderer;
 import jalview.util.Platform;
 import jalview.viewmodel.OverviewDimensions;
 
@@ -97,21 +96,32 @@ public class OverviewRenderer
 
   private AlignmentViewPanel panel;
 
-  private int sequencesHeight;
+  // private int sequencesHeight;
 
-  public OverviewRenderer(AlignmentViewPanel panel, FeatureRenderer fr,
-          OverviewDimensions od,
-          AlignmentI alignment,
-          ResidueShaderI resshader, OverviewResColourFinder colFinder)
+  public OverviewRenderer(AlignmentViewPanel panel,
+          jalview.api.FeatureRenderer fr, OverviewDimensions od,
+          AlignmentI alignment, ResidueShaderI resshader,
+          OverviewResColourFinder colFinder)
   {
     this(panel, fr, od, alignment, resshader, colFinder, true);
   }
 
+  /**
+   * @param panel
+   * @param fr
+   * @param od
+   * @param alignment
+   * @param resshader
+   * @param colFinder
+   * @param shwoProgress
+   *          possibly not, in JavaScript and for testng
+   */
   public OverviewRenderer(AlignmentViewPanel panel,
           jalview.api.FeatureRenderer fr, OverviewDimensions od,
           AlignmentI alignment, ResidueShaderI resshader,
           OverviewResColourFinder colFinder, boolean showProgress)
   {
+    {
     this.panel = panel;
     finder = new FeatureColourFinder(fr);
     al = alignment;
@@ -129,7 +139,7 @@ public class OverviewRenderer
     pixelsPerSeq = od.getPixelsPerSeq();
     pixelsPerCol = od.getPixelsPerCol();
     colsPerPixel = Math.max(1, 1f / pixelsPerCol);
-
+    }
   }
 
   final static int STATE_INIT = 0;
@@ -194,8 +204,10 @@ public class OverviewRenderer
         nextRow();
         if (!loop())
         {
+          // Java
           continue;
         }
+        // JavaScript
         return;
       case STATE_DONE:
         break out;
@@ -222,15 +234,14 @@ public class OverviewRenderer
     miniMe = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
     WritableRaster raster = miniMe.getRaster();
     DataBufferInt db = (DataBufferInt) raster.getDataBuffer();
-    Platform.timeCheck(null, Platform.TIME_MARK);
     pixels = db.getBankData()[0];
     bscol = cols.getOverviewBitSet();
+    Platform.timeCheck(null, Platform.TIME_MARK);
   }
 
   private void nextRow()
   {
     row = rowIterator.next();
-    // System.out.println("OR row " + r);
     // get details of this alignment row
     SequenceI seq = rows.getSequence(row);
 
@@ -326,6 +337,16 @@ public class OverviewRenderer
             w);
   }
 
+  private ActionListener listener = new ActionListener()
+  {
+    @Override
+    public void actionPerformed(ActionEvent e)
+    {
+      mainLoop();
+    }
+
+  };
+
   private boolean loop()
   {
     if (delay <= 0)
@@ -334,15 +355,7 @@ public class OverviewRenderer
     }
     if (timer == null)
     {
-      timer = new Timer(delay, new ActionListener()
-      {
-        @Override
-        public void actionPerformed(ActionEvent e)
-        {
-          mainLoop();
-        }
-
-      });
+      timer = new Timer(delay, listener);
       timer.setRepeats(false);
       timer.start();
     }
@@ -355,10 +368,13 @@ public class OverviewRenderer
 
   private void done()
   {
-    Platform.timeCheck(
-            "overviewrender " + ndone + " pixels row:" + row + " redraw:"
-                    + redraw,
-            Platform.TIME_MARK);
+    if (!redraw)
+    {
+      Platform.timeCheck(
+              "overviewrender " + ndone + " pixels row:" + row + " redraw:"
+                      + redraw,
+              Platform.TIME_MARK);
+    }
 
     overlayHiddenRegions();
     if (showProgress)