package jalview.schemes;
import jalview.analysis.Conservation;
+import jalview.datamodel.AlignmentI;
import jalview.datamodel.AnnotatedCollectionI;
import jalview.datamodel.ProfileI;
import jalview.datamodel.ProfilesI;
*/
public class ResidueColourScheme implements ColourSchemeI
{
+ public static final String NONE = "None";
+
final int[] symbolIndex;
boolean conservationColouring = false;
}
/**
+ * Returns the colour for symbol 'A'. Intended for use in a 'fixed colour'
+ * colour scheme (for example a feature colour).
+ */
+ @Override
+ public Color findColour()
+ {
+ return findColour('A');
+ }
+
+ /**
* Find a colour without an index in a sequence
*/
@Override
new String[] { getClass().getName() }), q);
}
}
+
+ /**
+ * Answers false if the colour scheme is nucleotide or peptide specific, and
+ * the data does not match, else false. Override to modify or extend this test
+ * as required.
+ */
+ @Override
+ public boolean isApplicableTo(AnnotatedCollectionI ac)
+ {
+ if (!isPeptideSpecific() && !isNucleotideSpecific())
+ {
+ return true;
+ }
+
+ /*
+ * inspect the data context (alignment dataset) for residue type
+ */
+ boolean nucleotide = false;
+ AnnotatedCollectionI context = ac.getContext();
+ if (context != null)
+ {
+ if (context instanceof AlignmentI)
+ {
+ nucleotide = ((AlignmentI) context).isNucleotide();
+ }
+ else
+ {
+ // not sure what's going on, play safe
+ return true;
+ }
+ }
+ else if (ac instanceof AlignmentI)
+ {
+ nucleotide = ((AlignmentI) ac).isNucleotide();
+ }
+ else
+ {
+ return true;
+ }
+
+ /*
+ * does data type match colour scheme type?
+ */
+ return (nucleotide && isNucleotideSpecific())
+ || (!nucleotide && isPeptideSpecific());
+ }
+
+ /**
+ * Answers true if the colour scheme is normally only for peptide data
+ *
+ * @return
+ */
+ public boolean isPeptideSpecific()
+ {
+ return false;
+ }
+
+ /**
+ * Answers true if the colour scheme is normally only for nucleotide data
+ *
+ * @return
+ */
+ public boolean isNucleotideSpecific()
+ {
+ return false;
+ }
+
+ @Override
+ public String getSchemeName()
+ {
+ return "Residue";
+ }
}