Restrict annotation panel to 50% window on load
authoramwaterhouse <Andrew Waterhouse>
Wed, 17 May 2006 16:24:32 +0000 (16:24 +0000)
committeramwaterhouse <Andrew Waterhouse>
Wed, 17 May 2006 16:24:32 +0000 (16:24 +0000)
src/jalview/gui/AlignFrame.java
src/jalview/gui/AlignmentPanel.java
src/jalview/gui/Jalview2XML.java

index 359b675..9751f46 100755 (executable)
@@ -2807,19 +2807,10 @@ public void drop(DropTargetDropEvent evt)
           this.paste(false);\r
         }\r
       }\r
-\r
-      if (isAnnotation)\r
+      else\r
       {\r
-        int height = alignPanel.annotationPanel.adjustPanelHeight();\r
-        alignPanel.annotationScroller.setPreferredSize(\r
-            new Dimension(alignPanel.annotationScroller.getWidth(),\r
-                          height));\r
-\r
-        alignPanel.annotationSpaceFillerHolder.setPreferredSize(new Dimension(\r
-            alignPanel.annotationSpaceFillerHolder.getWidth(),\r
-            height));\r
-\r
-        alignPanel.addNotify();\r
+        // (isAnnotation)\r
+        alignPanel.adjustAnnotationHeight();\r
       }\r
 \r
     }catch(Exception ex)\r
index 6d4e226..2840283 100755 (executable)
@@ -92,11 +92,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
@@ -418,6 +415,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
index f34a764..8ac5e8c 100755 (executable)
@@ -934,22 +934,27 @@ public class Jalview2XML
         Viewport view = views[0]; // DEAL WITH MULTIPLE VIEWPORTS LATER\r
 \r
         AlignFrame af = new AlignFrame(al);\r
-        int hSize = al.getAlignmentAnnotation().length;\r
-        for (int h = 0; h < hSize; h++)\r
+        if(hideConsensus || hideQuality || hideConservation)\r
         {\r
-          if (\r
-              (hideConsensus &&\r
-               al.getAlignmentAnnotation()[h].label.equals("Consensus"))\r
-              ||\r
-              (hideQuality && al.getAlignmentAnnotation()[h].label.equals("Quality"))\r
-              ||\r
-              (hideConservation &&\r
-               al.getAlignmentAnnotation()[h].label.equals("Conservation")))\r
+          int hSize = al.getAlignmentAnnotation().length;\r
+          for (int h = 0; h < hSize; h++)\r
           {\r
-            al.deleteAnnotation(al.getAlignmentAnnotation()[h]);\r
-            hSize --;\r
-            h--;\r
+            if (\r
+                (hideConsensus &&\r
+                 al.getAlignmentAnnotation()[h].label.equals("Consensus"))\r
+                ||\r
+                (hideQuality &&\r
+                 al.getAlignmentAnnotation()[h].label.equals("Quality"))\r
+                ||\r
+                (hideConservation &&\r
+                 al.getAlignmentAnnotation()[h].label.equals("Conservation")))\r
+            {\r
+              al.deleteAnnotation(al.getAlignmentAnnotation()[h]);\r
+              hSize--;\r
+              h--;\r
+            }\r
           }\r
+          af.alignPanel.adjustAnnotationHeight();\r
         }\r
 \r
         af.setBounds(view.getXpos(), view.getYpos(), view.getWidth(),\r