X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fschemes%2FAnnotationColourGradient.java;h=4f92d18600d2d78240fb8b3f01de2ad0b746e741;hb=eb9c652416a69e6db0531e956dd2011012eac898;hp=ef77e4dff0c7b8a3abc9f91948809840100b35b4;hpb=9a8cd338482d62f30297119ac6273da5f5b6ea6c;p=jalview.git diff --git a/src/jalview/schemes/AnnotationColourGradient.java b/src/jalview/schemes/AnnotationColourGradient.java index ef77e4d..4f92d18 100755 --- a/src/jalview/schemes/AnnotationColourGradient.java +++ b/src/jalview/schemes/AnnotationColourGradient.java @@ -1,6 +1,6 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2) - * Copyright (C) 2014 The Jalview Authors + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.9.0b1) + * Copyright (C) 2015 The Jalview Authors * * This file is part of Jalview. * @@ -53,39 +53,14 @@ public class AnnotationColourGradient extends FollowerColourScheme private boolean predefinedColours = false; private boolean seqAssociated = false; - Color rnaHelices[] = null; - private void initRnaHelicesShading(int n) - { - int j = 0; - if (rnaHelices==null) - { - rnaHelices = new Color[n + 1]; - } - else - if (rnaHelices != null && rnaHelices.length <= n) - { - Color[] t = new Color[n + 1]; - System.arraycopy(rnaHelices, 0, t, 0, rnaHelices.length); - j = rnaHelices.length; - rnaHelices = t; - } - else - { - return; - } - // Generate random colors and store - for (; j <= n; j++) - { - rnaHelices[j] = jalview.util.ColorUtils - .generateRandomColor(Color.white); - } - } + /** * false if the scheme was constructed without a minColour and maxColour used * to decide if existing colours should be taken from annotation elements when * they exist */ private boolean noGradient = false; + IdentityHashMap seqannot = null; @Override @@ -141,6 +116,7 @@ public class AnnotationColourGradient extends FollowerColourScheme bb = 0; noGradient = true; + checkLimits(); } /** @@ -167,11 +143,18 @@ public class AnnotationColourGradient extends FollowerColourScheme bb = maxColour.getBlue() - b1; noGradient = false; + checkLimits(); + } + + private void checkLimits() + { aamax = annotation.graphMax; aamin = annotation.graphMin; if (annotation.isRNA()) { - initRnaHelicesShading(1 + (int) aamax); + // reset colour palette + ColourSchemeProperty.resetRnaHelicesShading(); + ColourSchemeProperty.initRnaHelicesShading(1 + (int) aamax); } } @@ -194,7 +177,7 @@ public class AnnotationColourGradient extends FollowerColourScheme // resolve the context containing all the annotation for the sequence AnnotatedCollectionI alcontext = alignment instanceof AlignmentI ? alignment : alignment.getContext(); - boolean f = true,rna=false; + boolean f = true, rna = false; for (AlignmentAnnotation alan : alcontext.findAnnotation(annotation .getCalcId())) { @@ -220,12 +203,13 @@ public class AnnotationColourGradient extends FollowerColourScheme } if (rna) { - initRnaHelicesShading(1 + (int) aamax); + ColourSchemeProperty.initRnaHelicesShading(1 + (int) aamax); } } } float aamin = 0f, aamax = 0f; + public String getAnnotation() { return annotation.label; @@ -285,8 +269,8 @@ public class AnnotationColourGradient extends FollowerColourScheme public Color findColour(char c, int j, SequenceI seq) { Color currentColour = Color.white; - AlignmentAnnotation annotation = (seqAssociated ? seqannot.get(seq) - : this.annotation); + AlignmentAnnotation annotation = (seqAssociated && seqannot != null ? seqannot + .get(seq) : this.annotation); if (annotation == null) { return currentColour; @@ -313,7 +297,8 @@ public class AnnotationColourGradient extends FollowerColourScheme || (annotationThreshold != null && (aboveAnnotationThreshold == ABOVE_THRESHOLD ? aj.value >= annotationThreshold.value : aj.value <= annotationThreshold.value))) { - if (predefinedColours && aj.colour != null) + if (predefinedColours && aj.colour != null + && !aj.colour.equals(Color.black)) { currentColour = aj.colour; } @@ -331,7 +316,7 @@ public class AnnotationColourGradient extends FollowerColourScheme { if (annotation.isRNA()) { - currentColour = rnaHelices[(int) aj.value]; + currentColour = ColourSchemeProperty.rnaHelices[(int) aj.value]; } else { @@ -414,6 +399,7 @@ public class AnnotationColourGradient extends FollowerColourScheme return new Color(dr, dg, db); } + public boolean isPredefinedColours() { return predefinedColours;