Size adjustments for MacOSX
[jalview.git] / src / jalview / gui / AlignmentPanel.java
index 6d4e226..20ed37d 100755 (executable)
@@ -32,6 +32,8 @@ import java.io.*;
 \r
 import javax.swing.*;\r
 \r
+import org.biojava.dasobert.eventmodel.*;\r
+\r
 \r
 /**\r
  * DOCUMENT ME!\r
@@ -40,7 +42,7 @@ import javax.swing.*;
  * @version $Revision$\r
  */\r
 public class AlignmentPanel extends GAlignmentPanel\r
-    implements AdjustmentListener, Printable\r
+    implements AdjustmentListener, Printable, FeatureListener\r
 {\r
   public AlignViewport av;\r
   OverviewPanel overviewPanel;\r
@@ -92,11 +94,8 @@ public class AlignmentPanel extends GAlignmentPanel
 \r
     setScrollValues(0, 0);\r
 \r
-    annotationPanel.adjustPanelHeight();\r
-    annotationSpaceFillerHolder.setPreferredSize(annotationPanel.\r
-                                                 getPreferredSize());\r
-    annotationScroller.setPreferredSize(annotationPanel.\r
-                                        getPreferredSize());\r
+    adjustAnnotationHeight();\r
+\r
     setAnnotationVisible(av.getShowAnnotation());\r
 \r
     hscroll.addAdjustmentListener(this);\r
@@ -246,6 +245,15 @@ public class AlignmentPanel extends GAlignmentPanel
     });\r
   }\r
 \r
+  public void comeBackLater(FeatureEvent evt)\r
+  {}\r
+\r
+  public void newFeatures(FeatureEvent evt)\r
+  {\r
+    seqPanel.seqCanvas.fr.findAllFeatures();\r
+    repaint();\r
+  }\r
+\r
   /**\r
    * DOCUMENT ME!\r
    */\r
@@ -418,6 +426,37 @@ public class AlignmentPanel extends GAlignmentPanel
     repaint();\r
   }\r
 \r
+  public void adjustAnnotationHeight()\r
+  {\r
+    javax.swing.SwingUtilities.invokeLater(new Runnable()\r
+    {\r
+      public void run()\r
+      {\r
+          while(alignFrame.getHeight()==0)\r
+          {\r
+            Thread.yield();\r
+          }\r
+\r
+        int height = annotationPanel.adjustPanelHeight();\r
+\r
+        if (height > alignFrame.getHeight() / 2)\r
+        {\r
+          height = alignFrame.getHeight() / 2;\r
+        }\r
+\r
+        annotationScroller.setPreferredSize(\r
+            new Dimension(annotationScroller.getWidth(),\r
+                          height));\r
+\r
+        annotationSpaceFillerHolder.setPreferredSize(new Dimension(\r
+            annotationSpaceFillerHolder.getWidth(),\r
+            height));\r
+\r
+        annotationPanel.repaint();\r
+      }\r
+    });\r
+  }\r
+\r
   /**\r
    * DOCUMENT ME!\r
    *\r