1 Clazz.declarePackage ("jalview.io");
\r
2 Clazz.load (null, "jalview.io.SequenceAnnotationReport", ["jalview.util.DBRefUtils", "$.UrlLink", "java.lang.Float", "java.util.ArrayList"], function () {
\r
3 c$ = Clazz.decorateAsClass (function () {
\r
4 this.linkImageURL = null;
\r
5 Clazz.instantialize (this, arguments);
\r
6 }, jalview.io, "SequenceAnnotationReport");
\r
7 Clazz.makeConstructor (c$,
\r
8 function (linkImageURL) {
\r
9 this.linkImageURL = linkImageURL;
\r
11 Clazz.defineMethod (c$, "appendFeatures",
\r
12 function (tooltipText2, rpos, features) {
\r
13 this.appendFeatures (tooltipText2, rpos, features, null);
\r
14 }, "StringBuffer,~N,java.util.List");
\r
15 Clazz.defineMethod (c$, "appendFeatures",
\r
16 function (tooltipText2, rpos, features, minmax) {
\r
18 if (features != null) {
\r
19 for (var feature, $feature = features.iterator (); $feature.hasNext () && ((feature = $feature.next ()) || true);) {
\r
20 if (feature.getType ().equals ("disulfide bond")) {
\r
21 if (feature.getBegin () == rpos || feature.getEnd () == rpos) {
\r
22 if (tooltipText2.length () > 6) {
\r
23 tooltipText2.append ("<br>");
\r
24 }tooltipText2.append ("disulfide bond " + feature.getBegin () + ":" + feature.getEnd ());
\r
26 if (tooltipText2.length () > 6) {
\r
27 tooltipText2.append ("<br>");
\r
28 }var linkOnly = feature.getValue ("linkonly") != null;
\r
30 tooltipText2.append (feature.getType () + " ");
\r
32 tooltipText2.append (feature.begin);
\r
33 }if (feature.begin != feature.end) {
\r
34 tooltipText2.append (" " + feature.end);
\r
35 }if (feature.getDescription () != null && !feature.description.equals (feature.getType ())) {
\r
36 tmpString = feature.getDescription ();
\r
37 var tmp2up = tmpString.toUpperCase ();
\r
38 var startTag = tmp2up.indexOf ("<HTML>");
\r
39 if (startTag > -1) {
\r
40 tmpString = tmpString.substring (startTag + 6);
\r
41 tmp2up = tmp2up.substring (startTag + 6);
\r
42 }var endTag = tmp2up.indexOf ("</BODY>");
\r
44 tmpString = tmpString.substring (0, endTag);
\r
45 tmp2up = tmp2up.substring (0, endTag);
\r
46 }endTag = tmp2up.indexOf ("</HTML>");
\r
48 tmpString = tmpString.substring (0, endTag);
\r
49 }if (startTag > -1) {
\r
50 tooltipText2.append ("; " + tmpString);
\r
52 if (tmpString.indexOf ("<") > -1 || tmpString.indexOf (">") > -1) {
\r
53 tmpString = tmpString.replaceAll ("<", "<");
\r
54 tmpString = tmpString.replaceAll (">", ">");
\r
55 tooltipText2.append ("; ");
\r
56 tooltipText2.append (tmpString);
\r
58 tooltipText2.append ("; " + tmpString);
\r
59 }}}if (!Float.isNaN (feature.getScore ())) {
\r
60 var rng = (minmax == null) ? null : (minmax.get (feature.getType ()));
\r
61 if (rng != null && rng[0] != null && rng[0][0] != rng[0][1]) {
\r
62 tooltipText2.append (" Score=" + feature.getScore ());
\r
63 }}if (feature.getValue ("status") != null) {
\r
64 var status = feature.getValue ("status").toString ();
\r
65 if (status.length > 0) {
\r
66 tooltipText2.append ("; (" + feature.getValue ("status") + ")");
\r
67 }}}}if (feature.links != null) {
\r
68 if (this.linkImageURL != null) {
\r
69 tooltipText2.append (" <img src=\"" + this.linkImageURL + "\">");
\r
71 for (var urlstring, $urlstring = feature.links.iterator (); $urlstring.hasNext () && ((urlstring = $urlstring.next ()) || true);) {
\r
73 for (var urllink, $urllink = 0, $$urllink = this.createLinksFrom (null, urlstring); $urllink < $$urllink.length && ((urllink = $$urllink[$urllink]) || true); $urllink++) {
\r
74 tooltipText2.append ("<br/> <a href=\"" + urllink[3] + "\" target=\"" + urllink[0] + "\">" + (urllink[0].toLowerCase ().equals (urllink[1].toLowerCase ()) ? urllink[0] : (urllink[0] + ":" + urllink[1])) + "</a></br>");
\r
77 if (Clazz.exceptionOf (x, Exception)) {
\r
78 System.err.println ("problem when creating links from " + urlstring);
\r
79 x.printStackTrace ();
\r
86 }}, "StringBuffer,~N,java.util.List,java.util.Hashtable");
\r
87 Clazz.defineMethod (c$, "createLinksFrom",
\r
88 function (seq, link) {
\r
89 var urlSets = new java.util.ArrayList ();
\r
90 var uniques = new java.util.ArrayList ();
\r
91 var urlLink = new jalview.util.UrlLink (link);
\r
92 if (!urlLink.isValid ()) {
\r
93 System.err.println (urlLink.getInvalidMessage ());
\r
95 }var target = urlLink.getTarget ();
\r
96 var label = urlLink.getLabel ();
\r
97 if (seq != null && urlLink.isDynamic ()) {
\r
98 var dbr = jalview.util.DBRefUtils.selectRefs (seq.getDBRef (), Clazz.newArray (-1, [target]));
\r
99 var id = seq.getName ();
\r
100 var descr = seq.getDescription ();
\r
101 if (descr != null && descr.length < 1) {
\r
103 }if (dbr != null) {
\r
104 for (var r = 0; r < dbr.length; r++) {
\r
105 if (id != null && dbr[r].getAccessionId ().equals (id)) {
\r
107 }var urls = urlLink.makeUrls (dbr[r].getAccessionId (), true);
\r
108 if (urls != null) {
\r
109 for (var u = 0; u < urls.length; u += 2) {
\r
110 var unq = urls[u] + "|" + urls[u + 1];
\r
111 if (!uniques.contains (unq)) {
\r
112 urlSets.add ( Clazz.newArray (-1, [target, label, urls[u], urls[u + 1]]));
\r
117 var urls = urlLink.makeUrls (id, true);
\r
118 if (urls != null) {
\r
119 for (var u = 0; u < urls.length; u += 2) {
\r
120 var unq = urls[u] + "|" + urls[u + 1];
\r
121 if (!uniques.contains (unq)) {
\r
122 urlSets.add ( Clazz.newArray (-1, [target, label, urls[u], urls[u + 1]]));
\r
125 }}if (descr != null && urlLink.getRegexReplace () != null) {
\r
126 var urls = urlLink.makeUrls (descr, true);
\r
127 if (urls != null) {
\r
128 for (var u = 0; u < urls.length; u += 2) {
\r
129 var unq = urls[u] + "|" + urls[u + 1];
\r
130 if (!uniques.contains (unq)) {
\r
131 urlSets.add ( Clazz.newArray (-1, [target, label, urls[u], urls[u + 1]]));
\r
135 var unq = label + "|" + urlLink.getUrl_prefix ();
\r
136 if (!uniques.contains (unq)) {
\r
138 urlSets.add ( Clazz.newArray (-1, [target, label, null, urlLink.getUrl_prefix ()]));
\r
139 }}return urlSets.toArray ( Clazz.newArray (-1, []));
\r
140 }, "jalview.datamodel.SequenceI,~S");
\r
141 Clazz.defineMethod (c$, "createSequenceAnnotationReport",
\r
142 function (tip, sequence, showDbRefs, showNpFeats, minmax) {
\r
143 this.createSequenceAnnotationReport (tip, sequence, showDbRefs, showNpFeats, true, minmax);
\r
144 }, "StringBuffer,jalview.datamodel.SequenceI,~B,~B,java.util.Hashtable");
\r
145 Clazz.defineMethod (c$, "createSequenceAnnotationReport",
\r
146 function (tip, sequence, showDbRefs, showNpFeats, tableWrap, minmax) {
\r
148 tip.append ("<i>");
\r
150 if (sequence.getDescription () != null) {
\r
151 tmp = sequence.getDescription ();
\r
152 tip.append ("<br>" + tmp);
\r
153 maxWidth = Math.max (maxWidth, tmp.length);
\r
154 }var ds = sequence;
\r
155 while (ds.getDatasetSequence () != null) {
\r
156 ds = ds.getDatasetSequence ();
\r
158 var dbrefs = ds.getDBRef ();
\r
159 if (showDbRefs && dbrefs != null) {
\r
160 for (var i = 0; i < dbrefs.length; i++) {
\r
161 tip.append ("<br>");
\r
162 tmp = dbrefs[i].getSource () + " " + dbrefs[i].getAccessionId ();
\r
164 maxWidth = Math.max (maxWidth, tmp.length);
\r
166 }var features = sequence.getSequenceFeatures ();
\r
167 if (showNpFeats && features != null) {
\r
168 for (var i = 0; i < features.length; i++) {
\r
169 if (features[i].begin == 0 && features[i].end == 0) {
\r
170 var sz = -tip.length ();
\r
171 var tfeat = new java.util.ArrayList ();
\r
172 tfeat.add (features[i]);
\r
173 this.appendFeatures (tip, 0, tfeat, minmax);
\r
174 sz += tip.length ();
\r
175 maxWidth = Math.max (maxWidth, sz);
\r
177 }if (tableWrap && maxWidth > 60) {
\r
178 tip.insert (0, "<table width=350 border=0><tr><td><i>");
\r
179 tip.append ("</i></td></tr></table>");
\r
180 }}, "StringBuffer,jalview.datamodel.SequenceI,~B,~B,~B,java.util.Hashtable");
\r