X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FSequenceAnnotationReport.java;h=6d819d39a88092a7f285d0e954e583bf82292db6;hb=14193747f3831242bc7dfac12394eb20eb0ba480;hp=c3b076cb20ffe774079f5e8b24e154d75b88bbea;hpb=136c0793b90b72b928c4d77dc109dd5c644e00d3;p=jalview.git diff --git a/src/jalview/io/SequenceAnnotationReport.java b/src/jalview/io/SequenceAnnotationReport.java index c3b076c..6d819d3 100644 --- a/src/jalview/io/SequenceAnnotationReport.java +++ b/src/jalview/io/SequenceAnnotationReport.java @@ -26,6 +26,7 @@ import jalview.datamodel.SequenceFeature; import jalview.datamodel.SequenceI; import jalview.io.gff.GffConstants; import jalview.util.MessageManager; +import jalview.util.StringUtils; import jalview.util.UrlLink; import java.util.Arrays; @@ -58,7 +59,7 @@ public class SequenceAnnotationReport /* * Comparator to order DBRefEntry by Source + accession id (case-insensitive), - * with 'Primary' sources placed before others + * with 'Primary' sources placed before others, and 'chromosome' first of all */ private static Comparator comparator = new Comparator() { @@ -66,6 +67,14 @@ public class SequenceAnnotationReport @Override public int compare(DBRefEntry ref1, DBRefEntry ref2) { + if (ref1.isChromosome()) + { + return -1; + } + if (ref2.isChromosome()) + { + return 1; + } String s1 = ref1.getSource(); String s2 = ref2.getSource(); boolean s1Primary = isPrimarySource(s1); @@ -78,14 +87,14 @@ public class SequenceAnnotationReport { return 1; } - int comp = s1 == null ? -1 : (s2 == null ? 1 : s1 - .compareToIgnoreCase(s2)); + int comp = s1 == null ? -1 + : (s2 == null ? 1 : s1.compareToIgnoreCase(s2)); if (comp == 0) { String a1 = ref1.getAccessionId(); String a2 = ref2.getAccessionId(); - comp = a1 == null ? -1 : (a2 == null ? 1 : a1 - .compareToIgnoreCase(a2)); + comp = a1 == null ? -1 + : (a2 == null ? 1 : a1.compareToIgnoreCase(a2)); } return comp; } @@ -151,8 +160,7 @@ public class SequenceAnnotationReport sb.append("
"); } sb.append(feature.getType()).append(" ").append(feature.getBegin()) - .append(":") - .append(feature.getEnd()); + .append(":").append(feature.getEnd()); } } else @@ -176,56 +184,17 @@ public class SequenceAnnotationReport sb.append(" ").append(feature.end); } - if (feature.getDescription() != null - && !feature.description.equals(feature.getType())) + String description = feature.getDescription(); + if (description != null && !description.equals(feature.getType())) { - String tmpString = feature.getDescription(); - String tmp2up = tmpString.toUpperCase(); - int startTag = tmp2up.indexOf(""); - if (startTag > -1) - { - tmpString = tmpString.substring(startTag + 6); - tmp2up = tmp2up.substring(startTag + 6); - } - int endTag = tmp2up.indexOf(""); - if (endTag > -1) - { - tmpString = tmpString.substring(0, endTag); - tmp2up = tmp2up.substring(0, endTag); - } - endTag = tmp2up.indexOf(""); - if (endTag > -1) - { - tmpString = tmpString.substring(0, endTag); - } - - if (startTag > -1) - { - sb.append("; ").append(tmpString); - } - else - { - if (tmpString.indexOf("<") > -1 || tmpString.indexOf(">") > -1) - { - // The description does not specify html is to - // be used, so we must remove < > symbols - tmpString = tmpString.replaceAll("<", "<"); - tmpString = tmpString.replaceAll(">", ">"); - - sb.append("; "); - sb.append(tmpString); - } - else - { - sb.append("; ").append(tmpString); - } - } + description = StringUtils.stripHtmlTags(description); + sb.append("; ").append(description); } // check score should be shown if (!Float.isNaN(feature.getScore())) { - float[][] rng = (minmax == null) ? null : minmax.get(feature - .getType()); + float[][] rng = (minmax == null) ? null + : minmax.get(feature.getType()); if (rng != null && rng[0] != null && rng[0][0] != rng[0][1]) { sb.append(" Score=").append(String.valueOf(feature.getScore())); @@ -269,21 +238,19 @@ public class SequenceAnnotationReport { for (List urllink : createLinksFrom(null, urlstring)) { - sb.append("
" + sb.append("
" + (urllink.get(0).toLowerCase() - .equals(urllink.get(1).toLowerCase()) ? urllink - .get(0) : (urllink.get(0) + ":" + urllink - .get(1))) + .equals(urllink.get(1).toLowerCase()) + ? urllink.get(0) + : (urllink.get(0) + ":" + + urllink.get(1))) + "
"); } } catch (Exception x) { - System.err.println("problem when creating links from " - + urlstring); + System.err.println( + "problem when creating links from " + urlstring); x.printStackTrace(); } } @@ -478,8 +445,8 @@ public class SequenceAnnotationReport SequenceI sequence, boolean showDbRefs, boolean showNpFeats, Map minmax) { - int maxWidth = createSequenceAnnotationReport(tip, sequence, - showDbRefs, showNpFeats, minmax, true); + int maxWidth = createSequenceAnnotationReport(tip, sequence, showDbRefs, + showNpFeats, minmax, true); if (maxWidth > 60) {