X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FAlignmentAnnotation.java;h=40d2b7ee5056cebc8f8f5d12ffc2962c80ec988f;hb=30bc1314d4206cafea412dcd9decdea7e318481f;hp=87c113fa5ad346e2c13b2f68b59a1fd7d2d02807;hpb=51e85a7546da1a6e0248f66e7f2312d58134e12b;p=jalview.git diff --git a/src/jalview/datamodel/AlignmentAnnotation.java b/src/jalview/datamodel/AlignmentAnnotation.java index 87c113f..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,25 +154,32 @@ Loading... { continue; } - - if (annotations[i].displayCharacter.length() == 1 - && !annotations[i].displayCharacter.equals("H") - && !annotations[i].displayCharacter.equals("E") - && !annotations[i].displayCharacter.equals("-") - && !annotations[i].displayCharacter.equals(".")) + 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 + firstChar!='H' + && firstChar!='E' + && firstChar!='-' + && firstChar!='-' && firstChar 0) - { - hasText = true; - } + if (annotations[i].displayCharacter.length() > 0) + { + hasText = true; } + } if (nonSSLabel) { @@ -357,6 +364,11 @@ Loading... */ public void restrict(int startRes, int endRes) { + if (annotations==null) + { + // non-positional + return; + } if (startRes<0) startRes=0; if (startRes>=annotations.length) @@ -656,6 +668,21 @@ Loading... this(label, description, null); setScore(score); } + /** + * copy constructor with edit based on the hidden columns marked in colSel + * @param alignmentAnnotation + * @param colSel + */ + public AlignmentAnnotation(AlignmentAnnotation alignmentAnnotation, + ColumnSelection colSel) + { + this(alignmentAnnotation); + if (annotations==null) + { + return; + } + colSel.makeVisibleAnnotation(this); + } public void setPadGaps(boolean padgaps, char gapchar) {