JAL-3853 patch sequence annotation report code and tweak the test. When merging from...
[jalview.git] / src / jalview / io / SequenceAnnotationReport.java
index 1a5072d..6adc419 100644 (file)
@@ -238,7 +238,7 @@ public class SequenceAnnotationReport
       {
         if (sb0.length() > 6)
         {
-          sb.append("<br/>");
+          sb.append("<br>");
         }
         sb.append(feature.getType()).append(" ").append(begin).append(":")
                 .append(end);
@@ -248,7 +248,7 @@ public class SequenceAnnotationReport
 
     if (sb0.length() > 6)
     {
-      sb.append("<br/>");
+      sb.append("<br>");
     }
     // TODO: remove this hack to display link only features
     boolean linkOnly = feature.getValue("linkonly") != null;
@@ -277,7 +277,9 @@ public class SequenceAnnotationReport
         int linkindex = description.toLowerCase().indexOf("<a ");
         boolean hasLink = linkindex > -1
                 && linkindex < MAX_DESCRIPTION_LENGTH;
-        if (description.length() > MAX_DESCRIPTION_LENGTH && !hasLink)
+        if (
+                // BH suggestion maxlength == 0 && 
+                description.length() > MAX_DESCRIPTION_LENGTH && !hasLink)
         {
           description = description.substring(0, MAX_DESCRIPTION_LENGTH)
                   + ELLIPSIS;
@@ -396,7 +398,7 @@ public class SequenceAnnotationReport
           {
             for (List<String> urllink : createLinksFrom(null, urlstring))
             {
-              sb.append("<br/> <a href=\""
+              sb.append("<br> <a href=\""
                       + urllink.get(3)
                       + "\" target=\""
                       + urllink.get(0)
@@ -405,7 +407,7 @@ public class SequenceAnnotationReport
                               .equals(urllink.get(1).toLowerCase()) ? urllink
                               .get(0) : (urllink.get(0) + ":" + urllink
                                               .get(1)))
-                      + "</a><br/>");
+                      + "</a><br>");
             }
           } catch (Exception x)
           {
@@ -486,20 +488,27 @@ public class SequenceAnnotationReport
       ds = ds.getDatasetSequence();
     }
 
+    
     /*
      * add any annotation scores
      */
     AlignmentAnnotation[] anns = ds.getAnnotation();
-    for (int i = 0; anns != null && i < anns.length; i++)
-    {
-      AlignmentAnnotation aa = anns[i];
-      if (aa != null && aa.hasScore() && aa.sequenceRef != null)
+    if (anns!=null && anns.length>0) {
+      boolean first=true;
+      for (int i = 0; anns != null && i < anns.length; i++)
       {
-        sb.append("<br>").append(aa.label).append(": ")
-                .append(aa.getScore());
+        AlignmentAnnotation aa = anns[i];
+        if (aa != null && aa.hasScore() && aa.sequenceRef != null)
+        {
+          if (first) {
+                 sb.append("<br>").append("Annotation Scores<br>");
+                 first=false;
+          }
+          sb.append("<br>").append(aa.label).append(": ")
+                  .append(aa.getScore());
+        }
       }
     }
-
     if (showDbRefs)
     {
       maxWidth = Math.max(maxWidth, appendDbRefs(sb, ds, summary));
@@ -533,8 +542,8 @@ public class SequenceAnnotationReport
       sb.append(bitScore);
       maxWidth = Math.max(maxWidth, eValue.length());
       maxWidth = Math.max(maxWidth, bitScore.length());
+      sb.append("<br>");
     }
-    sb.append("<br>");
     sb.append("</i>");
 
     return maxWidth;
@@ -594,7 +603,7 @@ public class SequenceAnnotationReport
       countForSource++;
       if (countForSource == 1 || !summary)
       {
-        sb.append("<br/>");
+        sb.append("<br>");
       }
       if (countForSource <= MAX_REFS_PER_SOURCE || !summary)
       {
@@ -620,11 +629,11 @@ public class SequenceAnnotationReport
     }
     if (moreSources)
     {
-      sb.append("<br/>").append(source).append(COMMA).append(ELLIPSIS);
+      sb.append("<br>").append(source).append(COMMA).append(ELLIPSIS);
     }
     if (ellipsis)
     {
-      sb.append("<br/>(");
+      sb.append("<br>(");
       sb.append(MessageManager.getString("label.output_seq_details"));
       sb.append(")");
     }