+/**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @author $author$\r
+ * @version $Revision$\r
+ */\r
+public class ConservationColourScheme extends ResidueColourScheme\r
+{\r
+ /** DOCUMENT ME!! */\r
+ public Conservation conserve;\r
+\r
+ /** DOCUMENT ME!! */\r
+ public ColourSchemeI cs;\r
+\r
+ /** DOCUMENT ME!! */\r
+ public int inc = 30;\r
+\r
+ /**\r
+ * Creates a new ConservationColourScheme object.\r
+ *\r
+ * @param cons DOCUMENT ME!\r
+ * @param oldcs DOCUMENT ME!\r
+ */\r
+ public ConservationColourScheme(Conservation cons, ColourSchemeI oldcs)\r
+ {\r
+ super();\r
+ conserve = cons;\r
+ cs = oldcs;\r
+ }\r
+\r
+ /**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @param consensus DOCUMENT ME!\r
+ */\r
+ public void setConsensus(Vector consensus)\r
+ {\r
+ super.setConsensus(consensus);\r
+\r
+ if (cs != null)\r
+ {\r
+ cs.setConsensus(consensus);\r
+ }\r
+ }\r
+\r
+ /**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @param s DOCUMENT ME!\r
+ * @param i DOCUMENT ME!\r
+ *\r
+ * @return DOCUMENT ME!\r
+ */\r
+ public Color findColour(String s, int i)\r
+ {\r
+ Color c = Color.white;\r
+\r
+ if (cs == null)\r
+ {\r
+ return c;\r
+ }\r
+\r
+ char ch = conserve.getConsSequence().getSequence().charAt(i);\r
+\r
+ if ((ch == '*') || (ch == '+'))\r
+ {\r
+ c = cs.findColour(s, i);\r
+ }\r
+ else\r
+ {\r
+ int tmp = 10;\r
+ int t = 0;\r
+\r
+ if (!jalview.util.Comparison.isGap(ch))\r
+ {\r
+ t = Integer.parseInt(ch + "");\r
+ }\r
+\r
+ c = cs.findColour(s, i);\r
+\r
+ while (tmp >= t)\r
+ {\r
+ c = lighter(c, inc);\r
+ tmp--;\r
+ }\r
+ }\r
+\r
+ return c;\r
+ }\r
+\r
+ /**\r
+ * DOCUMENT ME!\r
+ *\r
+ * @param c DOCUMENT ME!\r
+ * @param inc DOCUMENT ME!\r
+ *\r
+ * @return DOCUMENT ME!\r
+ */\r
+ public Color lighter(Color c, int inc)\r
+ {\r
+ int red = c.getRed();\r
+ int blue = c.getBlue();\r
+ int green = c.getGreen();\r
+\r
+ if (red < (255 - inc))\r
+ {\r
+ red = red + inc;\r
+ }\r
+ else\r
+ {\r
+ red = 255;\r
+ }\r
+\r
+ if (blue < (255 - inc))\r
+ {\r
+ blue = blue + inc;\r
+ }\r
+ else\r
+ {\r
+ blue = 255;\r
+ }\r
+\r
+ if (green < (255 - inc))\r
+ {\r
+ green = green + inc;\r
+ }\r
+ else\r
+ {\r
+ green = 255;\r
+ }\r
+\r
+ return new Color(red, green, blue);\r
+ }\r