JAL-3401 JAL-3253-applet
[jalview.git] / src / jalview / gui / AlignmentPanel.java
index f723794..b636fa7 100644 (file)
@@ -56,6 +56,7 @@ import java.awt.event.AdjustmentEvent;
 import java.awt.event.AdjustmentListener;
 import java.awt.event.ComponentAdapter;
 import java.awt.event.ComponentEvent;
+import java.awt.image.BufferedImage;
 import java.awt.print.PageFormat;
 import java.awt.print.Printable;
 import java.awt.print.PrinterException;
@@ -69,7 +70,14 @@ import java.util.List;
 import javax.swing.SwingUtilities;
 
 /**
- * DOCUMENT ME!
+ * The main panel of an AlignFrame, containing holders for the IdPanel,
+ * SeqPanel, AnnotationLabels (a JPanel), and AnnotationPanel.
+ * 
+ * Additional holders contain an IdPanelWidthAdjuster space above the idPanel,
+ * AnnotationScroller (JScrollPane for AnnotationPanel), and vertical and
+ * horizontal scrollbars.
+ * 
+ * 
  * 
  * @author $author$
  * @version $Revision: 1.161 $
@@ -136,7 +144,11 @@ public class AlignmentPanel extends GAlignmentPanel implements
 
     annotationScroller.setViewportView(getAnnotationPanel());
     annotationSpaceFillerHolder.add(getAlabels(), BorderLayout.CENTER);
-
+    if (!av.isShowAnnotation())
+    {
+      annotationScroller.setVisible(false);
+      annotationSpaceFillerHolder.setVisible(false);
+    }
     scalePanelHolder.add(getScalePanel(), BorderLayout.CENTER);
     seqPanelHolder.add(getSeqPanel(), BorderLayout.CENTER);
 
@@ -580,7 +592,7 @@ public class AlignmentPanel extends GAlignmentPanel implements
    */
   public void updateLayout()
   {
-    fontChanged();
+    fontChanged(); // fires repaint
     setAnnotationVisible(av.isShowAnnotation());
     boolean wrap = av.getWrapAlignment();
     ViewportRanges ranges = av.getRanges();
@@ -833,6 +845,7 @@ public class AlignmentPanel extends GAlignmentPanel implements
 
       if (overviewPanel != null)
       {
+        getAlignment().resetColors();
         overviewPanel.updateOverviewImage();
       }
     }
@@ -847,6 +860,7 @@ public class AlignmentPanel extends GAlignmentPanel implements
   @Override
   public void paintComponent(Graphics g)
   {
+
     invalidate(); // needed so that the id width adjuster works correctly
 
     Dimension d = getIdPanel().getIdCanvas().getPreferredSize();
@@ -1835,4 +1849,43 @@ public class AlignmentPanel extends GAlignmentPanel implements
     return true;
   }
 
+  @Override
+  public void overviewDone(BufferedImage miniMe)
+  {
+    overviewPanel.canvas.finalizeDraw(miniMe);
+  }
+
+
+  private boolean holdRepaint = false;
+
+  public boolean getHoldRepaint()
+  {
+    return holdRepaint;
+  }
+
+  public void setHoldRepaint(boolean b)
+  {
+    if (holdRepaint == b)
+    {
+      return;
+    }
+    holdRepaint = b;
+    if (!b)
+    {
+      repaint();
+    }
+  }
+
+  @Override
+  public void repaint()
+  {
+    if (holdRepaint)
+    {
+      // System.out.println("AP repaint holding");
+      // Platform.stackTrace();
+      return;
+    }
+    super.repaint();
+  }
+
 }