X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fschemes%2FAnnotationColourGradient.java;h=e975884e6fcaaf6fab9116c90827e6398310c7af;hb=2a7662654294c090754af3eab70f1b65fcf36a14;hp=f619d071cfc9128647e96aae4b18f353e74d450c;hpb=50eb1f492f5c64b56594ee49be8183fab8a2f73b;p=jalview.git diff --git a/src/jalview/schemes/AnnotationColourGradient.java b/src/jalview/schemes/AnnotationColourGradient.java index f619d07..e975884 100755 --- a/src/jalview/schemes/AnnotationColourGradient.java +++ b/src/jalview/schemes/AnnotationColourGradient.java @@ -1,24 +1,27 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.0b1) + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2) * Copyright (C) 2014 The Jalview Authors * * This file is part of Jalview. * * Jalview 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 3 of the License, or (at your option) any later version. + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. * * Jalview 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 Jalview. If not, see . + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . * The Jalview Authors are detailed in the 'AUTHORS' file. */ package jalview.schemes; import jalview.datamodel.AlignmentAnnotation; +import jalview.datamodel.AlignmentI; import jalview.datamodel.AnnotatedCollectionI; import jalview.datamodel.GraphLine; import jalview.datamodel.SequenceCollectionI; @@ -51,13 +54,16 @@ public class AnnotationColourGradient extends FollowerColourScheme private boolean seqAssociated = false; IdentityHashMap seqannot = null; + @Override public ColourSchemeI applyTo(AnnotatedCollectionI sg, Map hiddenRepSequences) { - AnnotationColourGradient acg = new AnnotationColourGradient(annotation, colourScheme, aboveAnnotationThreshold); + AnnotationColourGradient acg = new AnnotationColourGradient(annotation, + colourScheme, aboveAnnotationThreshold); acg.thresholdIsMinMax = thresholdIsMinMax; - acg.annotationThreshold = (annotationThreshold==null) ? null : new GraphLine(annotationThreshold); + acg.annotationThreshold = (annotationThreshold == null) ? null + : new GraphLine(annotationThreshold); acg.r1 = r1; acg.g1 = g1; acg.b1 = b1; @@ -69,9 +75,10 @@ public class AnnotationColourGradient extends FollowerColourScheme acg.db = db; acg.predefinedColours = predefinedColours; acg.seqAssociated = seqAssociated; - + return acg; } + /** * Creates a new AnnotationColourGradient object. */ @@ -125,7 +132,6 @@ public class AnnotationColourGradient extends FollowerColourScheme public void alignmentChanged(AnnotatedCollectionI alignment, Map hiddenReps) { - // TODO Auto-generated method stub super.alignmentChanged(alignment, hiddenReps); if (seqAssociated && annotation.getCalcId() != null) @@ -138,7 +144,10 @@ public class AnnotationColourGradient extends FollowerColourScheme { seqannot = new IdentityHashMap(); } - for (AlignmentAnnotation alan : alignment.findAnnotation(annotation + // resolve the context containing all the annotation for the sequence + AnnotatedCollectionI alcontext = alignment instanceof AlignmentI ? alignment + : alignment.getContext(); + for (AlignmentAnnotation alan : alcontext.findAnnotation(annotation .getCalcId())) { if (alan.sequenceRef != null @@ -218,19 +227,26 @@ public class AnnotationColourGradient extends FollowerColourScheme } if ((threshold == 0) || aboveThreshold(c, j)) { - if (annotation.annotations!=null && j < annotation.annotations.length + if (annotation.annotations != null + && j < annotation.annotations.length && annotation.annotations[j] != null && !jalview.util.Comparison.isGap(c)) { - if (predefinedColours) + if (annotation.annotations[j].colour != null) { - if (annotation.annotations[j].colour != null) + if (predefinedColours || annotation.hasIcons) + { return annotation.annotations[j].colour; - else + } + } + else + { + if (predefinedColours) + { return currentColour; + } } - if (aboveAnnotationThreshold == NO_THRESHOLD || (annotationThreshold != null && aboveAnnotationThreshold == ABOVE_THRESHOLD && annotation.annotations[j].value >= annotationThreshold.value) @@ -264,7 +280,7 @@ public class AnnotationColourGradient extends FollowerColourScheme { currentColour = colourScheme.findColour(c, j, seq); } - else + else { dr = rr * range + r1; dg = gg * range + g1;