X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fio%2FSequenceAnnotationReport.java;h=9ffdf217f9d5f6184f210a40723f9fffd79fd050;hb=08c7bee16c16563cc7cec7ea4d336b3e0c4c937a;hp=8328e7ab45b64ffa6f5f1efeafd30d52ad203a09;hpb=5a631296dd1dcc1df7b50487a647c27333696c74;p=jalview.git diff --git a/src/jalview/io/SequenceAnnotationReport.java b/src/jalview/io/SequenceAnnotationReport.java index 8328e7a..9ffdf21 100644 --- a/src/jalview/io/SequenceAnnotationReport.java +++ b/src/jalview/io/SequenceAnnotationReport.java @@ -20,7 +20,8 @@ */ package jalview.io; -import java.util.Arrays; +import java.util.Locale; + import java.util.Collection; import java.util.Comparator; import java.util.LinkedHashMap; @@ -58,9 +59,7 @@ public class SequenceAnnotationReport private static String linkImageURL; - private static final String[][] PRIMARY_SOURCES = new String[][] { - DBRefSource.CODINGDBS, DBRefSource.DNACODINGDBS, - DBRefSource.PROTEINDBS }; + // public static final String[][] PRIMARY_SOURCES moved to DBRefSource.java /* * Comparator to order DBRefEntry by Source + accession id (case-insensitive), @@ -82,8 +81,8 @@ public class SequenceAnnotationReport } String s1 = ref1.getSource(); String s2 = ref2.getSource(); - boolean s1Primary = isPrimarySource(s1); - boolean s2Primary = isPrimarySource(s2); + boolean s1Primary = DBRefSource.isPrimarySource(s1); + boolean s2Primary = DBRefSource.isPrimarySource(s2); if (s1Primary && !s2Primary) { return -1; @@ -104,20 +103,20 @@ public class SequenceAnnotationReport return comp; } - private boolean isPrimarySource(String source) - { - for (String[] primary : PRIMARY_SOURCES) - { - for (String s : primary) - { - if (source.equals(s)) - { - return true; - } - } - } - return false; - } +// private boolean isPrimarySource(String source) +// { +// for (String[] primary : DBRefSource.PRIMARY_SOURCES) +// { +// for (String s : primary) +// { +// if (source.equals(s)) +// { +// return true; +// } +// } +// } +// return false; +// } }; private boolean forTooltip; @@ -210,12 +209,32 @@ public class SequenceAnnotationReport * if this is a virtual features, convert begin/end to the * coordinates of the sequence it is mapped to */ - int[] beginRange = null; - int[] endRange = null; + int[] beginRange = null; // feature start in local coordinates + int[] endRange = null; // feature end in local coordinates if (mf != null) { - beginRange = mf.getMappedPositions(begin, begin); - endRange = mf.getMappedPositions(end, end); + if (feature.isContactFeature()) + { + /* + * map start and end points individually + */ + beginRange = mf.getMappedPositions(begin, begin); + endRange = begin == end ? beginRange + : mf.getMappedPositions(end, end); + } + else + { + /* + * map the feature extent + */ + beginRange = mf.getMappedPositions(begin, end); + endRange = beginRange; + } + if (beginRange == null || endRange == null) + { + // something went wrong + return false; + } begin = beginRange[0]; end = endRange[endRange.length - 1]; } @@ -271,7 +290,7 @@ public class SequenceAnnotationReport * truncate overlong descriptions unless they contain an href * before the truncation point (as truncation could leave corrupted html) */ - int linkindex = description.toLowerCase().indexOf(" -1 && linkindex < MAX_DESCRIPTION_LENGTH; if (description.length() > MAX_DESCRIPTION_LENGTH && !hasLink) @@ -398,8 +417,8 @@ public class SequenceAnnotationReport + "\" target=\"" + urllink.get(0) + "\">" - + (urllink.get(0).toLowerCase() - .equals(urllink.get(1).toLowerCase()) ? urllink + + (urllink.get(0).toLowerCase(Locale.ROOT) + .equals(urllink.get(1).toLowerCase(Locale.ROOT)) ? urllink .get(0) : (urllink.get(0) + ":" + urllink .get(1))) + "
"); @@ -517,14 +536,14 @@ public class SequenceAnnotationReport protected int appendDbRefs(final StringBuilder sb, SequenceI ds, boolean summary) { - DBRefEntry[] dbrefs = ds.getDBRefs(); + List dbrefs = ds.getDBRefs(); if (dbrefs == null) { return 0; } // note this sorts the refs held on the sequence! - Arrays.sort(dbrefs, comparator); + dbrefs.sort(comparator); boolean ellipsis = false; String source = null; String lastSource = null;