Sort by added to preferences
[jalview.git] / src / jalview / gui / AlignFrame.java
index 541c9e1..ada2421 100755 (executable)
@@ -263,7 +263,8 @@ public class AlignFrame
       {\r
         java.io.PrintWriter out = new java.io.PrintWriter(\r
             new java.io.FileWriter(file));\r
-        out.println(output);\r
+\r
+        out.print(output);\r
         out.close();\r
         return true;\r
       }\r
@@ -409,6 +410,7 @@ public class AlignFrame
     redoList.push(new HistoryItem(hi.getDescription(), viewport.alignment,\r
                                   HistoryItem.HIDE));\r
     restoreHistoryItem(hi);\r
+    resetAllColourSchemes();\r
   }\r
 \r
   /**\r
@@ -422,7 +424,7 @@ public class AlignFrame
     restoreHistoryItem(hi);\r
     updateEditMenuBar();\r
     viewport.updateConsensus();\r
-    alignPanel.repaint();\r
+    resetAllColourSchemes();\r
     alignPanel.repaint();\r
   }\r
 \r
@@ -705,6 +707,7 @@ public class AlignFrame
         viewport.alignment.getWidth();\r
         viewport.updateConservation();\r
         viewport.updateConsensus();\r
+        resetAllColourSchemes();\r
         alignPanel.repaint();\r
       }\r
     }\r
@@ -798,6 +801,7 @@ public class AlignFrame
 \r
     viewport.updateConservation();\r
     viewport.updateConsensus();\r
+    resetAllColourSchemes();\r
     alignPanel.repaint();\r
   }\r
 \r
@@ -907,6 +911,7 @@ public class AlignFrame
         }\r
       }\r
 \r
+      resetAllColourSchemes();\r
       alignPanel.repaint();\r
     }\r
   }\r
@@ -945,6 +950,7 @@ public class AlignFrame
         }\r
       }\r
 \r
+      resetAllColourSchemes();\r
       alignPanel.repaint();\r
     }\r
   }\r
@@ -959,7 +965,16 @@ public class AlignFrame
     addHistoryItem(new HistoryItem("Remove Gapped Columns",\r
                                    viewport.alignment, HistoryItem.HIDE));\r
 \r
+    //This is to maintain viewport position on first residue\r
+    //of first sequence\r
+    SequenceI seq = viewport.alignment.getSequenceAt(0);\r
+    int startRes = seq.findPosition(viewport.startRes);\r
+\r
     viewport.getAlignment().removeGaps();\r
+\r
+    viewport.setStartRes(seq.findIndex(startRes)-1);\r
+\r
+    resetAllColourSchemes();\r
     viewport.updateConservation();\r
     viewport.updateConsensus();\r
     alignPanel.repaint();\r
@@ -975,6 +990,12 @@ public class AlignFrame
     addHistoryItem(new HistoryItem("Remove Gaps", viewport.alignment,\r
                                    HistoryItem.HIDE));\r
 \r
+    //This is to maintain viewport position on first residue\r
+    //of first sequence\r
+    SequenceI seq = viewport.alignment.getSequenceAt(0);\r
+    int startRes = seq.findPosition(viewport.startRes);\r
+\r
+\r
     SequenceI current;\r
     int jSize;\r
 \r
@@ -1016,11 +1037,58 @@ public class AlignFrame
       while (j < end && j < jSize);\r
     }\r
 \r
+    viewport.setStartRes(seq.findIndex(startRes)-1);\r
+\r
+\r
     viewport.updateConservation();\r
     viewport.updateConsensus();\r
+    resetAllColourSchemes();\r
     alignPanel.repaint();\r
   }\r
 \r
+\r
+  void resetAllColourSchemes()\r
+  {\r
+    ColourSchemeI cs = viewport.globalColourScheme;\r
+    if(cs!=null)\r
+    {\r
+        cs.setConsensus(viewport.vconsensus);\r
+        if(cs.conservationApplied())\r
+        {\r
+          Alignment al = (Alignment) viewport.alignment;\r
+          Conservation c = new Conservation("All",\r
+                                            ResidueProperties.propHash, 3,\r
+                                            al.getSequences(), 0,\r
+                                            al.getWidth() - 1);\r
+          c.calculate();\r
+          c.verdict(false, viewport.ConsPercGaps);\r
+\r
+          cs.setConservation(c);\r
+        }\r
+    }\r
+\r
+    if(viewport.getGlobalColourScheme()!=null\r
+       && viewport.getGlobalColourScheme() instanceof ClustalxColourScheme)\r
+    {\r
+      ((ClustalxColourScheme)viewport.getGlobalColourScheme()).\r
+          resetClustalX(viewport.alignment.getSequences(),\r
+                        viewport.alignment.getWidth());\r
+    }\r
+\r
+    int s, sSize = viewport.alignment.getGroups().size();\r
+    for(s=0; s<sSize; s++)\r
+    {\r
+      SequenceGroup sg = (SequenceGroup)viewport.alignment.getGroups().elementAt(s);\r
+      if(sg.cs!=null && sg.cs instanceof ClustalxColourScheme)\r
+      {\r
+        ((ClustalxColourScheme)sg.cs).resetClustalX(sg.sequences, sg.getWidth());\r
+      }\r
+\r
+      sg.recalcConservation();\r
+\r
+    }\r
+  }\r
+\r
   /**\r
    * DOCUMENT ME!\r
    *\r