X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fschemes%2FRNAHelicesColour.java;h=06553f05811694a0e5c524e89fa4a5ad73df9769;hb=fb27f86492eb06fc39b0578e1c31de8b4c26491a;hp=168aa3187129f2b3ee944275b87ee49d0991853a;hpb=59d682209891099d46b960509907c79e3fb276fe;p=jalview.git diff --git a/src/jalview/schemes/RNAHelicesColour.java b/src/jalview/schemes/RNAHelicesColour.java index 168aa31..06553f0 100644 --- a/src/jalview/schemes/RNAHelicesColour.java +++ b/src/jalview/schemes/RNAHelicesColour.java @@ -1,6 +1,6 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8) - * Copyright (C) 2012 J Procter, AM Waterhouse, LM Lui, J Engelhardt, G Barton, M Clamp, S Searle + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.0b1) + * Copyright (C) 2014 The Jalview Authors * * This file is part of Jalview. * @@ -14,13 +14,17 @@ * 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 . + * The Jalview Authors are detailed in the 'AUTHORS' file. */ package jalview.schemes; import java.awt.*; import java.util.Hashtable; +import java.util.Map; import jalview.datamodel.AlignmentAnnotation; +import jalview.datamodel.AnnotatedCollectionI; +import jalview.datamodel.SequenceCollectionI; import jalview.datamodel.SequenceI; /** @@ -61,13 +65,40 @@ public class RNAHelicesColour extends ResidueColourScheme this.annotation = annotation; refresh(); } + public RNAHelicesColour(AnnotatedCollectionI alignment) + { + super(ResidueProperties.nucleotideIndex); + alignmentChanged(alignment, null); + } + + @Override + public void alignmentChanged(AnnotatedCollectionI alignment, + Map hiddenReps) + { + // This loop will find the first rna structure annotation by which to colour + // the sequences. + AlignmentAnnotation[] annotations = alignment.getAlignmentAnnotation(); + for (int i = 0; i < annotations.length; i++) { + + // is this a sensible way of determining type of annotation? + if (annotations[i].getRNAStruc() != null) { + annotation = annotations[i]; + break; + } + } + + refresh(); + + } private long lastrefresh = -1; public void refresh() { - if (lastrefresh != annotation._rnasecstr.hashCode() - && annotation.isValidStruc()) + + if (annotation!=null && ((annotation._rnasecstr == null + || lastrefresh != annotation._rnasecstr.hashCode()) + && annotation.isValidStruc())) { annotation.getRNAStruc(); lastrefresh = annotation._rnasecstr.hashCode();