JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / bin / jalview / bin / JalviewLite.js
1 Clazz.declarePackage ("jalview.bin");\r
2 Clazz.load (["jalview.api.StructureSelectionManagerProvider", "jalview.javascript.JalviewLiteJsApi", "java.lang.Thread", "javax.swing.JApplet", "jalview.util.MessageManager", "java.util.Hashtable", "$.Vector", "javax.swing.JButton"], "jalview.bin.JalviewLite", ["jalview.analysis.SequenceIdMatcher", "jalview.appletgui.AlignFrame", "$.EmbmenuFrame", "$.FeatureSettings", "$.SplitFrame", "jalview.datamodel.Alignment", "$.AlignmentOrder", "$.ColumnSelection", "$.PDBEntry", "$.SequenceGroup", "jalview.io.AnnotationFile", "$.AppletFormatAdapter", "$.FileParse", "$.IdentifyFile", "$.JnetAnnotationMaker", "$.NewickFile", "jalview.javascript.JSFunctionExec", "$.JsSelectionSender", "$.MouseOverListener", "$.MouseOverStructureListener", "jalview.jsdev.GenericFileAdapter", "jalview.schemes.ColourSchemeProperty", "$.UserColourScheme", "jalview.structure.SelectionListener", "$.StructureSelectionManager", "java.awt.Color", "$.EventQueue", "$.Font", "java.awt.event.ActionListener", "$.WindowAdapter", "java.io.BufferedReader", "$.InputStreamReader", "java.lang.Error", "$.StringBuffer", "java.net.URL", "java.util.StringTokenizer", "netscape.javascript.JSObject"], function () {\r
3 c$ = Clazz.decorateAsClass (function () {\r
4 this.embedded = false;\r
5 this.enableSplitFrame = false;\r
6 this.showButton = true;\r
7 this.checkForJmol = true;\r
8 this.jalviewServletURL = null;\r
9 this.startupFile = "No file";\r
10 this.helpUrl = null;\r
11 this.externalstructureviewer = null;\r
12 this.sep = null;\r
13 this.rgb = null;\r
14 this.labelColour = null;\r
15 this.initjscallback = null;\r
16 this.pdbFile = null;\r
17 this.sequence = null;\r
18 this.jnetFile = null;\r
19 this.annotations = null;\r
20 this.hideFeatureGroups = null;\r
21 this.showFeatureGroups = null;\r
22 this.features = null;\r
23 this.showFeatureSettings = null;\r
24 this.scoreFile = null;\r
25 this.treeFile = null;\r
26 this.windowWidth = null;\r
27 this.windowHeight = null;\r
28 this.defaultColour = null;\r
29 this.sortBy = null;\r
30 this.wrap = null;\r
31 this.centrecolumnlabels = null;\r
32 this.userDefinedColour = null;\r
33 this.widthScale = null;\r
34 this.heightScale = null;\r
35 this.upperCase = null;\r
36 this.file2 = null;\r
37 this.javascriptListeners = null;\r
38 this.jsFunctionExec = null;\r
39 this.fileFound = true;\r
40 this.launcher = null;\r
41 this.currentAlignFrame = null;\r
42 this.initialAlignFrame = null;\r
43 this.checkedForJmol = false;\r
44 this.jmolAvailable = false;\r
45 this.alignPdbStructures = false;\r
46 this.useXtrnalSviewer = false;\r
47 this.haveShownLoadMessage = false;\r
48 if (!Clazz.isClassDefined ("jalview.bin.JalviewLite.LoadJmolThread")) {\r
49 jalview.bin.JalviewLite.$JalviewLite$LoadJmolThread$ ();\r
50 }\r
51 if (!Clazz.isClassDefined ("jalview.bin.JalviewLite.LoadingThread")) {\r
52 jalview.bin.JalviewLite.$JalviewLite$LoadingThread$ ();\r
53 }\r
54 this.separator = "\u00ac";\r
55 this.jsfallbackEnabled = false;\r
56 this.jshashes = null;\r
57 this.jsmessages = null;\r
58 this.jsExecQueue = null;\r
59 Clazz.instantialize (this, arguments);\r
60 }, jalview.bin, "JalviewLite", javax.swing.JApplet, [jalview.api.StructureSelectionManagerProvider, jalview.javascript.JalviewLiteJsApi]);\r
61 Clazz.prepareFields (c$, function () {\r
62 this.javascriptListeners =  new java.util.Vector ();\r
63 this.launcher =  new javax.swing.JButton (jalview.util.MessageManager.getString ("label.start_jalview"));\r
64 this.jshashes =  new java.util.Hashtable ();\r
65 this.jsmessages =  new java.util.Hashtable ();\r
66 this.jsExecQueue =  new java.util.Vector ();\r
67 });\r
68 Clazz.defineMethod (c$, "setParams", \r
69 ($fz = function () {\r
70 jalview.bin.JalviewLite.debug = "true".equalsIgnoreCase (this.getParameter ("debug"));\r
71 this.enableSplitFrame = "true".equalsIgnoreCase (this.getParameter ("enableSplitFrame"));\r
72 this.embedded = "true".equalsIgnoreCase (this.getParameter ("embedded"));\r
73 this.showButton = !"false".equalsIgnoreCase (this.getParameter ("showbutton"));\r
74 this.jalviewServletURL = this.getParameter ("APPLICATION_URL");\r
75 this.startupFile = this.getParameter ("file");\r
76 this.helpUrl = this.getParameter ("jalviewhelpurl");\r
77 this.externalstructureviewer = this.getParameter ("externalstructureviewer");\r
78 this.checkForJmol = !"true".equals (this.getParameter ("nojmol"));\r
79 this.sep = this.getParameter ("separator");\r
80 this.rgb = this.getParameter ("RGB");\r
81 this.labelColour = this.getParameter ("label");\r
82 this.initjscallback = this.getParameter ("oninit");\r
83 this.pdbFile = this.getParameter ("PDBFILE");\r
84 this.sequence = this.getParameter ("PDBSEQ");\r
85 this.jnetFile = this.getParameter ("jnetfile");\r
86 this.annotations = this.getParameter ("annotations");\r
87 this.hideFeatureGroups = this.getParameter ("hidefeaturegroups");\r
88 this.showFeatureGroups = this.getParameter ("showfeaturegroups");\r
89 this.features = this.getParameter ("features");\r
90 this.showFeatureSettings = this.getParameter ("showFeatureSettings");\r
91 this.scoreFile = this.getParameter ("scoreFile");\r
92 this.treeFile = this.getParameter ("tree");\r
93 if (this.treeFile == null) this.treeFile = this.getParameter ("treeFile");\r
94 this.windowWidth = this.getParameter ("windowWidth");\r
95 this.windowHeight = this.getParameter ("windowHeight");\r
96 this.defaultColour = this.getParameter ("defaultColour");\r
97 this.sortBy = this.getParameter ("sortBy");\r
98 this.wrap = this.getParameter ("wrap");\r
99 this.centrecolumnlabels = this.getParameter ("centrecolumnlabels");\r
100 this.userDefinedColour = this.getParameter ("userDefinedColour");\r
101 this.widthScale = this.getParameter ("widthScale");\r
102 this.heightScale = this.getParameter ("heightScale");\r
103 this.upperCase = this.getParameter ("upperCase");\r
104 this.file2 = this.getParameter ("file2");\r
105 }, $fz.isPrivate = true, $fz));\r
106 Clazz.defineMethod (c$, "getDefaultParameter", \r
107 function (name, def) {\r
108 var stn;\r
109 if ((stn = this.getParameter (name)) == null) {\r
110 return def;\r
111 }if (stn.toLowerCase ().equals ("true")) {\r
112 return true;\r
113 }return false;\r
114 }, "~S,~B");\r
115 Clazz.defineMethod (c$, "getLinkParams", \r
116 function (links) {\r
117 var label;\r
118 var url;\r
119 for (var i = 1; i < 10; i++) {\r
120 label = this.getParameter ("linkLabel_" + i);\r
121 url = this.getParameter ("linkURL_" + i);\r
122 if (label != null && url != null) {\r
123 links.addElement (label + "|" + url);\r
124 }}\r
125 }, "java.util.Vector");\r
126 Clazz.defineMethod (c$, "getStructureSelectionManager", \r
127 function () {\r
128 return jalview.structure.StructureSelectionManager.getStructureSelectionManager (this);\r
129 });\r
130 Clazz.defineMethod (c$, "getSelectedSequences", \r
131 function () {\r
132 return this.getSelectedSequencesFrom (this.getDefaultTargetFrame ());\r
133 });\r
134 Clazz.defineMethod (c$, "getSelectedSequences", \r
135 function (sep) {\r
136 return this.getSelectedSequencesFrom (this.getDefaultTargetFrame (), sep);\r
137 }, "~S");\r
138 Clazz.defineMethod (c$, "getSelectedSequencesFrom", \r
139 function (alf) {\r
140 return this.getSelectedSequencesFrom (alf, this.separator);\r
141 }, "jalview.appletgui.AlignFrame");\r
142 Clazz.defineMethod (c$, "getSelectedSequencesFrom", \r
143 function (alf, sep) {\r
144 var result =  new StringBuffer ("");\r
145 if (sep == null || sep.length == 0) {\r
146 sep = this.separator;\r
147 }if (alf.viewport.getSelectionGroup () != null) {\r
148 var seqs = alf.viewport.getSelectionGroup ().getSequencesInOrder (alf.viewport.getAlignment ());\r
149 for (var i = 0; i < seqs.length; i++) {\r
150 result.append (seqs[i].getName ());\r
151 result.append (sep);\r
152 }\r
153 }return result.toString ();\r
154 }, "jalview.appletgui.AlignFrame,~S");\r
155 Clazz.overrideMethod (c$, "highlight", \r
156 function (sequenceId, position, alignedPosition) {\r
157 this.highlightIn (this.getDefaultTargetFrame (), sequenceId, position, alignedPosition);\r
158 }, "~S,~S,~S");\r
159 Clazz.overrideMethod (c$, "highlightIn", \r
160 function (alf, sequenceId, position, alignedPosition) {\r
161 var matcher =  new jalview.analysis.SequenceIdMatcher (alf.viewport.getAlignment ().getSequencesArray ());\r
162 var sq = matcher.findIdMatch (sequenceId);\r
163 if (sq != null) {\r
164 var apos = -1;\r
165 try {\r
166 apos =  new Integer (position).intValue ();\r
167 apos--;\r
168 } catch (ex) {\r
169 if (Clazz.exceptionOf (ex, NumberFormatException)) {\r
170 return;\r
171 } else {\r
172 throw ex;\r
173 }\r
174 }\r
175 var me = this;\r
176 var pos = apos;\r
177 if (alignedPosition != null && (alignedPosition.trim ().length == 0 || alignedPosition.toLowerCase ().indexOf ("false") > -1)) {\r
178 java.awt.EventQueue.invokeLater (((Clazz.isClassDefined ("jalview.bin.JalviewLite$1") ? 0 : jalview.bin.JalviewLite.$JalviewLite$1$ ()), Clazz.innerTypeInstance (jalview.bin.JalviewLite$1, this, Clazz.cloneFinals ("me", me, "sq", sq, "pos", pos))));\r
179 } else {\r
180 java.awt.EventQueue.invokeLater (((Clazz.isClassDefined ("jalview.bin.JalviewLite$2") ? 0 : jalview.bin.JalviewLite.$JalviewLite$2$ ()), Clazz.innerTypeInstance (jalview.bin.JalviewLite$2, this, Clazz.cloneFinals ("me", me, "sq", sq, "pos", pos))));\r
181 }}}, "jalview.appletgui.AlignFrame,~S,~S,~S");\r
182 Clazz.defineMethod (c$, "select", \r
183 function (sequenceIds, columns) {\r
184 this.selectIn (this.getDefaultTargetFrame (), sequenceIds, columns, this.separator);\r
185 }, "~S,~S");\r
186 Clazz.defineMethod (c$, "select", \r
187 function (sequenceIds, columns, sep) {\r
188 this.selectIn (this.getDefaultTargetFrame (), sequenceIds, columns, sep);\r
189 }, "~S,~S,~S");\r
190 Clazz.defineMethod (c$, "selectIn", \r
191 function (alf, sequenceIds, columns) {\r
192 this.selectIn (alf, sequenceIds, columns, this.separator);\r
193 }, "jalview.appletgui.AlignFrame,~S,~S");\r
194 Clazz.defineMethod (c$, "selectIn", \r
195 function (alf, sequenceIds, columns, sep) {\r
196 if (sep == null || sep.length == 0) {\r
197 sep = this.separator;\r
198 } else {\r
199 if (jalview.bin.JalviewLite.debug) {\r
200 System.err.println ("Selecting region using separator string '" + this.separator + "'");\r
201 }}var ids = this.separatorListToArray (sequenceIds, sep);\r
202 var cols = this.separatorListToArray (columns, sep);\r
203 var sel =  new jalview.datamodel.SequenceGroup ();\r
204 var csel =  new jalview.datamodel.ColumnSelection ();\r
205 var al = alf.viewport.getAlignment ();\r
206 var matcher =  new jalview.analysis.SequenceIdMatcher (alf.viewport.getAlignment ().getSequencesArray ());\r
207 var start = 0;\r
208 var end = al.getWidth ();\r
209 var alw = al.getWidth ();\r
210 var seqsfound = true;\r
211 if (ids != null && ids.length > 0) {\r
212 seqsfound = false;\r
213 for (var i = 0; i < ids.length; i++) {\r
214 if (ids[i].trim ().length == 0) {\r
215 continue;\r
216 }var sq = matcher.findIdMatch (ids[i]);\r
217 if (sq != null) {\r
218 seqsfound = true;\r
219 sel.addSequence (sq, false);\r
220 }}\r
221 }var inseqpos = false;\r
222 if (cols != null && cols.length > 0) {\r
223 var seset = false;\r
224 for (var i = 0; i < cols.length; i++) {\r
225 var cl = cols[i].trim ();\r
226 if (cl.length == 0) {\r
227 continue;\r
228 }var p;\r
229 if ((p = cl.indexOf ("-")) > -1) {\r
230 var from = -1;\r
231 var to = -1;\r
232 try {\r
233 from =  new Integer (cl.substring (0, p)).intValue ();\r
234 from--;\r
235 } catch (ex) {\r
236 if (Clazz.exceptionOf (ex, NumberFormatException)) {\r
237 System.err.println ("ERROR: Couldn't parse first integer in range element column selection string '" + cl + "' - format is 'from-to'");\r
238 return;\r
239 } else {\r
240 throw ex;\r
241 }\r
242 }\r
243 try {\r
244 to =  new Integer (cl.substring (p + 1)).intValue ();\r
245 to--;\r
246 } catch (ex) {\r
247 if (Clazz.exceptionOf (ex, NumberFormatException)) {\r
248 System.err.println ("ERROR: Couldn't parse second integer in range element column selection string '" + cl + "' - format is 'from-to'");\r
249 return;\r
250 } else {\r
251 throw ex;\r
252 }\r
253 }\r
254 if (from >= 0 && to >= 0) {\r
255 if (from < to) {\r
256 var t = to;\r
257 to = from;\r
258 to = t;\r
259 }if (!seset) {\r
260 start = from;\r
261 end = to;\r
262 seset = true;\r
263 } else {\r
264 if (start > from) {\r
265 start = from;\r
266 }if (end < to) {\r
267 end = to;\r
268 }}for (var r = from; r <= to; r++) {\r
269 if (r >= 0 && r < alw) {\r
270 csel.addElement (r);\r
271 }}\r
272 if (jalview.bin.JalviewLite.debug) {\r
273 System.err.println ("Range '" + cl + "' deparsed as [" + from + "," + to + "]");\r
274 }} else {\r
275 System.err.println ("ERROR: Invalid Range '" + cl + "' deparsed as [" + from + "," + to + "]");\r
276 }} else {\r
277 var r = -1;\r
278 try {\r
279 r =  new Integer (cl).intValue ();\r
280 r--;\r
281 } catch (ex) {\r
282 if (Clazz.exceptionOf (ex, NumberFormatException)) {\r
283 if (cl.toLowerCase ().equals ("sequence")) {\r
284 inseqpos = true;\r
285 } else {\r
286 System.err.println ("ERROR: Couldn't parse integer from point selection element of column selection string '" + cl + "'");\r
287 return;\r
288 }} else {\r
289 throw ex;\r
290 }\r
291 }\r
292 if (r >= 0 && r <= alw) {\r
293 if (!seset) {\r
294 start = r;\r
295 end = r;\r
296 seset = true;\r
297 } else {\r
298 if (start > r) {\r
299 start = r;\r
300 }if (end < r) {\r
301 end = r;\r
302 }}csel.addElement (r);\r
303 if (jalview.bin.JalviewLite.debug) {\r
304 System.err.println ("Point selection '" + cl + "' deparsed as [" + r + "]");\r
305 }} else {\r
306 System.err.println ("ERROR: Invalid Point selection '" + cl + "' deparsed as [" + r + "]");\r
307 }}}\r
308 }if (seqsfound) {\r
309 if (inseqpos && sel.getSize () > 0) {\r
310 var rs = sel.getSequenceAt (0);\r
311 start = rs.findIndex (start);\r
312 end = rs.findIndex (end);\r
313 if (csel != null) {\r
314 var cs = csel.getSelected ();\r
315 csel.clear ();\r
316 for (var selectedCol, $selectedCol = cs.iterator (); $selectedCol.hasNext () && ((selectedCol = $selectedCol.next ()) || true);) {\r
317 csel.addElement (rs.findIndex ((selectedCol).intValue ()));\r
318 }\r
319 }}sel.setStartRes (start);\r
320 sel.setEndRes (end);\r
321 java.awt.EventQueue.invokeLater (((Clazz.isClassDefined ("jalview.bin.JalviewLite$3") ? 0 : jalview.bin.JalviewLite.$JalviewLite$3$ ()), Clazz.innerTypeInstance (jalview.bin.JalviewLite$3, this, Clazz.cloneFinals ("alf", alf, "sel", sel, "csel", csel))));\r
322 }}, "jalview.appletgui.AlignFrame,~S,~S,~S");\r
323 Clazz.overrideMethod (c$, "getSelectedSequencesAsAlignment", \r
324 function (format, suffix) {\r
325 return this.getSelectedSequencesAsAlignmentFrom (this.getDefaultTargetFrame (), format, suffix);\r
326 }, "~S,~S");\r
327 Clazz.overrideMethod (c$, "getSelectedSequencesAsAlignmentFrom", \r
328 function (alf, format, suffix) {\r
329 try {\r
330 var seqlimits = suffix.equalsIgnoreCase ("true");\r
331 if (alf.viewport.getSelectionGroup () != null) {\r
332 var reply =  new jalview.io.AppletFormatAdapter ().formatSequences (format,  new jalview.datamodel.Alignment (alf.viewport.getSelectionAsNewSequence ()), seqlimits);\r
333 return reply;\r
334 }} catch (ex) {\r
335 if (Clazz.exceptionOf (ex, Exception)) {\r
336 ex.printStackTrace ();\r
337 return "Error retrieving alignment in " + format + " format. ";\r
338 } else {\r
339 throw ex;\r
340 }\r
341 }\r
342 return "";\r
343 }, "jalview.appletgui.AlignFrame,~S,~S");\r
344 Clazz.overrideMethod (c$, "getAlignmentOrder", \r
345 function () {\r
346 return this.getAlignmentOrderFrom (this.getDefaultTargetFrame ());\r
347 });\r
348 Clazz.defineMethod (c$, "getAlignmentOrderFrom", \r
349 function (alf) {\r
350 return this.getAlignmentOrderFrom (alf, this.separator);\r
351 }, "jalview.appletgui.AlignFrame");\r
352 Clazz.defineMethod (c$, "getAlignmentOrderFrom", \r
353 function (alf, sep) {\r
354 var alorder = alf.getAlignViewport ().getAlignment ();\r
355 var order =  new Array (alorder.getHeight ());\r
356 for (var i = 0; i < order.length; i++) {\r
357 order[i] = alorder.getSequenceAt (i).getName ();\r
358 }\r
359 return this.arrayToSeparatorList (order);\r
360 }, "jalview.appletgui.AlignFrame,~S");\r
361 Clazz.defineMethod (c$, "orderBy", \r
362 function (order, undoName) {\r
363 return this.orderBy (order, undoName, this.separator);\r
364 }, "~S,~S");\r
365 Clazz.defineMethod (c$, "orderBy", \r
366 function (order, undoName, sep) {\r
367 return this.orderAlignmentBy (this.getDefaultTargetFrame (), order, undoName, sep);\r
368 }, "~S,~S,~S");\r
369 Clazz.overrideMethod (c$, "orderAlignmentBy", \r
370 function (alf, order, undoName, sep) {\r
371 var ids = this.separatorListToArray (order, sep);\r
372 var sqs = null;\r
373 if (ids != null && ids.length > 0) {\r
374 var matcher =  new jalview.analysis.SequenceIdMatcher (alf.viewport.getAlignment ().getSequencesArray ());\r
375 var s = 0;\r
376 sqs =  new Array (ids.length);\r
377 for (var i = 0; i < ids.length; i++) {\r
378 if (ids[i].trim ().length == 0) {\r
379 continue;\r
380 }var sq = matcher.findIdMatch (ids[i]);\r
381 if (sq != null) {\r
382 sqs[s++] = sq;\r
383 }}\r
384 if (s > 0) {\r
385 var sqq =  new Array (s);\r
386 System.arraycopy (sqs, 0, sqq, 0, s);\r
387 sqs = sqq;\r
388 } else {\r
389 sqs = null;\r
390 }}if (sqs == null) {\r
391 return "";\r
392 };var aorder =  new jalview.datamodel.AlignmentOrder (sqs);\r
393 if (undoName != null && undoName.trim ().length == 0) {\r
394 undoName = null;\r
395 }var _undoName = undoName;\r
396 return alf.sortBy (aorder, _undoName) ? "true" : "";\r
397 }, "jalview.appletgui.AlignFrame,~S,~S,~S");\r
398 Clazz.defineMethod (c$, "getAlignment", \r
399 function (format) {\r
400 return this.getAlignmentFrom (this.getDefaultTargetFrame (), format, "true");\r
401 }, "~S");\r
402 Clazz.defineMethod (c$, "getAlignmentFrom", \r
403 function (alf, format) {\r
404 return this.getAlignmentFrom (alf, format, "true");\r
405 }, "jalview.appletgui.AlignFrame,~S");\r
406 Clazz.defineMethod (c$, "getAlignment", \r
407 function (format, suffix) {\r
408 return this.getAlignmentFrom (this.getDefaultTargetFrame (), format, suffix);\r
409 }, "~S,~S");\r
410 Clazz.defineMethod (c$, "getAlignmentFrom", \r
411 function (alf, format, suffix) {\r
412 try {\r
413 var seqlimits = suffix.equalsIgnoreCase ("true");\r
414 var reply =  new jalview.io.AppletFormatAdapter ().formatSequences (format, alf.viewport.getAlignment (), seqlimits);\r
415 return reply;\r
416 } catch (ex) {\r
417 if (Clazz.exceptionOf (ex, Exception)) {\r
418 ex.printStackTrace ();\r
419 return "Error retrieving alignment in " + format + " format. ";\r
420 } else {\r
421 throw ex;\r
422 }\r
423 }\r
424 }, "jalview.appletgui.AlignFrame,~S,~S");\r
425 Clazz.overrideMethod (c$, "loadAnnotation", \r
426 function (annotation) {\r
427 this.loadAnnotationFrom (this.getDefaultTargetFrame (), annotation);\r
428 }, "~S");\r
429 Clazz.overrideMethod (c$, "loadAnnotationFrom", \r
430 function (alf, annotation) {\r
431 if ( new jalview.io.AnnotationFile ().annotateAlignmentView (alf.getAlignViewport (), annotation, jalview.io.AppletFormatAdapter.PASTE)) {\r
432 alf.alignPanel.fontChanged ();\r
433 alf.alignPanel.setScrollValues (0, 0);\r
434 } else {\r
435 alf.parseFeaturesFile (annotation, jalview.io.AppletFormatAdapter.PASTE);\r
436 }}, "jalview.appletgui.AlignFrame,~S");\r
437 Clazz.overrideMethod (c$, "loadFeatures", \r
438 function (features, autoenabledisplay) {\r
439 this.loadFeaturesFrom (this.getDefaultTargetFrame (), features, autoenabledisplay);\r
440 }, "~S,~B");\r
441 Clazz.overrideMethod (c$, "loadFeaturesFrom", \r
442 function (alf, features, autoenabledisplay) {\r
443 return alf.parseFeaturesFile (features, jalview.io.AppletFormatAdapter.PASTE, autoenabledisplay);\r
444 }, "jalview.appletgui.AlignFrame,~S,~B");\r
445 Clazz.overrideMethod (c$, "getFeatures", \r
446 function (format) {\r
447 return this.getFeaturesFrom (this.getDefaultTargetFrame (), format);\r
448 }, "~S");\r
449 Clazz.overrideMethod (c$, "getFeaturesFrom", \r
450 function (alf, format) {\r
451 return alf.outputFeatures (false, format);\r
452 }, "jalview.appletgui.AlignFrame,~S");\r
453 Clazz.overrideMethod (c$, "getAnnotation", \r
454 function () {\r
455 return this.getAnnotationFrom (this.getDefaultTargetFrame ());\r
456 });\r
457 Clazz.overrideMethod (c$, "getAnnotationFrom", \r
458 function (alf) {\r
459 return alf.outputAnnotations (false);\r
460 }, "jalview.appletgui.AlignFrame");\r
461 Clazz.defineMethod (c$, "newView", \r
462 function () {\r
463 return this.newViewFrom (this.getDefaultTargetFrame ());\r
464 });\r
465 Clazz.defineMethod (c$, "newView", \r
466 function (name) {\r
467 return this.newViewFrom (this.getDefaultTargetFrame (), name);\r
468 }, "~S");\r
469 Clazz.defineMethod (c$, "newViewFrom", \r
470 function (alf) {\r
471 return alf.newView (null);\r
472 }, "jalview.appletgui.AlignFrame");\r
473 Clazz.defineMethod (c$, "newViewFrom", \r
474 function (alf, name) {\r
475 return alf.newView (name);\r
476 }, "jalview.appletgui.AlignFrame,~S");\r
477 Clazz.overrideMethod (c$, "loadAlignment", \r
478 function (text, title) {\r
479 var al = null;\r
480 var format =  new jalview.io.IdentifyFile ().Identify (text, jalview.io.AppletFormatAdapter.PASTE);\r
481 try {\r
482 al =  new jalview.io.AppletFormatAdapter ().readFile (text, jalview.io.AppletFormatAdapter.PASTE, format);\r
483 if (al.getHeight () > 0) {\r
484 return  new jalview.appletgui.AlignFrame (al, this, title, false);\r
485 }} catch (ex) {\r
486 if (Clazz.exceptionOf (ex, java.io.IOException)) {\r
487 ex.printStackTrace ();\r
488 } else {\r
489 throw ex;\r
490 }\r
491 }\r
492 return null;\r
493 }, "~S,~S");\r
494 Clazz.defineMethod (c$, "setMouseoverListener", \r
495 function (listener) {\r
496 this.setMouseoverListener (this.currentAlignFrame, listener);\r
497 }, "~S");\r
498 Clazz.defineMethod (c$, "setMouseoverListener", \r
499 function (af, listener) {\r
500 if (listener != null) {\r
501 listener = listener.trim ();\r
502 if (listener.length == 0) {\r
503 System.err.println ("jalview Javascript error: Ignoring empty function for mouseover listener.");\r
504 return;\r
505 }}var mol =  new jalview.javascript.MouseOverListener (this, af, listener);\r
506 this.javascriptListeners.addElement (mol);\r
507 jalview.structure.StructureSelectionManager.getStructureSelectionManager (this).addStructureViewerListener (mol);\r
508 if (jalview.bin.JalviewLite.debug) {\r
509 System.err.println ("Added a mouseover listener for " + ((af == null) ? "All frames" : "Just views for " + af.getAlignViewport ().getSequenceSetId ()));\r
510 System.err.println ("There are now " + this.javascriptListeners.size () + " listeners in total.");\r
511 }}, "jalview.appletgui.AlignFrame,~S");\r
512 Clazz.defineMethod (c$, "setSelectionListener", \r
513 function (listener) {\r
514 this.setSelectionListener (null, listener);\r
515 }, "~S");\r
516 Clazz.defineMethod (c$, "setSelectionListener", \r
517 function (af, listener) {\r
518 if (listener != null) {\r
519 listener = listener.trim ();\r
520 if (listener.length == 0) {\r
521 System.err.println ("jalview Javascript error: Ignoring empty function for selection listener.");\r
522 return;\r
523 }}var mol =  new jalview.javascript.JsSelectionSender (this, af, listener);\r
524 this.javascriptListeners.addElement (mol);\r
525 jalview.structure.StructureSelectionManager.getStructureSelectionManager (this).addSelectionListener (mol);\r
526 if (jalview.bin.JalviewLite.debug) {\r
527 System.err.println ("Added a selection listener for " + ((af == null) ? "All frames" : "Just views for " + af.getAlignViewport ().getSequenceSetId ()));\r
528 System.err.println ("There are now " + this.javascriptListeners.size () + " listeners in total.");\r
529 }}, "jalview.appletgui.AlignFrame,~S");\r
530 Clazz.overrideMethod (c$, "setStructureListener", \r
531 function (listener, modelSet) {\r
532 if (listener != null) {\r
533 listener = listener.trim ();\r
534 if (listener.length == 0) {\r
535 System.err.println ("jalview Javascript error: Ignoring empty function for selection listener.");\r
536 return;\r
537 }}var mol =  new jalview.javascript.MouseOverStructureListener (this, listener, this.separatorListToArray (modelSet));\r
538 this.javascriptListeners.addElement (mol);\r
539 jalview.structure.StructureSelectionManager.getStructureSelectionManager (this).addStructureViewerListener (mol);\r
540 if (jalview.bin.JalviewLite.debug) {\r
541 System.err.println ("Added a javascript structure viewer listener '" + listener + "'");\r
542 System.err.println ("There are now " + this.javascriptListeners.size () + " listeners in total.");\r
543 }}, "~S,~S");\r
544 Clazz.overrideMethod (c$, "removeJavascriptListener", \r
545 function (af, listener) {\r
546 if (listener != null) {\r
547 listener = listener.trim ();\r
548 if (listener.length == 0) {\r
549 listener = null;\r
550 }}var rprt = false;\r
551 for (var ms = 0, msSize = this.javascriptListeners.size (); ms < msSize; ) {\r
552 var lstn = this.javascriptListeners.elementAt (ms);\r
553 var lstner = lstn;\r
554 if ((af == null || lstner.getAlignFrame () === af) && (listener == null || lstner.getListenerFunction ().equals (listener))) {\r
555 this.javascriptListeners.removeElement (lstner);\r
556 msSize--;\r
557 if (Clazz.instanceOf (lstner, jalview.structure.SelectionListener)) {\r
558 jalview.structure.StructureSelectionManager.getStructureSelectionManager (this).removeSelectionListener (lstner);\r
559 } else {\r
560 jalview.structure.StructureSelectionManager.getStructureSelectionManager (this).removeStructureViewerListener (lstner, null);\r
561 }rprt = jalview.bin.JalviewLite.debug;\r
562 if (jalview.bin.JalviewLite.debug) {\r
563 System.err.println ("Removed listener '" + listener + "'");\r
564 }} else {\r
565 ms++;\r
566 }}\r
567 if (rprt) {\r
568 System.err.println ("There are now " + this.javascriptListeners.size () + " listeners in total.");\r
569 }}, "jalview.appletgui.AlignFrame,~S");\r
570 Clazz.overrideMethod (c$, "stop", \r
571 function () {\r
572 System.err.println ("Applet " + this.getName () + " stop().");\r
573 this.tidyUp ();\r
574 });\r
575 Clazz.overrideMethod (c$, "destroy", \r
576 function () {\r
577 System.err.println ("Applet " + this.getName () + " destroy().");\r
578 this.tidyUp ();\r
579 });\r
580 Clazz.defineMethod (c$, "tidyUp", \r
581 ($fz = function () {\r
582 this.removeAll ();\r
583 if (this.currentAlignFrame != null && this.currentAlignFrame.viewport != null && this.currentAlignFrame.viewport.applet != null) {\r
584 var av = this.currentAlignFrame.viewport;\r
585 this.currentAlignFrame.closeMenuItem_actionPerformed ();\r
586 av.applet = null;\r
587 this.currentAlignFrame = null;\r
588 }if (this.javascriptListeners != null) {\r
589 while (this.javascriptListeners.size () > 0) {\r
590 var mol = this.javascriptListeners.elementAt (0);\r
591 this.javascriptListeners.removeElement (mol);\r
592 if (Clazz.instanceOf (mol, jalview.structure.SelectionListener)) {\r
593 jalview.structure.StructureSelectionManager.getStructureSelectionManager (this).removeSelectionListener (mol);\r
594 } else {\r
595 jalview.structure.StructureSelectionManager.getStructureSelectionManager (this).removeStructureViewerListener (mol, null);\r
596 }mol.jvlite = null;\r
597 }\r
598 }if (this.jsFunctionExec != null) {\r
599 this.jsFunctionExec.stopQueue ();\r
600 this.jsFunctionExec.jvlite = null;\r
601 }this.initialAlignFrame = null;\r
602 this.jsFunctionExec = null;\r
603 this.javascriptListeners = null;\r
604 jalview.structure.StructureSelectionManager.release (this);\r
605 }, $fz.isPrivate = true, $fz));\r
606 Clazz.overrideMethod (c$, "mouseOverStructure", \r
607 function (pdbResNum, chain, pdbfile) {\r
608 var me = this;\r
609 java.awt.EventQueue.invokeLater (((Clazz.isClassDefined ("jalview.bin.JalviewLite$4") ? 0 : jalview.bin.JalviewLite.$JalviewLite$4$ ()), Clazz.innerTypeInstance (jalview.bin.JalviewLite$4, this, Clazz.cloneFinals ("me", me, "pdbResNum", pdbResNum, "chain", chain, "pdbfile", pdbfile))));\r
610 }, "~S,~S,~S");\r
611 Clazz.overrideMethod (c$, "scrollViewToIn", \r
612 function (alf, topRow, leftHandColumn) {\r
613 java.awt.EventQueue.invokeLater (((Clazz.isClassDefined ("jalview.bin.JalviewLite$5") ? 0 : jalview.bin.JalviewLite.$JalviewLite$5$ ()), Clazz.innerTypeInstance (jalview.bin.JalviewLite$5, this, Clazz.cloneFinals ("alf", alf, "topRow", topRow, "leftHandColumn", leftHandColumn))));\r
614 }, "jalview.appletgui.AlignFrame,~S,~S");\r
615 Clazz.overrideMethod (c$, "scrollViewToRowIn", \r
616 function (alf, topRow) {\r
617 java.awt.EventQueue.invokeLater (((Clazz.isClassDefined ("jalview.bin.JalviewLite$6") ? 0 : jalview.bin.JalviewLite.$JalviewLite$6$ ()), Clazz.innerTypeInstance (jalview.bin.JalviewLite$6, this, Clazz.cloneFinals ("alf", alf, "topRow", topRow))));\r
618 }, "jalview.appletgui.AlignFrame,~S");\r
619 Clazz.overrideMethod (c$, "scrollViewToColumnIn", \r
620 function (alf, leftHandColumn) {\r
621 java.awt.EventQueue.invokeLater (((Clazz.isClassDefined ("jalview.bin.JalviewLite$7") ? 0 : jalview.bin.JalviewLite.$JalviewLite$7$ ()), Clazz.innerTypeInstance (jalview.bin.JalviewLite$7, this, Clazz.cloneFinals ("alf", alf, "leftHandColumn", leftHandColumn))));\r
622 }, "jalview.appletgui.AlignFrame,~S");\r
623 c$.initBuildDetails = Clazz.defineMethod (c$, "initBuildDetails", \r
624 ($fz = function () {\r
625 if (jalview.bin.JalviewLite.builddate == null) {\r
626 jalview.bin.JalviewLite.builddate = "unknown";\r
627 jalview.bin.JalviewLite.version = "test";\r
628 jalview.bin.JalviewLite.installation = "Webstart";\r
629 var url = jalview.bin.JalviewLite.getResource ("/.build_properties");\r
630 if (url != null) {\r
631 try {\r
632 var reader =  new java.io.BufferedReader ( new java.io.InputStreamReader (url.openStream ()));\r
633 var line;\r
634 while ((line = reader.readLine ()) != null) {\r
635 if (line.indexOf ("VERSION") > -1) {\r
636 jalview.bin.JalviewLite.version = line.substring (line.indexOf ("=") + 1);\r
637 }if (line.indexOf ("BUILD_DATE") > -1) {\r
638 jalview.bin.JalviewLite.builddate = line.substring (line.indexOf ("=") + 1);\r
639 }if (line.indexOf ("INSTALLATION") > -1) {\r
640 jalview.bin.JalviewLite.installation = line.substring (line.indexOf ("=") + 1);\r
641 }}\r
642 } catch (ex) {\r
643 if (Clazz.exceptionOf (ex, Exception)) {\r
644 ex.printStackTrace ();\r
645 } else {\r
646 throw ex;\r
647 }\r
648 }\r
649 }}}, $fz.isPrivate = true, $fz));\r
650 c$.getBuildDate = Clazz.defineMethod (c$, "getBuildDate", \r
651 function () {\r
652 jalview.bin.JalviewLite.initBuildDetails ();\r
653 return jalview.bin.JalviewLite.builddate;\r
654 });\r
655 c$.getInstallation = Clazz.defineMethod (c$, "getInstallation", \r
656 function () {\r
657 jalview.bin.JalviewLite.initBuildDetails ();\r
658 return jalview.bin.JalviewLite.installation;\r
659 });\r
660 c$.getVersion = Clazz.defineMethod (c$, "getVersion", \r
661 function () {\r
662 jalview.bin.JalviewLite.initBuildDetails ();\r
663 return jalview.bin.JalviewLite.version;\r
664 });\r
665 Clazz.overrideMethod (c$, "init", \r
666 function () {\r
667 this.setParams ();\r
668 try {\r
669 if (jalview.bin.JalviewLite.debug) {\r
670 System.err.println ("Applet context is '" + this.getAppletContext ().getClass ().toString () + "'");\r
671 }var scriptObject = netscape.javascript.JSObject.getWindow (this);\r
672 if (jalview.bin.JalviewLite.debug && scriptObject != null) {\r
673 System.err.println ("Applet has Javascript callback support.");\r
674 }} catch (ex) {\r
675 if (Clazz.exceptionOf (ex, Exception)) {\r
676 System.err.println ("Warning: No JalviewLite javascript callbacks available.");\r
677 if (jalview.bin.JalviewLite.debug) {\r
678 ex.printStackTrace ();\r
679 }} else {\r
680 throw ex;\r
681 }\r
682 }\r
683 if (jalview.bin.JalviewLite.debug) {\r
684 System.err.println ("JalviewLite Version " + jalview.bin.JalviewLite.getVersion ());\r
685 System.err.println ("Build Date : " + jalview.bin.JalviewLite.getBuildDate ());\r
686 System.err.println ("Installation : " + jalview.bin.JalviewLite.getInstallation ());\r
687 }if (this.externalstructureviewer != null) {\r
688 this.useXtrnalSviewer = this.externalstructureviewer.trim ().toLowerCase ().equals ("true");\r
689 }if (this.sep != null) {\r
690 if (this.sep.length > 0) {\r
691 this.separator = this.sep;\r
692 if (jalview.bin.JalviewLite.debug) {\r
693 System.err.println ("Separator set to '" + this.separator + "'");\r
694 }} else {\r
695 throw  new Error (jalview.util.MessageManager.getString ("error.invalid_separator_parameter"));\r
696 }}var r = 255;\r
697 var g = 255;\r
698 var b = 255;\r
699 if (this.rgb != null) {\r
700 try {\r
701 r = Integer.parseInt (this.rgb.substring (0, 2), 16);\r
702 g = Integer.parseInt (this.rgb.substring (2, 4), 16);\r
703 b = Integer.parseInt (this.rgb.substring (4, 6), 16);\r
704 } catch (ex) {\r
705 if (Clazz.exceptionOf (ex, Exception)) {\r
706 r = 255;\r
707 g = 255;\r
708 b = 255;\r
709 } else {\r
710 throw ex;\r
711 }\r
712 }\r
713 }this.rgb = this.labelColour;\r
714 if (this.rgb != null) {\r
715 this.launcher.setLabel (this.rgb);\r
716 }this.setBackground ( new java.awt.Color (r, g, b));\r
717 if (this.startupFile == null) {\r
718 var data =  new StringBuffer ("PASTE");\r
719 var i = 1;\r
720 while ((this.startupFile = this.getParameter ("sequence" + i)) != null) {\r
721 data.append (this.startupFile.toString () + "\n");\r
722 i++;\r
723 }\r
724 if (data.length () > 5) {\r
725 this.startupFile = data.toString ();\r
726 }}if (!this.enableSplitFrame) {\r
727 this.file2 = null;\r
728 }if (this.embedded) {\r
729 var loader = Clazz.innerTypeInstance (jalview.bin.JalviewLite.LoadingThread, this, null, this.startupFile, this.file2, this);\r
730 {\r
731 loader.run();\r
732 }} else if (this.startupFile != null) {\r
733 if (!this.showButton) {\r
734 var loader = Clazz.innerTypeInstance (jalview.bin.JalviewLite.LoadingThread, this, null, this.startupFile, this.file2, this);\r
735 loader.start ();\r
736 } else {\r
737 this.add (this.launcher);\r
738 this.launcher.addActionListener (((Clazz.isClassDefined ("jalview.bin.JalviewLite$8") ? 0 : jalview.bin.JalviewLite.$JalviewLite$8$ ()), Clazz.innerTypeInstance (jalview.bin.JalviewLite$8, this, null)));\r
739 }} else {\r
740 this.startupFile = "NO FILE";\r
741 this.fileFound = false;\r
742 this.callInitCallback ();\r
743 }});\r
744 Clazz.defineMethod (c$, "initLiveConnect", \r
745 ($fz = function () {\r
746 var notFailed = false;\r
747 var tries = 0;\r
748 while (!notFailed && tries < 10) {\r
749 if (tries > 0) {\r
750 System.err.println ("LiveConnect request thread going to sleep.");\r
751 }try {\r
752 Thread.sleep (700 * (1 + tries));\r
753 } catch (q) {\r
754 if (Clazz.exceptionOf (q, InterruptedException)) {\r
755 } else {\r
756 throw q;\r
757 }\r
758 }\r
759 ;if (tries++ > 0) {\r
760 System.err.println ("LiveConnect request thread woken up.");\r
761 }try {\r
762 var scriptObject = netscape.javascript.JSObject.getWindow (this);\r
763 if (scriptObject.eval ("navigator") != null) {\r
764 notFailed = true;\r
765 }} catch (jsex) {\r
766 if (Clazz.exceptionOf (jsex, Exception)) {\r
767 System.err.println ("Attempt " + tries + " to access LiveConnect javascript failed.");\r
768 } else {\r
769 throw jsex;\r
770 }\r
771 }\r
772 }\r
773 }, $fz.isPrivate = true, $fz));\r
774 Clazz.defineMethod (c$, "callInitCallback", \r
775 ($fz = function () {\r
776 if (this.initjscallback == null) {\r
777 return;\r
778 }this.initjscallback = this.initjscallback.trim ();\r
779 if (this.initjscallback.length > 0) {\r
780 var scriptObject = null;\r
781 try {\r
782 scriptObject = netscape.javascript.JSObject.getWindow (this);\r
783 } catch (ex) {\r
784 if (Clazz.exceptionOf (ex, Exception)) {\r
785 } else {\r
786 throw ex;\r
787 }\r
788 }\r
789 ;this.initLiveConnect ();\r
790 if (scriptObject != null) {\r
791 try {\r
792  new jalview.javascript.JSFunctionExec (this).executeJavascriptFunction (true, this.initjscallback, null, "Calling oninit callback '" + this.initjscallback + "'.");\r
793 } catch (e) {\r
794 if (Clazz.exceptionOf (e, Exception)) {\r
795 System.err.println ("Exception when executing _oninit callback '" + this.initjscallback + "'.");\r
796 e.printStackTrace ();\r
797 } else {\r
798 throw e;\r
799 }\r
800 }\r
801 } else {\r
802 System.err.println ("Not executing _oninit callback '" + this.initjscallback + "' - no scripting allowed.");\r
803 }}}, $fz.isPrivate = true, $fz));\r
804 c$.addFrame = Clazz.defineMethod (c$, "addFrame", \r
805 function (frame, title, width, height) {\r
806 frame.setLocation (jalview.bin.JalviewLite.lastFrameX, jalview.bin.JalviewLite.lastFrameY);\r
807 jalview.bin.JalviewLite.lastFrameX += 40;\r
808 jalview.bin.JalviewLite.lastFrameY += 40;\r
809 frame.setSize (width, height);\r
810 frame.setTitle (title);\r
811 frame.addWindowListener (((Clazz.isClassDefined ("jalview.bin.JalviewLite$9") ? 0 : jalview.bin.JalviewLite.$JalviewLite$9$ ()), Clazz.innerTypeInstance (jalview.bin.JalviewLite$9, this, Clazz.cloneFinals ("frame", frame))));\r
812 frame.setVisible (true);\r
813 }, "javax.swing.JFrame,~S,~N,~N");\r
814 Clazz.defineMethod (c$, "paintComponent", \r
815 function (g) {\r
816 if (!this.fileFound) {\r
817 g.setColor ( new java.awt.Color (200, 200, 200));\r
818 g.setColor (java.awt.Color.cyan);\r
819 g.fillRect (0, 0, this.getSize ().width, this.getSize ().height);\r
820 g.setColor (java.awt.Color.red);\r
821 g.drawString (jalview.util.MessageManager.getString ("label.jalview_cannot_open_file"), 5, 15);\r
822 g.drawString ("\"" + this.startupFile + "\"", 5, 30);\r
823 } else if (this.embedded && !this.haveShownLoadMessage) {\r
824 g.setColor (java.awt.Color.black);\r
825 g.setFont ( new java.awt.Font ("Arial", 1, 24));\r
826 g.drawString (jalview.util.MessageManager.getString ("label.jalview_applet"), 50, Clazz.doubleToInt (this.getSize ().height / 2) - 30);\r
827 g.drawString (jalview.util.MessageManager.getString ("label.loading_data") + "...", 50, Clazz.doubleToInt (this.getSize ().height / 2));\r
828 this.haveShownLoadMessage = true;\r
829 }}, "java.awt.Graphics");\r
830 Clazz.defineMethod (c$, "getAppletWindow", \r
831 function (class1) {\r
832 var wnds =  new java.util.Vector ();\r
833 var cmp = this.getComponents ();\r
834 if (cmp != null) {\r
835 for (var i = 0; i < cmp.length; i++) {\r
836 if (class1.isAssignableFrom (cmp[i].getClass ())) {\r
837 wnds.addElement (cmp);\r
838 }}\r
839 }return wnds;\r
840 }, "Class");\r
841 Clazz.defineMethod (c$, "getDefaultTargetFrame", \r
842 function () {\r
843 if (this.currentAlignFrame != null) {\r
844 return this.currentAlignFrame;\r
845 }if (this.initialAlignFrame != null) {\r
846 return this.initialAlignFrame;\r
847 }System.err.println ("Implementation error: Jalview Applet API cannot work out which AlignFrame to use.");\r
848 return null;\r
849 });\r
850 Clazz.defineMethod (c$, "separatorListToArray", \r
851 function (list) {\r
852 return this.separatorListToArray (list, this.separator);\r
853 }, "~S");\r
854 Clazz.defineMethod (c$, "separatorListToArray", \r
855 function (list, separator) {\r
856 var seplen = separator.length;\r
857 if (list == null || list.equals ("") || list.equals (separator)) {\r
858 return null;\r
859 }var jv =  new java.util.Vector ();\r
860 var cp = 0;\r
861 var pos;\r
862 while ((pos = list.indexOf (separator, cp)) > cp) {\r
863 jv.addElement (list.substring (cp, pos));\r
864 cp = pos + seplen;\r
865 }\r
866 if (cp < list.length) {\r
867 var c = list.substring (cp);\r
868 if (!c.equals (separator)) {\r
869 jv.addElement (c);\r
870 }}if (jv.size () > 0) {\r
871 var v =  new Array (jv.size ());\r
872 for (var i = 0; i < v.length; i++) {\r
873 v[i] = jv.elementAt (i);\r
874 }\r
875 jv.removeAllElements ();\r
876 if (jalview.bin.JalviewLite.debug) {\r
877 System.err.println ("Array from '" + separator + "' separated List:\n" + v.length);\r
878 for (var i = 0; i < v.length; i++) {\r
879 System.err.println ("item " + i + " '" + v[i] + "'");\r
880 }\r
881 }return v;\r
882 }if (jalview.bin.JalviewLite.debug) {\r
883 System.err.println ("Empty Array from '" + separator + "' separated List");\r
884 }return null;\r
885 }, "~S,~S");\r
886 Clazz.defineMethod (c$, "arrayToSeparatorList", \r
887 function (list) {\r
888 return this.arrayToSeparatorList (list, this.separator);\r
889 }, "~A");\r
890 Clazz.defineMethod (c$, "arrayToSeparatorList", \r
891 function (list, separator) {\r
892 var v =  new StringBuffer ();\r
893 if (list != null && list.length > 0) {\r
894 for (var i = 0, iSize = list.length; i < iSize; i++) {\r
895 if (list[i] != null) {\r
896 if (i > 0) {\r
897 v.append (separator);\r
898 }v.append (list[i]);\r
899 }}\r
900 if (jalview.bin.JalviewLite.debug) {\r
901 System.err.println ("Returning '" + separator + "' separated List:\n");\r
902 System.err.println (v);\r
903 }return v.toString ();\r
904 }if (jalview.bin.JalviewLite.debug) {\r
905 System.err.println ("Returning empty '" + separator + "' separated List\n");\r
906 }return "" + separator;\r
907 }, "~A,~S");\r
908 Clazz.overrideMethod (c$, "getFeatureGroups", \r
909 function () {\r
910 var lst = this.arrayToSeparatorList (this.getDefaultTargetFrame ().getFeatureGroups ());\r
911 return lst;\r
912 });\r
913 Clazz.overrideMethod (c$, "getFeatureGroupsOn", \r
914 function (alf) {\r
915 var lst = this.arrayToSeparatorList (alf.getFeatureGroups ());\r
916 return lst;\r
917 }, "jalview.appletgui.AlignFrame");\r
918 Clazz.overrideMethod (c$, "getFeatureGroupsOfState", \r
919 function (visible) {\r
920 return this.arrayToSeparatorList (this.getDefaultTargetFrame ().getFeatureGroupsOfState (visible));\r
921 }, "~B");\r
922 Clazz.overrideMethod (c$, "getFeatureGroupsOfStateOn", \r
923 function (alf, visible) {\r
924 return this.arrayToSeparatorList (alf.getFeatureGroupsOfState (visible));\r
925 }, "jalview.appletgui.AlignFrame,~B");\r
926 Clazz.overrideMethod (c$, "setFeatureGroupStateOn", \r
927 function (alf, groups, state) {\r
928 var st = state;\r
929 java.awt.EventQueue.invokeLater (((Clazz.isClassDefined ("jalview.bin.JalviewLite$10") ? 0 : jalview.bin.JalviewLite.$JalviewLite$10$ ()), Clazz.innerTypeInstance (jalview.bin.JalviewLite$10, this, Clazz.cloneFinals ("alf", alf, "groups", groups, "st", st))));\r
930 }, "jalview.appletgui.AlignFrame,~S,~B");\r
931 Clazz.overrideMethod (c$, "setFeatureGroupState", \r
932 function (groups, state) {\r
933 this.setFeatureGroupStateOn (this.getDefaultTargetFrame (), groups, state);\r
934 }, "~S,~B");\r
935 Clazz.overrideMethod (c$, "getSeparator", \r
936 function () {\r
937 return this.separator;\r
938 });\r
939 Clazz.overrideMethod (c$, "setSeparator", \r
940 function (separator) {\r
941 if (separator == null || separator.length < 1) {\r
942 separator = "\u00ac";\r
943 }this.separator = separator;\r
944 if (jalview.bin.JalviewLite.debug) {\r
945 System.err.println ("Default Separator now: '" + separator + "'");\r
946 }}, "~S");\r
947 Clazz.overrideMethod (c$, "addPdbFile", \r
948 function (alFrame, sequenceId, pdbEntryString, pdbFile) {\r
949 return alFrame.addPdbFile (sequenceId, pdbEntryString, pdbFile);\r
950 }, "jalview.appletgui.AlignFrame,~S,~S,~S");\r
951 Clazz.defineMethod (c$, "setAlignPdbStructures", \r
952 function (alignPdbStructures) {\r
953 this.alignPdbStructures = alignPdbStructures;\r
954 }, "~B");\r
955 Clazz.defineMethod (c$, "isAlignPdbStructures", \r
956 function () {\r
957 return this.alignPdbStructures;\r
958 });\r
959 Clazz.overrideMethod (c$, "start", \r
960 function () {\r
961 });\r
962 Clazz.defineMethod (c$, "setJsMessageSet", \r
963 function (messageclass, viewId, colcommands) {\r
964 var msgset = this.jsmessages.get (messageclass);\r
965 if (msgset == null) {\r
966 msgset =  new java.util.Hashtable ();\r
967 this.jsmessages.put (messageclass, msgset);\r
968 }msgset.put (viewId, colcommands);\r
969 var l =  Clazz.newLongArray (colcommands.length, 0);\r
970 for (var i = 0; i < colcommands.length; i++) {\r
971 l[i] = colcommands[i].hashCode ();\r
972 }\r
973 this.jshashes.put (messageclass + "|" + viewId, l);\r
974 }, "~S,~S,~A");\r
975 Clazz.overrideMethod (c$, "getJsMessage", \r
976 function (messageclass, viewId) {\r
977 var msgset = this.jsmessages.get (messageclass);\r
978 if (msgset != null) {\r
979 var msgs = msgset.get (viewId);\r
980 if (msgs != null) {\r
981 for (var i = 0; i < msgs.length; i++) {\r
982 if (msgs[i] != null) {\r
983 var m = msgs[i];\r
984 msgs[i] = null;\r
985 return m;\r
986 }}\r
987 }}return "";\r
988 }, "~S,~S");\r
989 Clazz.defineMethod (c$, "isJsMessageSetChanged", \r
990 function (string, string2, colcommands) {\r
991 var l = this.jshashes.get (string + "|" + string2);\r
992 if (l == null && colcommands != null) {\r
993 return true;\r
994 }for (var i = 0; i < colcommands.length; i++) {\r
995 if (l[i] != colcommands[i].hashCode ()) {\r
996 return true;\r
997 }}\r
998 return false;\r
999 }, "~S,~S,~A");\r
1000 Clazz.defineMethod (c$, "getJsExecQueue", \r
1001 function () {\r
1002 return this.jsExecQueue;\r
1003 });\r
1004 Clazz.defineMethod (c$, "setExecutor", \r
1005 function (jsFunctionExec2) {\r
1006 this.jsFunctionExec = jsFunctionExec2;\r
1007 }, "jalview.javascript.JSFunctionExec");\r
1008 Clazz.defineMethod (c$, "getDefaultColourParameter", \r
1009 function (colparam, defcolour) {\r
1010 var colprop = this.getParameter (colparam);\r
1011 if (colprop == null || colprop.trim ().length == 0) {\r
1012 return defcolour;\r
1013 }var col = jalview.schemes.ColourSchemeProperty.getAWTColorFromName (colprop);\r
1014 if (col == null) {\r
1015 try {\r
1016 col =  new jalview.schemes.UserColourScheme (colprop).findColour ('A');\r
1017 } catch (ex) {\r
1018 if (Clazz.exceptionOf (ex, Exception)) {\r
1019 System.err.println ("Couldn't parse '" + colprop + "' as a colour for " + colparam);\r
1020 col = null;\r
1021 } else {\r
1022 throw ex;\r
1023 }\r
1024 }\r
1025 }return (col == null) ? defcolour : col;\r
1026 }, "~S,java.awt.Color");\r
1027 Clazz.defineMethod (c$, "openJalviewHelpUrl", \r
1028 function () {\r
1029 if (this.helpUrl == null || this.helpUrl.trim ().length < 5) {\r
1030 this.helpUrl = "http://www.jalview.org/help.html";\r
1031 }this.showURL (this.helpUrl, "HELP");\r
1032 });\r
1033 Clazz.defineMethod (c$, "resolveUrlForLocalOrAbsolute", \r
1034 ($fz = function (url, localref) {\r
1035 var codebase = localref.toString ();\r
1036 var pt = codebase.indexOf ("?");\r
1037 if (pt < 0) pt = codebase.length;\r
1038 codebase = codebase.substring (0, pt);\r
1039 codebase = codebase.substring (0, codebase.lastIndexOf ("/") + 1);\r
1040 if (url.indexOf ("/") == 0 && !localref.getProtocol ().equals ("file")) {\r
1041 pt = codebase.indexOf ("/", 8);\r
1042 return codebase.substring (0, pt) + url;\r
1043 }return codebase + url;\r
1044 }, $fz.isPrivate = true, $fz), "~S,java.net.URL");\r
1045 Clazz.defineMethod (c$, "showURL", \r
1046 function (url, target) {\r
1047 try {\r
1048 if (url.indexOf (":") == -1) {\r
1049 var prepend;\r
1050 url = this.resolveUrlForLocalOrAbsolute (url, prepend = this.getDefaultParameter ("resolvetocodebase", false) ? this.getDocumentBase () : this.getCodeBase ());\r
1051 if (jalview.bin.JalviewLite.debug) {\r
1052 System.err.println ("Show url (prepended " + prepend + " - toggle resolvetocodebase if code/docbase resolution is wrong): " + url);\r
1053 }} else {\r
1054 if (jalview.bin.JalviewLite.debug) {\r
1055 System.err.println ("Show url: " + url);\r
1056 }}if (url.indexOf ("javascript:") == 0) {\r
1057 this.getAppletContext ().showDocument ( new java.net.URL (url));\r
1058 } else {\r
1059 this.getAppletContext ().showDocument ( new java.net.URL (url), target);\r
1060 }} catch (ex) {\r
1061 if (Clazz.exceptionOf (ex, Exception)) {\r
1062 ex.printStackTrace ();\r
1063 } else {\r
1064 throw ex;\r
1065 }\r
1066 }\r
1067 }, "~S,~S");\r
1068 c$.$JalviewLite$LoadJmolThread$ = function () {\r
1069 Clazz.pu$h ();\r
1070 c$ = Clazz.decorateAsClass (function () {\r
1071 Clazz.prepareCallback (this, arguments);\r
1072 this.running = false;\r
1073 Clazz.instantialize (this, arguments);\r
1074 }, jalview.bin.JalviewLite, "LoadJmolThread", Thread);\r
1075 Clazz.overrideMethod (c$, "run", \r
1076 function () {\r
1077 if (this.running || this.b$["jalview.bin.JalviewLite"].checkedForJmol) {\r
1078 return;\r
1079 }this.running = true;\r
1080 if (this.b$["jalview.bin.JalviewLite"].checkForJmol) {\r
1081 try {\r
1082 if (!System.getProperty ("java.version").startsWith ("1.1")) {\r
1083 Class.forName ("org.jmol.adapter.smarter.SmarterJmolAdapter");\r
1084 this.b$["jalview.bin.JalviewLite"].jmolAvailable = true;\r
1085 }if (!this.b$["jalview.bin.JalviewLite"].jmolAvailable) {\r
1086 System.out.println ("Jmol not available - Using MCview for structures");\r
1087 }} catch (ex) {\r
1088 if (Clazz.exceptionOf (ex, ClassNotFoundException)) {\r
1089 } else {\r
1090 throw ex;\r
1091 }\r
1092 }\r
1093 } else {\r
1094 this.b$["jalview.bin.JalviewLite"].jmolAvailable = false;\r
1095 if (jalview.bin.JalviewLite.debug) {\r
1096 System.err.println ("Skipping Jmol check. Will use MCView (probably)");\r
1097 }}this.b$["jalview.bin.JalviewLite"].checkedForJmol = true;\r
1098 this.running = false;\r
1099 });\r
1100 Clazz.defineMethod (c$, "notFinished", \r
1101 function () {\r
1102 return this.running || !this.b$["jalview.bin.JalviewLite"].checkedForJmol;\r
1103 });\r
1104 c$ = Clazz.p0p ();\r
1105 };\r
1106 c$.$JalviewLite$LoadingThread$ = function () {\r
1107 Clazz.pu$h ();\r
1108 c$ = Clazz.decorateAsClass (function () {\r
1109 Clazz.prepareCallback (this, arguments);\r
1110 this.protocol = null;\r
1111 this._file = null;\r
1112 this._file2 = null;\r
1113 this.applet = null;\r
1114 Clazz.instantialize (this, arguments);\r
1115 }, jalview.bin.JalviewLite, "LoadingThread", Thread);\r
1116 Clazz.defineMethod (c$, "dbgMsg", \r
1117 ($fz = function (a) {\r
1118 if (jalview.bin.JalviewLite.debug) {\r
1119 System.err.println (a);\r
1120 }}, $fz.isPrivate = true, $fz), "~S");\r
1121 Clazz.defineMethod (c$, "setProtocolState", \r
1122 function (a) {\r
1123 if (a.startsWith ("PASTE")) {\r
1124 a = a.substring (5);\r
1125 this.protocol = jalview.io.AppletFormatAdapter.PASTE;\r
1126 } else if (this.inArchive (a)) {\r
1127 this.protocol = jalview.io.AppletFormatAdapter.CLASSLOADER;\r
1128 } else {\r
1129 a = this.addProtocol (a);\r
1130 this.protocol = jalview.io.AppletFormatAdapter.URL;\r
1131 }this.dbgMsg ("Protocol identified as '" + this.protocol + "'");\r
1132 return a;\r
1133 }, "~S");\r
1134 Clazz.makeConstructor (c$, \r
1135 function (a, b, c) {\r
1136 Clazz.superConstructor (this, jalview.bin.JalviewLite.LoadingThread, []);\r
1137 this._file = a;\r
1138 this._file2 = b;\r
1139 this.applet = c;\r
1140 }, "~S,~S,jalview.bin.JalviewLite");\r
1141 Clazz.overrideMethod (c$, "run", \r
1142 function () {\r
1143 {\r
1144 System.out.println("BYPASSING JMOL LOADING FOR NOW. THIS WILL BE DONE ANOTHER WAY")\r
1145 }this.startLoading ();\r
1146 });\r
1147 Clazz.defineMethod (c$, "startLoading", \r
1148 ($fz = function () {\r
1149 this.dbgMsg ("Loading thread started with:\n>>file\n" + this._file + ">>endfile");\r
1150 this.dbgMsg ("Loading started.");\r
1151 var a = this.readAlignment (this._file);\r
1152 var b = this.readAlignment (this._file2);\r
1153 if (a != null) {\r
1154 this.addToDisplay (a, b);\r
1155 this.loadTree (a);\r
1156 this.loadScoreFile (a);\r
1157 this.loadFeatures (a);\r
1158 this.loadAnnotations (a);\r
1159 this.loadJnetFile (a);\r
1160 this.loadPdbFiles (a);\r
1161 } else {\r
1162 this.b$["jalview.bin.JalviewLite"].fileFound = false;\r
1163 this.applet.remove (this.b$["jalview.bin.JalviewLite"].launcher);\r
1164 this.applet.repaint ();\r
1165 }this.b$["jalview.bin.JalviewLite"].callInitCallback ();\r
1166 }, $fz.isPrivate = true, $fz));\r
1167 Clazz.defineMethod (c$, "addToDisplay", \r
1168 function (a, b) {\r
1169 if (b == null) {\r
1170 a.addToDisplay (this.b$["jalview.bin.JalviewLite"].embedded);\r
1171 } else {\r
1172 var c =  new jalview.appletgui.SplitFrame (a, b);\r
1173 c.addToDisplay (this.b$["jalview.bin.JalviewLite"].embedded, this.b$["jalview.bin.JalviewLite"]);\r
1174 }}, "jalview.appletgui.AlignFrame,jalview.appletgui.AlignFrame");\r
1175 Clazz.defineMethod (c$, "readAlignment", \r
1176 function (a) {\r
1177 if (a == null) {\r
1178 return null;\r
1179 }var b = this.setProtocolState (a);\r
1180 var c =  new jalview.io.IdentifyFile ().Identify (b, this.protocol);\r
1181 this.dbgMsg ("File identified as '" + c + "'");\r
1182 var d = null;\r
1183 try {\r
1184 d =  new jalview.io.AppletFormatAdapter ().readFile (b, this.protocol, c);\r
1185 if ((d != null) && (d.getHeight () > 0)) {\r
1186 this.dbgMsg ("Successfully loaded file.");\r
1187 d.setDataset (null);\r
1188 var e =  new jalview.appletgui.AlignFrame (d, this.applet, b, this.b$["jalview.bin.JalviewLite"].embedded, false);\r
1189 e.setTitle (b);\r
1190 if (this.b$["jalview.bin.JalviewLite"].initialAlignFrame == null) {\r
1191 this.b$["jalview.bin.JalviewLite"].initialAlignFrame = e;\r
1192 }this.b$["jalview.bin.JalviewLite"].currentAlignFrame = e;\r
1193 if (this.protocol === jalview.io.AppletFormatAdapter.PASTE) {\r
1194 e.setTitle (jalview.util.MessageManager.formatMessage ("label.sequences_from",  Clazz.newArray (-1, [this.applet.getDocumentBase ().toString ()])));\r
1195 }e.setStatus (jalview.util.MessageManager.formatMessage ("label.successfully_loaded_file",  Clazz.newArray (-1, [b])));\r
1196 return e;\r
1197 }} catch (ex) {\r
1198 if (Clazz.exceptionOf (ex, java.io.IOException)) {\r
1199 this.dbgMsg ("File load exception.");\r
1200 ex.printStackTrace ();\r
1201 if (jalview.bin.JalviewLite.debug) {\r
1202 try {\r
1203 var e =  new jalview.io.FileParse (b, this.protocol);\r
1204 var f = null;\r
1205 this.dbgMsg (">>>Dumping contents of '" + b + "' " + "(" + this.protocol + ")");\r
1206 while ((f = e.nextLine ()) != null) {\r
1207 this.dbgMsg (f);\r
1208 }\r
1209 this.dbgMsg (">>>Dump finished.");\r
1210 } catch (e) {\r
1211 if (Clazz.exceptionOf (e, Exception)) {\r
1212 System.err.println ("Exception when trying to dump the content of the file parameter.");\r
1213 e.printStackTrace ();\r
1214 } else {\r
1215 throw e;\r
1216 }\r
1217 }\r
1218 }} else {\r
1219 throw ex;\r
1220 }\r
1221 }\r
1222 return null;\r
1223 }, "~S");\r
1224 Clazz.defineMethod (c$, "loadPdbFiles", \r
1225 function (a) {\r
1226 var b = false;\r
1227 this.applet.setAlignPdbStructures (this.b$["jalview.bin.JalviewLite"].getDefaultParameter ("alignpdbfiles", false));\r
1228 var c = 0;\r
1229 var d =  new java.util.Vector ();\r
1230 var e = (this.applet.getDefaultParameter ("relaxedidmatch", false)) ?  new jalview.analysis.SequenceIdMatcher (a.getAlignViewport ().getAlignment ().getSequencesArray ()) : null;\r
1231 var f;\r
1232 do {\r
1233 if (c > 0) {\r
1234 f = this.applet.getParameter ("PDBFILE" + c);\r
1235 } else {\r
1236 f = this.b$["jalview.bin.JalviewLite"].pdbFile;\r
1237 }if (f != null) {\r
1238 var g =  new jalview.datamodel.PDBEntry ();\r
1239 var h;\r
1240 var i = null;\r
1241 var j = null;\r
1242 var k =  new java.util.StringTokenizer (f, " ");\r
1243 if (k.countTokens () < 2) {\r
1244 if (this.b$["jalview.bin.JalviewLite"].sequence != null) {\r
1245 i =  Clazz.newArray (-1, [e == null ? a.getAlignViewport ().getAlignment ().findName (this.b$["jalview.bin.JalviewLite"].sequence) : e.findIdMatch (this.b$["jalview.bin.JalviewLite"].sequence)]);\r
1246 }} else {\r
1247 f = k.nextToken ();\r
1248 var l =  new java.util.Vector ();\r
1249 var m =  new java.util.Vector ();\r
1250 while (k.hasMoreTokens ()) {\r
1251 h = k.nextToken ();\r
1252 var n =  new java.util.StringTokenizer (h, "=");\r
1253 if (n.countTokens () > 1) {\r
1254 m.addElement (n.nextToken ());\r
1255 h = n.nextToken ();\r
1256 }l.addElement (e == null ? a.getAlignViewport ().getAlignment ().findName (h) : e.findIdMatch (h));\r
1257 }\r
1258 i =  new Array (l.size ());\r
1259 l.copyInto (i);\r
1260 if (m.size () == l.size ()) {\r
1261 j =  new Array (m.size ());\r
1262 m.copyInto (j);\r
1263 }}f = this.setProtocolState (f);\r
1264 if (this.protocol === jalview.io.AppletFormatAdapter.CLASSLOADER && !this.b$["jalview.bin.JalviewLite"].useXtrnalSviewer) {\r
1265 this.protocol = jalview.io.AppletFormatAdapter.URL;\r
1266 f = this.addProtocol (f);\r
1267 }g.setFile (f);\r
1268 if (i != null) {\r
1269 for (var l = 0; l < i.length; l++) {\r
1270 if (i[l] != null) {\r
1271 (i[l]).addPDBId (g);\r
1272 jalview.structure.StructureSelectionManager.getStructureSelectionManager (this.applet).registerPDBEntry (g);\r
1273 } else {\r
1274 if (jalview.bin.JalviewLite.debug) {\r
1275 System.err.println ("Warning: Possible input parsing error: Null sequence for attachment of PDB (sequence " + l + ")");\r
1276 }}}\r
1277 if (!this.b$["jalview.bin.JalviewLite"].alignPdbStructures) {\r
1278 a.newStructureView (this.applet, g, i, j, this.protocol);\r
1279 } else {\r
1280 d.addElement ( Clazz.newArray (-1, [g, i, j,  String.instantialize (this.protocol)]));\r
1281 }}}c++;\r
1282 } while (f != null || c < 10);\r
1283 if (d.size () > 0) {\r
1284 var g =  new Array (d.size ());\r
1285 var h =  new Array (d.size ());\r
1286 var i =  new Array (d.size ());\r
1287 var j =  new Array (d.size ());\r
1288 for (var k = 0, l = d.size (); k < l; k++) {\r
1289 var m = d.elementAt (k);\r
1290 h[k] = m[0];\r
1291 g[k] = m[1];\r
1292 i[k] = m[2];\r
1293 j[k] = m[3];\r
1294 }\r
1295 a.alignedStructureView (this.applet, h, g, i, j);\r
1296 b = true;\r
1297 }return b;\r
1298 }, "jalview.appletgui.AlignFrame");\r
1299 Clazz.defineMethod (c$, "loadJnetFile", \r
1300 function (a) {\r
1301 var b = false;\r
1302 var c = this.b$["jalview.bin.JalviewLite"].jnetFile;\r
1303 if (c != null) {\r
1304 try {\r
1305 c = this.setProtocolState (c);\r
1306 var d = jalview.jsdev.GenericFileAdapter.getFile ("JPredFile", [c, this.protocol]);\r
1307 jalview.io.JnetAnnotationMaker.add_annotation (d, a.viewport.getAlignment (), 0, false);\r
1308 var e = a.viewport.getAlignment ().getSequenceAt (0);\r
1309 a.viewport.getAlignment ().setSeqrep (e);\r
1310 var f =  new jalview.datamodel.ColumnSelection ();\r
1311 f.hideInsertionsFor (e);\r
1312 a.viewport.setColumnSelection (f);\r
1313 a.alignPanel.fontChanged ();\r
1314 a.alignPanel.setScrollValues (0, 0);\r
1315 b = true;\r
1316 } catch (ex) {\r
1317 if (Clazz.exceptionOf (ex, Exception)) {\r
1318 ex.printStackTrace ();\r
1319 } else {\r
1320 throw ex;\r
1321 }\r
1322 }\r
1323 }return b;\r
1324 }, "jalview.appletgui.AlignFrame");\r
1325 Clazz.defineMethod (c$, "loadAnnotations", \r
1326 function (a) {\r
1327 var b = false;\r
1328 var c = this.b$["jalview.bin.JalviewLite"].annotations;\r
1329 if (c != null) {\r
1330 c = this.setProtocolState (c);\r
1331 if ( new jalview.io.AnnotationFile ().annotateAlignmentView (a.viewport, c, this.protocol)) {\r
1332 a.alignPanel.fontChanged ();\r
1333 a.alignPanel.setScrollValues (0, 0);\r
1334 b = true;\r
1335 } else {\r
1336 System.err.println ("Annotations were not added from annotation file '" + c + "'");\r
1337 }}return b;\r
1338 }, "jalview.appletgui.AlignFrame");\r
1339 Clazz.defineMethod (c$, "loadFeatures", \r
1340 function (a) {\r
1341 var b = false;\r
1342 var c = this.b$["jalview.bin.JalviewLite"].hideFeatureGroups;\r
1343 if (c != null) {\r
1344 a.setFeatureGroupState (this.b$["jalview.bin.JalviewLite"].separatorListToArray (c), false);\r
1345 }c = this.b$["jalview.bin.JalviewLite"].showFeatureGroups;\r
1346 if (c != null) {\r
1347 a.setFeatureGroupState (this.b$["jalview.bin.JalviewLite"].separatorListToArray (c), true);\r
1348 }c = this.b$["jalview.bin.JalviewLite"].features;\r
1349 if (c != null) {\r
1350 c = this.setProtocolState (c);\r
1351 b = a.parseFeaturesFile (c, this.protocol);\r
1352 }c = this.b$["jalview.bin.JalviewLite"].showFeatureSettings;\r
1353 if (c != null && c.equalsIgnoreCase ("true")) {\r
1354 a.viewport.setShowSequenceFeatures (true);\r
1355  new jalview.appletgui.FeatureSettings (a.alignPanel);\r
1356 }return b;\r
1357 }, "jalview.appletgui.AlignFrame");\r
1358 Clazz.defineMethod (c$, "loadScoreFile", \r
1359 function (a) {\r
1360 var b = false;\r
1361 if (this.b$["jalview.bin.JalviewLite"].scoreFile != null && !"".equals (this.b$["jalview.bin.JalviewLite"].scoreFile)) {\r
1362 try {\r
1363 if (jalview.bin.JalviewLite.debug) {\r
1364 System.err.println ("Attempting to load T-COFFEE score file from the scoreFile parameter");\r
1365 }b = a.loadScoreFile (this.b$["jalview.bin.JalviewLite"].scoreFile);\r
1366 if (!b) {\r
1367 System.err.println ("Failed to parse T-COFFEE parameter as a valid score file ('" + this.b$["jalview.bin.JalviewLite"].scoreFile + "')");\r
1368 }} catch (e) {\r
1369 if (Clazz.exceptionOf (e, Exception)) {\r
1370 System.err.printf ("Cannot read score file: '%s'. Cause: %s \n", [this.b$["jalview.bin.JalviewLite"].scoreFile, e.getMessage ()]);\r
1371 } else {\r
1372 throw e;\r
1373 }\r
1374 }\r
1375 }return b;\r
1376 }, "jalview.appletgui.AlignFrame");\r
1377 Clazz.defineMethod (c$, "loadTree", \r
1378 function (a) {\r
1379 var b = false;\r
1380 if (this.b$["jalview.bin.JalviewLite"].treeFile == null) {\r
1381 this.b$["jalview.bin.JalviewLite"].treeFile = this.applet.getParameter ("treeFile");\r
1382 }if (this.b$["jalview.bin.JalviewLite"].treeFile != null) {\r
1383 try {\r
1384 this.b$["jalview.bin.JalviewLite"].treeFile = this.setProtocolState (this.b$["jalview.bin.JalviewLite"].treeFile);\r
1385 var c =  new jalview.io.NewickFile (this.b$["jalview.bin.JalviewLite"].treeFile, this.protocol);\r
1386 c.parse ();\r
1387 if (c.getTree () != null) {\r
1388 a.loadTree (c, this.b$["jalview.bin.JalviewLite"].treeFile);\r
1389 b = true;\r
1390 this.dbgMsg ("Successfully imported tree.");\r
1391 } else {\r
1392 this.dbgMsg ("Tree parameter did not resolve to a valid tree.");\r
1393 }} catch (ex) {\r
1394 if (Clazz.exceptionOf (ex, Exception)) {\r
1395 ex.printStackTrace ();\r
1396 } else {\r
1397 throw ex;\r
1398 }\r
1399 }\r
1400 }return b;\r
1401 }, "jalview.appletgui.AlignFrame");\r
1402 Clazz.defineMethod (c$, "inArchive", \r
1403 function (a) {\r
1404 try {\r
1405 var b = (this.getClass ().getResourceAsStream ("/" + a) != null);\r
1406 if (jalview.bin.JalviewLite.debug) {\r
1407 System.err.println ("Resource '" + a + "' was " + (b ? "" : "not") + " located by classloader.");\r
1408 }return b;\r
1409 } catch (ex) {\r
1410 if (Clazz.exceptionOf (ex, Exception)) {\r
1411 System.out.println ("Exception checking resources: " + a + " " + ex);\r
1412 return false;\r
1413 } else {\r
1414 throw ex;\r
1415 }\r
1416 }\r
1417 }, "~S");\r
1418 Clazz.defineMethod (c$, "addProtocol", \r
1419 function (a) {\r
1420 if (a.indexOf ("://") == -1) {\r
1421 var b = this.applet.resolveUrlForLocalOrAbsolute (a, this.b$["jalview.bin.JalviewLite"].getDocumentBase ());\r
1422 if (this.urlExists (b)) {\r
1423 if (jalview.bin.JalviewLite.debug) {\r
1424 System.err.println ("Prepended document base for resource: '" + a + "'");\r
1425 }return b;\r
1426 }b = this.applet.resolveUrlForLocalOrAbsolute (a, this.b$["jalview.bin.JalviewLite"].getCodeBase ());\r
1427 if (this.urlExists (b)) {\r
1428 if (jalview.bin.JalviewLite.debug) {\r
1429 System.err.println ("Prepended codebase for resource: '" + a + "'");\r
1430 }return b;\r
1431 }}return a;\r
1432 }, "~S");\r
1433 Clazz.defineMethod (c$, "urlExists", \r
1434 ($fz = function (a) {\r
1435 var b = null;\r
1436 try {\r
1437 b =  new java.net.URL (a).openStream ();\r
1438 if (b != null) {\r
1439 return true;\r
1440 }} catch (x) {\r
1441 if (Clazz.exceptionOf (x, Exception)) {\r
1442 } else {\r
1443 throw x;\r
1444 }\r
1445 } finally {\r
1446 if (b != null) {\r
1447 try {\r
1448 b.close ();\r
1449 } catch (e) {\r
1450 if (Clazz.exceptionOf (e, java.io.IOException)) {\r
1451 } else {\r
1452 throw e;\r
1453 }\r
1454 }\r
1455 }}\r
1456 return false;\r
1457 }, $fz.isPrivate = true, $fz), "~S");\r
1458 c$ = Clazz.p0p ();\r
1459 };\r
1460 c$.$JalviewLite$1$ = function () {\r
1461 Clazz.pu$h ();\r
1462 c$ = Clazz.declareAnonymous (jalview.bin, "JalviewLite$1", null, Runnable);\r
1463 Clazz.overrideMethod (c$, "run", \r
1464 function () {\r
1465 jalview.structure.StructureSelectionManager.getStructureSelectionManager (this.f$.me).mouseOverVamsasSequence (this.f$.sq, this.f$.sq.findIndex (this.f$.pos), null);\r
1466 });\r
1467 c$ = Clazz.p0p ();\r
1468 };\r
1469 c$.$JalviewLite$2$ = function () {\r
1470 Clazz.pu$h ();\r
1471 c$ = Clazz.declareAnonymous (jalview.bin, "JalviewLite$2", null, Runnable);\r
1472 Clazz.overrideMethod (c$, "run", \r
1473 function () {\r
1474 jalview.structure.StructureSelectionManager.getStructureSelectionManager (this.f$.me).mouseOverVamsasSequence (this.f$.sq, this.f$.pos, null);\r
1475 });\r
1476 c$ = Clazz.p0p ();\r
1477 };\r
1478 c$.$JalviewLite$3$ = function () {\r
1479 Clazz.pu$h ();\r
1480 c$ = Clazz.declareAnonymous (jalview.bin, "JalviewLite$3", null, Runnable);\r
1481 Clazz.overrideMethod (c$, "run", \r
1482 function () {\r
1483 this.f$.alf.select (this.f$.sel, this.f$.csel);\r
1484 });\r
1485 c$ = Clazz.p0p ();\r
1486 };\r
1487 c$.$JalviewLite$4$ = function () {\r
1488 Clazz.pu$h ();\r
1489 c$ = Clazz.declareAnonymous (jalview.bin, "JalviewLite$4", null, Runnable);\r
1490 Clazz.overrideMethod (c$, "run", \r
1491 function () {\r
1492 try {\r
1493 jalview.structure.StructureSelectionManager.getStructureSelectionManager (this.f$.me).mouseOverStructure ( new Integer (this.f$.pdbResNum).intValue (), this.f$.chain, this.f$.pdbfile);\r
1494 if (jalview.bin.JalviewLite.debug) {\r
1495 System.err.println ("mouseOver for '" + this.f$.pdbResNum + "' in chain '" + this.f$.chain + "' in structure '" + this.f$.pdbfile + "'");\r
1496 }} catch (e) {\r
1497 if (Clazz.exceptionOf (e, NumberFormatException)) {\r
1498 System.err.println ("Ignoring invalid residue number string '" + this.f$.pdbResNum + "'");\r
1499 } else {\r
1500 throw e;\r
1501 }\r
1502 }\r
1503 });\r
1504 c$ = Clazz.p0p ();\r
1505 };\r
1506 c$.$JalviewLite$5$ = function () {\r
1507 Clazz.pu$h ();\r
1508 c$ = Clazz.declareAnonymous (jalview.bin, "JalviewLite$5", null, Runnable);\r
1509 Clazz.overrideMethod (c$, "run", \r
1510 function () {\r
1511 try {\r
1512 this.f$.alf.scrollTo ( new Integer (this.f$.topRow).intValue (),  new Integer (this.f$.leftHandColumn).intValue ());\r
1513 } catch (ex) {\r
1514 if (Clazz.exceptionOf (ex, Exception)) {\r
1515 System.err.println ("Couldn't parse integer arguments (topRow='" + this.f$.topRow + "' and leftHandColumn='" + this.f$.leftHandColumn + "')");\r
1516 ex.printStackTrace ();\r
1517 } else {\r
1518 throw ex;\r
1519 }\r
1520 }\r
1521 });\r
1522 c$ = Clazz.p0p ();\r
1523 };\r
1524 c$.$JalviewLite$6$ = function () {\r
1525 Clazz.pu$h ();\r
1526 c$ = Clazz.declareAnonymous (jalview.bin, "JalviewLite$6", null, Runnable);\r
1527 Clazz.overrideMethod (c$, "run", \r
1528 function () {\r
1529 try {\r
1530 this.f$.alf.scrollToRow ( new Integer (this.f$.topRow).intValue ());\r
1531 } catch (ex) {\r
1532 if (Clazz.exceptionOf (ex, Exception)) {\r
1533 System.err.println ("Couldn't parse integer arguments (topRow='" + this.f$.topRow + "')");\r
1534 ex.printStackTrace ();\r
1535 } else {\r
1536 throw ex;\r
1537 }\r
1538 }\r
1539 });\r
1540 c$ = Clazz.p0p ();\r
1541 };\r
1542 c$.$JalviewLite$7$ = function () {\r
1543 Clazz.pu$h ();\r
1544 c$ = Clazz.declareAnonymous (jalview.bin, "JalviewLite$7", null, Runnable);\r
1545 Clazz.overrideMethod (c$, "run", \r
1546 function () {\r
1547 try {\r
1548 this.f$.alf.scrollToColumn ( new Integer (this.f$.leftHandColumn).intValue ());\r
1549 } catch (ex) {\r
1550 if (Clazz.exceptionOf (ex, Exception)) {\r
1551 System.err.println ("Couldn't parse integer arguments (leftHandColumn='" + this.f$.leftHandColumn + "')");\r
1552 ex.printStackTrace ();\r
1553 } else {\r
1554 throw ex;\r
1555 }\r
1556 }\r
1557 });\r
1558 c$ = Clazz.p0p ();\r
1559 };\r
1560 c$.$JalviewLite$8$ = function () {\r
1561 Clazz.pu$h ();\r
1562 c$ = Clazz.declareAnonymous (jalview.bin, "JalviewLite$8", null, java.awt.event.ActionListener);\r
1563 Clazz.overrideMethod (c$, "actionPerformed", \r
1564 function (e) {\r
1565 var loader = Clazz.innerTypeInstance (jalview.bin.JalviewLite.LoadingThread, this, null, this.b$["jalview.bin.JalviewLite"].startupFile, this.b$["jalview.bin.JalviewLite"].file2, this.b$["jalview.bin.JalviewLite"]);\r
1566 loader.start ();\r
1567 }, "java.awt.event.ActionEvent");\r
1568 c$ = Clazz.p0p ();\r
1569 };\r
1570 c$.$JalviewLite$9$ = function () {\r
1571 Clazz.pu$h ();\r
1572 c$ = Clazz.declareAnonymous (jalview.bin, "JalviewLite$9", java.awt.event.WindowAdapter);\r
1573 Clazz.overrideMethod (c$, "windowClosing", \r
1574 function (e) {\r
1575 if (Clazz.instanceOf (this.f$.frame, jalview.appletgui.AlignFrame)) {\r
1576 var vp = (this.f$.frame).viewport;\r
1577 (this.f$.frame).closeMenuItem_actionPerformed ();\r
1578 if (vp.applet.currentAlignFrame === this.f$.frame) {\r
1579 vp.applet.currentAlignFrame = null;\r
1580 }vp.applet = null;\r
1581 vp = null;\r
1582 }jalview.bin.JalviewLite.lastFrameX -= 40;\r
1583 jalview.bin.JalviewLite.lastFrameY -= 40;\r
1584 if (Clazz.instanceOf (this.f$.frame, jalview.appletgui.EmbmenuFrame)) {\r
1585 (this.f$.frame).destroyMenus ();\r
1586 }this.f$.frame.setMenuBar (null);\r
1587 this.f$.frame.dispose ();\r
1588 }, "java.awt.event.WindowEvent");\r
1589 Clazz.defineMethod (c$, "windowActivated", \r
1590 function (e) {\r
1591 if (Clazz.instanceOf (this.f$.frame, jalview.appletgui.AlignFrame)) {\r
1592 (this.f$.frame).viewport.applet.currentAlignFrame = this.f$.frame;\r
1593 if (jalview.bin.JalviewLite.debug) {\r
1594 System.err.println ("Activated window " + this.f$.frame);\r
1595 }}Clazz.superCall (this, jalview.bin.JalviewLite$9, "windowActivated", [e]);\r
1596 }, "java.awt.event.WindowEvent");\r
1597 c$ = Clazz.p0p ();\r
1598 };\r
1599 c$.$JalviewLite$10$ = function () {\r
1600 Clazz.pu$h ();\r
1601 c$ = Clazz.declareAnonymous (jalview.bin, "JalviewLite$10", null, Runnable);\r
1602 Clazz.overrideMethod (c$, "run", \r
1603 function () {\r
1604 this.f$.alf.setFeatureGroupState (this.b$["jalview.bin.JalviewLite"].separatorListToArray (this.f$.groups), this.f$.st);\r
1605 });\r
1606 c$ = Clazz.p0p ();\r
1607 };\r
1608 Clazz.defineStatics (c$,\r
1609 "TRUE", "true",\r
1610 "FALSE", "false",\r
1611 "debug", false,\r
1612 "lastFrameX", 200,\r
1613 "lastFrameY", 200,\r
1614 "builddate", null,\r
1615 "version", null,\r
1616 "installation", null);\r
1617 });\r