From 3a2a5c2d6ae1e0aeeced5d11d6f9ffd5fafaa147 Mon Sep 17 00:00:00 2001 From: jprocter Date: Thu, 1 May 2008 09:22:43 +0000 Subject: [PATCH] fix for unicode char labels causing arrayOutOfBoundsException bug spotted by cameron weadicks --- src/jalview/datamodel/AlignmentAnnotation.java | 36 +++++++++++++----------- 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/src/jalview/datamodel/AlignmentAnnotation.java b/src/jalview/datamodel/AlignmentAnnotation.java index f68786b..40d2b7e 100755 --- a/src/jalview/datamodel/AlignmentAnnotation.java +++ b/src/jalview/datamodel/AlignmentAnnotation.java @@ -118,10 +118,9 @@ public class AlignmentAnnotation /** * Creates a new AlignmentAnnotation object. * - * @param label DOCUMENT ME! - * @param description DOCUMENT ME! - * @param annotations DOCUMENT ME!about:blank -Loading... + * @param label short label shown under sequence labels + * @param description text displayed on mouseover + * @param annotations set of positional annotation elements */ public AlignmentAnnotation(String label, String description, Annotation[] annotations) @@ -138,6 +137,7 @@ Loading... void areLabelsSecondaryStructure() { boolean nonSSLabel = false; + char firstChar=0; for (int i = 0; i < annotations.length; i++) { if (annotations[i] == null) @@ -154,28 +154,32 @@ Loading... { continue; } - - if (annotations[i].displayCharacter.length() == 1 - // Uncomment to only catch case where displayCharacter==secondary Structure + if (annotations[i].displayCharacter.length() == 1) + { + firstChar = annotations[i].displayCharacter.charAt(0); + // check to see if it looks like a sequence or is secondary structure labelling. + if ( + // Uncomment to only catch case where displayCharacter==secondary Structure // to correctly redisplay SS annotation imported from Stockholm, exported to JalviewXML and read back in again. // && annotations[i].displayCharacter.charAt(0)==annotations[i].secondaryStructure - && !annotations[i].displayCharacter.equals("H") - && !annotations[i].displayCharacter.equals("E") - && !annotations[i].displayCharacter.equals("-") - && !annotations[i].displayCharacter.equals(".")) + firstChar!='H' + && firstChar!='E' + && firstChar!='-' + && firstChar!='-' && firstChar 0) - { - hasText = true; - } + if (annotations[i].displayCharacter.length() > 0) + { + hasText = true; } + } if (nonSSLabel) { -- 1.7.10.2