Reset all colour schemes after gaps removed
authoramwaterhouse <Andrew Waterhouse>
Mon, 29 Aug 2005 17:23:19 +0000 (17:23 +0000)
committeramwaterhouse <Andrew Waterhouse>
Mon, 29 Aug 2005 17:23:19 +0000 (17:23 +0000)
src/jalview/appletgui/AlignFrame.java
src/jalview/gui/AlignFrame.java

index dc8f72b..38aea52 100755 (executable)
@@ -172,6 +172,7 @@ public class AlignFrame
     redoList.push(new HistoryItem(hi.getDescription(), viewport.alignment,\r
                                   HistoryItem.HIDE));\r
     restoreHistoryItem(hi);\r
+    resetAllColourSchemes();\r
   }\r
 \r
   protected void redoMenuItem_actionPerformed(ActionEvent e)\r
@@ -180,6 +181,7 @@ public class AlignFrame
     restoreHistoryItem(hi);\r
     updateEditMenuBar();\r
     viewport.updateConsensus();\r
+    resetAllColourSchemes();\r
     alignPanel.repaint();\r
     alignPanel.repaint();\r
   }\r
@@ -608,7 +610,7 @@ public class AlignFrame
 \r
     viewport.updateConservation();\r
     viewport.updateConsensus();\r
-    resetAllClustalSchemes();\r
+    resetAllColourSchemes();\r
     alignPanel.repaint();\r
   }\r
 \r
@@ -660,14 +662,32 @@ public class AlignFrame
     }\r
 \r
     viewport.setStartRes(seq.findIndex(startRes)-1);\r
-    resetAllClustalSchemes();\r
     viewport.updateConservation();\r
     viewport.updateConsensus();\r
+    resetAllColourSchemes();\r
     alignPanel.repaint();\r
   }\r
 \r
-  void resetAllClustalSchemes()\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
@@ -680,10 +700,13 @@ public class AlignFrame
     for(s=0; s<sSize; s++)\r
     {\r
       SequenceGroup sg = (SequenceGroup)viewport.alignment.getGroups().elementAt(s);\r
-      if(sg.cs instanceof ClustalxColourScheme)\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
index bdca06c..efe8e63 100755 (executable)
@@ -410,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
@@ -423,7 +424,7 @@ public class AlignFrame
     restoreHistoryItem(hi);\r
     updateEditMenuBar();\r
     viewport.updateConsensus();\r
-    alignPanel.repaint();\r
+    resetAllColourSchemes();\r
     alignPanel.repaint();\r
   }\r
 \r
@@ -969,7 +970,7 @@ public class AlignFrame
 \r
     viewport.setStartRes(seq.findIndex(startRes)-1);\r
 \r
-    resetAllClustalSchemes();\r
+    resetAllColourSchemes();\r
     viewport.updateConservation();\r
     viewport.updateConsensus();\r
     alignPanel.repaint();\r
@@ -1034,15 +1035,34 @@ public class AlignFrame
 \r
     viewport.setStartRes(seq.findIndex(startRes)-1);\r
 \r
-    resetAllClustalSchemes();\r
 \r
     viewport.updateConservation();\r
     viewport.updateConsensus();\r
+    resetAllColourSchemes();\r
     alignPanel.repaint();\r
   }\r
 \r
-  void resetAllClustalSchemes()\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
@@ -1055,10 +1075,13 @@ public class AlignFrame
     for(s=0; s<sSize; s++)\r
     {\r
       SequenceGroup sg = (SequenceGroup)viewport.alignment.getGroups().elementAt(s);\r
-      if(sg.cs instanceof ClustalxColourScheme)\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