patch to fix occasional arrayoutofbounds exception when working with hidden columns...
[jalview.git] / src / jalview / schemes / NucleotideColourScheme.java
1 /*
2  * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
3  * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
4  * 
5  * This program is free software; you can redistribute it and/or
6  * modify it under the terms of the GNU General Public License
7  * as published by the Free Software Foundation; either version 2
8  * of the License, or (at your option) any later version.
9  * 
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13  * GNU General Public License for more details.
14  * 
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
18  */
19 package jalview.schemes;
20
21 import java.awt.*;
22
23 /**
24  * DOCUMENT ME!
25  * 
26  * @author $author$
27  * @version $Revision$
28  */
29 public class NucleotideColourScheme extends ResidueColourScheme
30 {
31   /**
32    * Creates a new NucleotideColourScheme object.
33    */
34   public NucleotideColourScheme()
35   {
36     super(ResidueProperties.nucleotide, 0);
37   }
38
39   /**
40    * DOCUMENT ME!
41    * 
42    * @param n
43    *                DOCUMENT ME!
44    * 
45    * @return DOCUMENT ME!
46    */
47   public Color findColour(char c)
48   {
49     // System.out.println("called"); log.debug
50     return colors[ResidueProperties.nucleotideIndex[c]];
51   }
52
53   /**
54    * DOCUMENT ME!
55    * 
56    * @param n
57    *                DOCUMENT ME!
58    * @param j
59    *                DOCUMENT ME!
60    * 
61    * @return DOCUMENT ME!
62    */
63   public Color findColour(char c, int j)
64   {
65     Color currentColour;
66     if ((threshold == 0) || aboveThreshold(c, j))
67     {
68       try
69       {
70         currentColour = colors[ResidueProperties.nucleotideIndex[c]];
71       } catch (Exception ex)
72       {
73         return Color.white;
74       }
75     }
76     else
77     {
78       return Color.white;
79     }
80
81     if (conservationColouring)
82     {
83       currentColour = applyConservation(currentColour, j);
84     }
85
86     return currentColour;
87   }
88 }