Wrap alignment with annotations
[jalview.git] / src / jalview / appletgui / AlignmentPanel.java
index b46876a..7332a1a 100755 (executable)
@@ -22,10 +22,8 @@ package jalview.appletgui;
 import java.awt.*;\r
 import java.awt.event.*;\r
 \r
-import jalview.analysis.*;\r
 import jalview.datamodel.*;\r
 import jalview.jbappletgui.*;\r
-import jalview.schemes.*;\r
 \r
 public class AlignmentPanel\r
     extends GAlignmentPanel implements AdjustmentListener\r
@@ -44,8 +42,13 @@ public class AlignmentPanel
   // this value is set false when selection area being dragged\r
   boolean fastPaint = true;\r
 \r
+  boolean MAC = false;\r
+\r
   public AlignmentPanel(AlignFrame af, final AlignViewport av)\r
   {\r
+    if(System.getProperty("os.name").startsWith("Mac"))\r
+      MAC = true;\r
+\r
     alignFrame = af;\r
     this.av = av;\r
     seqPanel = new SeqPanel(av, this);\r
@@ -167,6 +170,9 @@ public class AlignmentPanel
     hscrollFillerPanel.setSize(d);\r
 \r
     alignFrame.pack();\r
+\r
+    if(overviewPanel!=null)\r
+          overviewPanel.updateOverviewImage();\r
   }\r
 \r
   public void setIdWidth(int w, int h)\r
@@ -266,21 +272,33 @@ public class AlignmentPanel
 \r
   public void setAnnotationVisible(boolean b)\r
   {\r
-    annotationSpaceFillerHolder.setVisible(b);\r
-    annotationScroller.setVisible(b);\r
+    if (!av.wrapAlignment)\r
+    {\r
+      annotationSpaceFillerHolder.setVisible(b);\r
+      annotationScroller.setVisible(b);\r
+    }\r
     validate();\r
     repaint();\r
   }\r
 \r
   public void setWrapAlignment(boolean wrap)\r
   {\r
+    av.startSeq = 0;\r
     scalePanelHolder.setVisible(!wrap);\r
     hscroll.setVisible(!wrap);\r
     idwidthAdjuster.setVisible(!wrap);\r
 \r
-    av.setShowAnnotation(!wrap);\r
-    annotationScroller.setVisible(!wrap);\r
-    annotationSpaceFillerHolder.setVisible(!wrap);\r
+    if (wrap)\r
+    {\r
+      annotationScroller.setVisible(false);\r
+      annotationSpaceFillerHolder.setVisible(false);\r
+    }\r
+    else if (av.showAnnotation)\r
+    {\r
+      annotationScroller.setVisible(true);\r
+      annotationSpaceFillerHolder.setVisible(true);\r
+    }\r
+\r
     idSpaceFillerPanel1.setVisible(!wrap);\r
 \r
     validate();\r
@@ -429,7 +447,7 @@ public class AlignmentPanel
       overviewPanel.setBoxPosition();\r
     }\r
 \r
-    if (av.getWrapAlignment() || !fastPaint)\r
+    if (av.getWrapAlignment() || !fastPaint || MAC)\r
     {\r
       repaint();\r
     }\r
@@ -459,13 +477,8 @@ public class AlignmentPanel
     idPanel.idCanvas.setSize(d.width, seqPanel.seqCanvas.getSize().height);\r
     annotationSpaceFillerHolder.setSize(d.width,\r
                                         annotationPanel.getSize().height);\r
-    alabels.setSize(d.width, annotationPanel.getSize().height);\r
 \r
-    alabels.repaint();\r
-    idPanel.idCanvas.repaint();\r
-    seqPanel.seqCanvas.repaint();\r
-    scalePanel.repaint();\r
-    annotationPanel.repaint();\r
+    alabels.setSize(d.width, annotationPanel.getSize().height);\r
 \r
     if (av.getWrapAlignment())\r
     {\r
@@ -481,5 +494,11 @@ public class AlignmentPanel
       setScrollValues(av.getStartRes(), av.getStartSeq());\r
     }\r
 \r
+    alabels.repaint();\r
+    idPanel.idCanvas.repaint();\r
+    seqPanel.seqCanvas.repaint();\r
+    scalePanel.repaint();\r
+    annotationPanel.repaint();\r
+\r
   }\r
 }\r