X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fschemes%2FRNAHelicesColour.java;h=0a3705282cf7417be4482e31b79392e3302b30b9;hb=b2f9a8d7bce642ff4011bc6d49e02bb0569fbb11;hp=7cbca667404d9b80ed4a88fcad9791ccfe49e12f;hpb=2f4f1d8fb6878271b64f327bc58c895f458137af;p=jalview.git diff --git a/src/jalview/schemes/RNAHelicesColour.java b/src/jalview/schemes/RNAHelicesColour.java index 7cbca66..0a37052 100644 --- a/src/jalview/schemes/RNAHelicesColour.java +++ b/src/jalview/schemes/RNAHelicesColour.java @@ -1,5 +1,5 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.0b1) + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.1) * Copyright (C) 2014 The Jalview Authors * * This file is part of Jalview. @@ -20,8 +20,11 @@ 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; /** @@ -62,14 +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 ((annotation._rnasecstr == null + + if (annotation!=null && ((annotation._rnasecstr == null || lastrefresh != annotation._rnasecstr.hashCode()) - && annotation.isValidStruc()) + && annotation.isValidStruc())) { annotation.getRNAStruc(); lastrefresh = annotation._rnasecstr.hashCode();