Wrap alignment with annotations
[jalview.git] / src / jalview / appletgui / AlignFrame.java
index 289e761..bda314d 100755 (executable)
@@ -35,8 +35,8 @@ public class AlignFrame
 {\r
   final AlignmentPanel alignPanel;\r
   final AlignViewport viewport;\r
-  public static final int NEW_WINDOW_WIDTH = 700;\r
-  public static final int NEW_WINDOW_HEIGHT = 500;\r
+  public static int NEW_WINDOW_WIDTH = 700;\r
+  public static int NEW_WINDOW_HEIGHT = 500;\r
   jalview.bin.JalviewLite applet;\r
 \r
 \r
@@ -83,6 +83,16 @@ public class AlignFrame
         else if (param.equalsIgnoreCase("Pairwise Identity"))\r
           sortPairwiseMenuItem_actionPerformed(null);\r
       }\r
+\r
+      param = applet.getParameter("wrap");\r
+      if (param != null)\r
+      {\r
+        if (param.equalsIgnoreCase("true"))\r
+        {\r
+          wrapMenuItem.setState(true);\r
+          wrapMenuItem_actionPerformed(null);\r
+        }\r
+      }\r
     }\r
 \r
     this.addWindowListener(new WindowAdapter()\r
@@ -121,7 +131,7 @@ public class AlignFrame
     jalview.bin.JalviewLite.addFrame(frame,\r
                                      "Alignment output - " + e.getActionCommand(),\r
                                      600, 500);\r
-    cap.setText(FormatAdapter.formatSequences(e.getActionCommand(),\r
+    cap.setText(new FormatAdapter().formatSequences(e.getActionCommand(),\r
                                               viewport.getAlignment().\r
                                               getSequences()));\r
   }\r
@@ -740,11 +750,7 @@ public class AlignFrame
 \r
   public void font_actionPerformed(ActionEvent e)\r
   {\r
-    Frame frame = new Frame();\r
-    FontChooser fc = new FontChooser(alignPanel, frame);\r
-    frame.add(fc);\r
-    jalview.bin.JalviewLite.addFrame(frame, "Change Font", 440, 100);\r
-\r
+    new FontChooser(alignPanel);\r
   }\r
 \r
   protected void fullSeqId_actionPerformed(ActionEvent e)\r
@@ -808,11 +814,6 @@ public class AlignFrame
 \r
   public void annotationPanelMenuItem_actionPerformed(ActionEvent e)\r
   {\r
-    if (annotationPanelMenuItem.getState() && viewport.getWrapAlignment())\r
-    {\r
-      annotationPanelMenuItem.setState(false);\r
-      return;\r
-    }\r
     viewport.setShowAnnotation(annotationPanelMenuItem.getState());\r
     alignPanel.setAnnotationVisible(annotationPanelMenuItem.getState());\r
   }\r
@@ -1125,6 +1126,24 @@ public class AlignFrame
 \r
   public void PCAMenuItem_actionPerformed(ActionEvent e)\r
   {\r
+    //are the sequences aligned?\r
+    if (!viewport.alignment.isAligned())\r
+    {\r
+      SequenceI current;\r
+      int Width = viewport.getAlignment().getWidth();\r
+\r
+      for (int i = 0; i < viewport.getAlignment().getSequences().size();\r
+           i++)\r
+      {\r
+        current = viewport.getAlignment().getSequenceAt(i);\r
+\r
+        if (current.getLength() < Width)\r
+        {\r
+          current.insertCharAt(Width - 1, viewport.getGapCharacter());\r
+        }\r
+      }\r
+      alignPanel.repaint();\r
+    }\r
 \r
     if ( (viewport.getSelectionGroup() != null &&\r
           viewport.getSelectionGroup().getSize() < 4 &&\r
@@ -1136,11 +1155,7 @@ public class AlignFrame
 \r
     try\r
     {\r
-      PCAPanel pcaPanel = new PCAPanel(viewport, null);\r
-      Frame frame = new Frame();\r
-      frame.add(pcaPanel);\r
-      jalview.bin.JalviewLite.addFrame(frame, "Principal component analysis",\r
-                                       400, 400);\r
+      new PCAPanel(viewport);\r
     }\r
     catch (java.lang.OutOfMemoryError ex)\r
     {\r