updated to jalview 2.1 and begun ArchiveClient/VamsasClient/VamsasStore updates.
[jalview.git] / src / jalview / schemes / ScoreColourScheme.java
index b6dc45b..acf2ae5 100755 (executable)
-/*\r
-* Jalview - A Sequence Alignment Editor and Viewer\r
-* Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
-*\r
-* This program is free software; you can redistribute it and/or\r
-* modify it under the terms of the GNU General Public License\r
-* as published by the Free Software Foundation; either version 2\r
-* of the License, or (at your option) any later version.\r
-*\r
-* This program is distributed in the hope that it will be useful,\r
-* but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
-* GNU General Public License for more details.\r
-*\r
-* You should have received a copy of the GNU General Public License\r
-* along with this program; if not, write to the Free Software\r
-* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA\r
-*/\r
-\r
-package jalview.schemes;\r
-\r
-import java.awt.*;\r
-\r
-public class ScoreColourScheme extends ResidueColourScheme {\r
-  public double min;\r
-  public double max;\r
-  public double[] scores;\r
-\r
-  public ScoreColourScheme( double[] scores,\r
-                          double min,\r
-                          double max) {\r
-\r
-    super();\r
-\r
-    this.scores = scores;\r
-    this.min = min;\r
-    this.max = max;\r
-  }\r
-\r
-\r
-    public Color findColour(String s,int j)\r
-    {\r
-\r
-      if (threshold > 0)\r
-      {\r
-         if (!aboveThreshold(s,j))\r
-             return Color.white;\r
-      }\r
-\r
-       float red = (float)(scores[((Integer)ResidueProperties.aaHash.get(s)).intValue()]\r
-                           - (float)min)/(float)(max - min);\r
-       if (red > 1.0f)\r
-           red = 1.0f;\r
-\r
-       if (red < 0.0f)\r
-           red = 0.0f;\r
-\r
-    char c = s.charAt(0);\r
-\r
-    if(jalview.util.Comparison.isGap((c)))\r
-        return Color.white;\r
-\r
-       // This isn';t great - pool of colours in here?\r
-       return makeColour(red);\r
-    }\r
-    public Color makeColour(float c) {\r
-       return new Color(c,(float)0.0,(float)1.0-c);\r
-    }\r
-}\r
-\r
+/*
+* Jalview - A Sequence Alignment Editor and Viewer
+* Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
+*
+* This program is free software; you can redistribute it and/or
+* modify it under the terms of the GNU General Public License
+* as published by the Free Software Foundation; either version 2
+* of the License, or (at your option) any later version.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with this program; if not, write to the Free Software
+* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+*/
+package jalview.schemes;
+
+import java.awt.*;
+
+
+/**
+ * DOCUMENT ME!
+ *
+ * @author $author$
+ * @version $Revision$
+ */
+public class ScoreColourScheme extends ResidueColourScheme
+{
+    /** DOCUMENT ME!! */
+    public double min;
+
+    /** DOCUMENT ME!! */
+    public double max;
+
+    /** DOCUMENT ME!! */
+    public double[] scores;
+
+    /**
+     * Creates a new ScoreColourScheme object.
+     *
+     * @param scores DOCUMENT ME!
+     * @param min DOCUMENT ME!
+     * @param max DOCUMENT ME!
+     */
+    public ScoreColourScheme(double[] scores, double min, double max)
+    {
+        super();
+
+        this.scores = scores;
+        this.min = min;
+        this.max = max;
+
+        // Make colours in constructor
+        // Why wasn't this done earlier?
+        int i, iSize=scores.length;
+        colors = new Color[scores.length];
+        for (i = 0; i < iSize; i++)
+        {
+          float red = (float) (scores[i] - (float) min) / (float) (max - min);
+
+          if (red > 1.0f)
+          {
+            red = 1.0f;
+          }
+
+          if (red < 0.0f)
+          {
+            red = 0.0f;
+          }
+          colors[i] = makeColour(red);
+        }
+    }
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @param s DOCUMENT ME!
+     * @param j DOCUMENT ME!
+     *
+     * @return DOCUMENT ME!
+     */
+    public Color findColour(String s, int j)
+    {
+        if (threshold > 0)
+        {
+            if (!aboveThreshold(s, j))
+            {
+                return Color.white;
+            }
+        }
+
+        char c = s.charAt(0);
+
+        if (jalview.util.Comparison.isGap((c)))
+        {
+            return Color.white;
+        }
+
+        currentColour = colors[((Integer) ResidueProperties.aaHash.get(s)).intValue()];
+
+        if(conservationColouring)
+         applyConservation(j);
+
+        return currentColour;
+    }
+
+    /**
+     * DOCUMENT ME!
+     *
+     * @param c DOCUMENT ME!
+     *
+     * @return DOCUMENT ME!
+     */
+    public Color makeColour(float c)
+    {
+        return new Color(c, (float) 0.0, (float) 1.0 - c);
+    }
+}