JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / site / j2s / jalview / ext / varna / VarnaCommands.js
1 Clazz.declarePackage ("jalview.ext.varna");\r
2 Clazz.load (null, "jalview.ext.varna.VarnaCommands", ["jalview.util.Comparison", "java.lang.StringBuffer", "java.util.ArrayList"], function () {\r
3 c$ = Clazz.declareType (jalview.ext.varna, "VarnaCommands");\r
4 c$.getColourBySequenceCommand = Clazz.defineMethod (c$, "getColourBySequenceCommand", \r
5 function (ssm, files, sequence, sr, fr, alignment) {\r
6 var str =  new java.util.ArrayList ();\r
7 var command =  new StringBuffer ();\r
8 for (var pdbfnum = 0; pdbfnum < files.length; pdbfnum++) {\r
9 var mapping = ssm.getMapping (files[pdbfnum]);\r
10 if (mapping == null || mapping.length < 1) {\r
11 continue;\r
12 }var lastPos = -1;\r
13 for (var s = 0; s < sequence[pdbfnum].length; s++) {\r
14 for (var sp, m = 0; m < mapping.length; m++) {\r
15 if (mapping[m].getSequence () === sequence[pdbfnum][s] && (sp = alignment.findIndex (sequence[pdbfnum][s])) > -1) {\r
16 var asp = alignment.getSequenceAt (sp);\r
17 for (var r = 0; r < asp.getLength (); r++) {\r
18 if (jalview.util.Comparison.isGap (asp.getCharAt (r))) {\r
19 continue;\r
20 }var pos = mapping[m].getPDBResNum (asp.findPosition (r));\r
21 if (pos < 1 || pos == lastPos) {\r
22 continue;\r
23 }lastPos = pos;\r
24 var col = sr.getResidueBoxColour (sequence[pdbfnum][s], r);\r
25 if (fr != null) {\r
26 col = fr.findFeatureColour (col, sequence[pdbfnum][s], r);\r
27 }var newSelcom = (mapping[m].getChain () !== " " ? ":" + mapping[m].getChain () : "") + "/" + (pdbfnum + 1) + ".1" + ";color[" + col.getRed () + "," + col.getGreen () + "," + col.getBlue () + "]";\r
28 if (command.length () > newSelcom.length && command.substring (command.length () - newSelcom.length).equals (newSelcom)) {\r
29 command = jalview.ext.varna.VarnaCommands.condenseCommand (command, pos);\r
30 continue;\r
31 }command.append (";");\r
32 if (command.length () > 51200) {\r
33 str.add (command.toString ());\r
34 command.setLength (0);\r
35 }command.append ("select " + pos);\r
36 command.append (newSelcom);\r
37 }\r
38 break;\r
39 }}\r
40 }\r
41 }\r
42 {\r
43 str.add (command.toString ());\r
44 command.setLength (0);\r
45 }return str.toArray ( new Array (str.size ()));\r
46 }, "jalview.structure.StructureSelectionManager,~A,~A,jalview.api.SequenceRenderer,jalview.api.FeatureRenderer,jalview.datamodel.AlignmentI");\r
47 c$.condenseCommand = Clazz.defineMethod (c$, "condenseCommand", \r
48 function (command, pos) {\r
49 var p = command.length ();\r
50 var q = p;\r
51 do {\r
52 p -= 6;\r
53 if (p < 1) {\r
54 p = 0;\r
55 };} while ((q = command.indexOf ("select", p)) == -1 && p > 0);\r
56 var sb =  new StringBuffer (command.substring (0, q + 7));\r
57 command = command.$delete (0, q + 7);\r
58 var start;\r
59 if (command.indexOf ("-") > -1) {\r
60 start = command.substring (0, command.indexOf ("-"));\r
61 } else {\r
62 start = command.substring (0, command.indexOf (":"));\r
63 }sb.append (start + "-" + pos + command.substring (command.indexOf (":")));\r
64 return sb;\r
65 }, "StringBuffer,~N");\r
66 });\r