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;
/**
this.annotation = annotation;
refresh();
}
+ public RNAHelicesColour(AnnotatedCollectionI alignment)
+ {
+ super(ResidueProperties.nucleotideIndex);
+ alignmentChanged(alignment, null);
+ }
+
+ @Override
+ public void alignmentChanged(AnnotatedCollectionI alignment,
+ Map<SequenceI, SequenceCollectionI> 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();
{
return;
}
-
- // This loop will find the first rna structure annotation by which to colour
- // the sequences.
- AlignmentAnnotation[] annotations = av.getAlignment().getAlignmentAnnotation();
- for (int i = 0; i < annotations.length; i++) {
-
- // is this a sensible way of determining type of annotation?
- if (annotations[i].getRNAStruc() != null) {
- currentAnnotation = annotations[i];
- break;
- }
- }
- if (currentAnnotation == null)
- {
- System.err.println("Jalview is about to try and colour by RNAHelices even"
- + " though there are no RNA secondary structure annotations present!");
- currentAnnotation = av.getAlignment().getAlignmentAnnotation()[0];// annotations.getSelectedIndex()];
- }
-
RNAHelicesColour rhc = null;
- rhc = new RNAHelicesColour(currentAnnotation);
+ rhc = new RNAHelicesColour(av.getAlignment());
av.setGlobalColourScheme(rhc);
continue;
}
- sg.cs = new RNAHelicesColour(currentAnnotation);
+ sg.cs = new RNAHelicesColour(sg);
}
}