IgnoreGapsConsensus
[jalview.git] / src / jalview / gui / AlignViewport.java
index 05927b6..e98fb9f 100755 (executable)
@@ -85,6 +85,8 @@ public class AlignViewport
     // JBPNote Prolly only need this in the applet version.\r
     private java.beans.PropertyChangeSupport changeSupport = new java.beans.PropertyChangeSupport(this);\r
 \r
+    boolean ignoreGapsInConsensusCalculation = false;\r
+\r
     /**\r
      * Creates a new AlignViewport object.\r
      *\r
@@ -147,6 +149,7 @@ public class AlignViewport
             if (globalColourScheme instanceof UserColourScheme)\r
             {\r
                 globalColourScheme = UserDefinedColours.loadDefaultColours();\r
+                ((UserColourScheme)globalColourScheme).setThreshold(0, getIgnoreGapsConsensus());\r
             }\r
 \r
             if (globalColourScheme != null)\r
@@ -304,18 +307,19 @@ public class AlignViewport
         {\r
             hash = (Hashtable) vconsensus.elementAt(i);\r
 \r
-            float value = Float.parseFloat(hash.get("maxCount").toString());\r
-            value /= Float.parseFloat(hash.get("size").toString());\r
-\r
-            value *= 100;\r
+            float value = 0;\r
+            if(ignoreGapsInConsensusCalculation)\r
+              value = ((Float)hash.get("pid_nogaps")).floatValue();\r
+            else\r
+              value = ((Float)hash.get("pid_gaps")).floatValue();\r
 \r
-            String maxRes = hash.get("maxResidue") + " ";\r
-            String mouseOver = hash.get("maxResidue") + " ";\r
+            String maxRes = hash.get("maxResidue").toString();\r
+            String mouseOver = hash.get("maxResidue")+" ";\r
 \r
-            if (maxRes.length() > 2)\r
+            if (maxRes.length() > 1)\r
             {\r
                 mouseOver = "[" + maxRes + "] ";\r
-                maxRes = "+ ";\r
+                maxRes = "+";\r
             }\r
 \r
             mouseOver += ((int) value + "%");\r
@@ -336,6 +340,9 @@ public class AlignViewport
         {\r
             consensus.annotations = annotations;\r
         }\r
+\r
+        if(globalColourScheme!=null)\r
+          globalColourScheme.setConsensus(vconsensus);\r
     }\r
 \r
     /**\r
@@ -1027,4 +1034,23 @@ public class AlignViewport
     {\r
         changeSupport.firePropertyChange(prop, oldvalue, newvalue);\r
     }\r
+\r
+    public void setIgnoreGapsConsensus(boolean b)\r
+    {\r
+      ignoreGapsInConsensusCalculation = b;\r
+      updateConsensus();\r
+      if(globalColourScheme!=null && globalColourScheme instanceof ResidueColourScheme)\r
+      {\r
+        ((ResidueColourScheme) globalColourScheme).setThreshold(\r
+            ((ResidueColourScheme) globalColourScheme).getThreshold(), ignoreGapsInConsensusCalculation);\r
+\r
+\r
+      }\r
+\r
+    }\r
+\r
+    public boolean getIgnoreGapsConsensus()\r
+    {\r
+     return ignoreGapsInConsensusCalculation;\r
+    }\r
 }\r