JAL-1807 test
[jalviewjs.git] / bin / jalview / bin / JalviewLite.js
index 23d66b7..1049dcb 100644 (file)
-Clazz.declarePackage ("jalview.bin");\r
-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
-c$ = Clazz.decorateAsClass (function () {\r
-this.embedded = false;\r
-this.enableSplitFrame = false;\r
-this.showButton = true;\r
-this.checkForJmol = true;\r
-this.jalviewServletURL = null;\r
-this.startupFile = "No file";\r
-this.helpUrl = null;\r
-this.externalstructureviewer = null;\r
-this.sep = null;\r
-this.rgb = null;\r
-this.labelColour = null;\r
-this.initjscallback = null;\r
-this.pdbFile = null;\r
-this.sequence = null;\r
-this.jnetFile = null;\r
-this.annotations = null;\r
-this.hideFeatureGroups = null;\r
-this.showFeatureGroups = null;\r
-this.features = null;\r
-this.showFeatureSettings = null;\r
-this.scoreFile = null;\r
-this.treeFile = null;\r
-this.windowWidth = null;\r
-this.windowHeight = null;\r
-this.defaultColour = null;\r
-this.sortBy = null;\r
-this.wrap = null;\r
-this.centrecolumnlabels = null;\r
-this.userDefinedColour = null;\r
-this.widthScale = null;\r
-this.heightScale = null;\r
-this.upperCase = null;\r
-this.file2 = null;\r
-this.javascriptListeners = null;\r
-this.jsFunctionExec = null;\r
-this.fileFound = true;\r
-this.launcher = null;\r
-this.currentAlignFrame = null;\r
-this.initialAlignFrame = null;\r
-this.checkedForJmol = false;\r
-this.jmolAvailable = false;\r
-this.alignPdbStructures = false;\r
-this.useXtrnalSviewer = false;\r
-this.haveShownLoadMessage = false;\r
-if (!Clazz.isClassDefined ("jalview.bin.JalviewLite.LoadJmolThread")) {\r
-jalview.bin.JalviewLite.$JalviewLite$LoadJmolThread$ ();\r
-}\r
-if (!Clazz.isClassDefined ("jalview.bin.JalviewLite.LoadingThread")) {\r
-jalview.bin.JalviewLite.$JalviewLite$LoadingThread$ ();\r
-}\r
-this.separator = "\u00ac";\r
-this.jsfallbackEnabled = false;\r
-this.jshashes = null;\r
-this.jsmessages = null;\r
-this.jsExecQueue = null;\r
-Clazz.instantialize (this, arguments);\r
-}, jalview.bin, "JalviewLite", javax.swing.JApplet, [jalview.api.StructureSelectionManagerProvider, jalview.javascript.JalviewLiteJsApi]);\r
-Clazz.prepareFields (c$, function () {\r
-this.javascriptListeners =  new java.util.Vector ();\r
-this.launcher =  new javax.swing.JButton (jalview.util.MessageManager.getString ("label.start_jalview"));\r
-this.jshashes =  new java.util.Hashtable ();\r
-this.jsmessages =  new java.util.Hashtable ();\r
-this.jsExecQueue =  new java.util.Vector ();\r
-});\r
-Clazz.defineMethod (c$, "setParams", \r
-($fz = function () {\r
-jalview.bin.JalviewLite.debug = "true".equalsIgnoreCase (this.getParameter ("debug"));\r
-this.enableSplitFrame = "true".equalsIgnoreCase (this.getParameter ("enableSplitFrame"));\r
-this.embedded = "true".equalsIgnoreCase (this.getParameter ("embedded"));\r
-this.showButton = !"false".equalsIgnoreCase (this.getParameter ("showbutton"));\r
-this.jalviewServletURL = this.getParameter ("APPLICATION_URL");\r
-this.startupFile = this.getParameter ("file");\r
-this.helpUrl = this.getParameter ("jalviewhelpurl");\r
-this.externalstructureviewer = this.getParameter ("externalstructureviewer");\r
-this.checkForJmol = !"true".equals (this.getParameter ("nojmol"));\r
-this.sep = this.getParameter ("separator");\r
-this.rgb = this.getParameter ("RGB");\r
-this.labelColour = this.getParameter ("label");\r
-this.initjscallback = this.getParameter ("oninit");\r
-this.pdbFile = this.getParameter ("PDBFILE");\r
-this.sequence = this.getParameter ("PDBSEQ");\r
-this.jnetFile = this.getParameter ("jnetfile");\r
-this.annotations = this.getParameter ("annotations");\r
-this.hideFeatureGroups = this.getParameter ("hidefeaturegroups");\r
-this.showFeatureGroups = this.getParameter ("showfeaturegroups");\r
-this.features = this.getParameter ("features");\r
-this.showFeatureSettings = this.getParameter ("showFeatureSettings");\r
-this.scoreFile = this.getParameter ("scoreFile");\r
-this.treeFile = this.getParameter ("tree");\r
-if (this.treeFile == null) this.treeFile = this.getParameter ("treeFile");\r
-this.windowWidth = this.getParameter ("windowWidth");\r
-this.windowHeight = this.getParameter ("windowHeight");\r
-this.defaultColour = this.getParameter ("defaultColour");\r
-this.sortBy = this.getParameter ("sortBy");\r
-this.wrap = this.getParameter ("wrap");\r
-this.centrecolumnlabels = this.getParameter ("centrecolumnlabels");\r
-this.userDefinedColour = this.getParameter ("userDefinedColour");\r
-this.widthScale = this.getParameter ("widthScale");\r
-this.heightScale = this.getParameter ("heightScale");\r
-this.upperCase = this.getParameter ("upperCase");\r
-this.file2 = this.getParameter ("file2");\r
-}, $fz.isPrivate = true, $fz));\r
-Clazz.defineMethod (c$, "getDefaultParameter", \r
-function (name, def) {\r
-var stn;\r
-if ((stn = this.getParameter (name)) == null) {\r
-return def;\r
-}if (stn.toLowerCase ().equals ("true")) {\r
-return true;\r
-}return false;\r
-}, "~S,~B");\r
-Clazz.defineMethod (c$, "getLinkParams", \r
-function (links) {\r
-var label;\r
-var url;\r
-for (var i = 1; i < 10; i++) {\r
-label = this.getParameter ("linkLabel_" + i);\r
-url = this.getParameter ("linkURL_" + i);\r
-if (label != null && url != null) {\r
-links.addElement (label + "|" + url);\r
-}}\r
-}, "java.util.Vector");\r
-Clazz.defineMethod (c$, "getStructureSelectionManager", \r
-function () {\r
-return jalview.structure.StructureSelectionManager.getStructureSelectionManager (this);\r
-});\r
-Clazz.defineMethod (c$, "getSelectedSequences", \r
-function () {\r
-return this.getSelectedSequencesFrom (this.getDefaultTargetFrame ());\r
-});\r
-Clazz.defineMethod (c$, "getSelectedSequences", \r
-function (sep) {\r
-return this.getSelectedSequencesFrom (this.getDefaultTargetFrame (), sep);\r
-}, "~S");\r
-Clazz.defineMethod (c$, "getSelectedSequencesFrom", \r
-function (alf) {\r
-return this.getSelectedSequencesFrom (alf, this.separator);\r
-}, "jalview.appletgui.AlignFrame");\r
-Clazz.defineMethod (c$, "getSelectedSequencesFrom", \r
-function (alf, sep) {\r
-var result =  new StringBuffer ("");\r
-if (sep == null || sep.length == 0) {\r
-sep = this.separator;\r
-}if (alf.viewport.getSelectionGroup () != null) {\r
-var seqs = alf.viewport.getSelectionGroup ().getSequencesInOrder (alf.viewport.getAlignment ());\r
-for (var i = 0; i < seqs.length; i++) {\r
-result.append (seqs[i].getName ());\r
-result.append (sep);\r
-}\r
-}return result.toString ();\r
-}, "jalview.appletgui.AlignFrame,~S");\r
-Clazz.overrideMethod (c$, "highlight", \r
-function (sequenceId, position, alignedPosition) {\r
-this.highlightIn (this.getDefaultTargetFrame (), sequenceId, position, alignedPosition);\r
-}, "~S,~S,~S");\r
-Clazz.overrideMethod (c$, "highlightIn", \r
-function (alf, sequenceId, position, alignedPosition) {\r
-var matcher =  new jalview.analysis.SequenceIdMatcher (alf.viewport.getAlignment ().getSequencesArray ());\r
-var sq = matcher.findIdMatch (sequenceId);\r
-if (sq != null) {\r
-var apos = -1;\r
-try {\r
-apos =  new Integer (position).intValue ();\r
-apos--;\r
-} catch (ex) {\r
-if (Clazz.exceptionOf (ex, NumberFormatException)) {\r
-return;\r
-} else {\r
-throw ex;\r
-}\r
-}\r
-var me = this;\r
-var pos = apos;\r
-if (alignedPosition != null && (alignedPosition.trim ().length == 0 || alignedPosition.toLowerCase ().indexOf ("false") > -1)) {\r
-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
-} else {\r
-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
-}}}, "jalview.appletgui.AlignFrame,~S,~S,~S");\r
-Clazz.defineMethod (c$, "select", \r
-function (sequenceIds, columns) {\r
-this.selectIn (this.getDefaultTargetFrame (), sequenceIds, columns, this.separator);\r
-}, "~S,~S");\r
-Clazz.defineMethod (c$, "select", \r
-function (sequenceIds, columns, sep) {\r
-this.selectIn (this.getDefaultTargetFrame (), sequenceIds, columns, sep);\r
-}, "~S,~S,~S");\r
-Clazz.defineMethod (c$, "selectIn", \r
-function (alf, sequenceIds, columns) {\r
-this.selectIn (alf, sequenceIds, columns, this.separator);\r
-}, "jalview.appletgui.AlignFrame,~S,~S");\r
-Clazz.defineMethod (c$, "selectIn", \r
-function (alf, sequenceIds, columns, sep) {\r
-if (sep == null || sep.length == 0) {\r
-sep = this.separator;\r
-} else {\r
-if (jalview.bin.JalviewLite.debug) {\r
-System.err.println ("Selecting region using separator string '" + this.separator + "'");\r
-}}var ids = this.separatorListToArray (sequenceIds, sep);\r
-var cols = this.separatorListToArray (columns, sep);\r
-var sel =  new jalview.datamodel.SequenceGroup ();\r
-var csel =  new jalview.datamodel.ColumnSelection ();\r
-var al = alf.viewport.getAlignment ();\r
-var matcher =  new jalview.analysis.SequenceIdMatcher (alf.viewport.getAlignment ().getSequencesArray ());\r
-var start = 0;\r
-var end = al.getWidth ();\r
-var alw = al.getWidth ();\r
-var seqsfound = true;\r
-if (ids != null && ids.length > 0) {\r
-seqsfound = false;\r
-for (var i = 0; i < ids.length; i++) {\r
-if (ids[i].trim ().length == 0) {\r
-continue;\r
-}var sq = matcher.findIdMatch (ids[i]);\r
-if (sq != null) {\r
-seqsfound = true;\r
-sel.addSequence (sq, false);\r
-}}\r
-}var inseqpos = false;\r
-if (cols != null && cols.length > 0) {\r
-var seset = false;\r
-for (var i = 0; i < cols.length; i++) {\r
-var cl = cols[i].trim ();\r
-if (cl.length == 0) {\r
-continue;\r
-}var p;\r
-if ((p = cl.indexOf ("-")) > -1) {\r
-var from = -1;\r
-var to = -1;\r
-try {\r
-from =  new Integer (cl.substring (0, p)).intValue ();\r
-from--;\r
-} catch (ex) {\r
-if (Clazz.exceptionOf (ex, NumberFormatException)) {\r
-System.err.println ("ERROR: Couldn't parse first integer in range element column selection string '" + cl + "' - format is 'from-to'");\r
-return;\r
-} else {\r
-throw ex;\r
-}\r
-}\r
-try {\r
-to =  new Integer (cl.substring (p + 1)).intValue ();\r
-to--;\r
-} catch (ex) {\r
-if (Clazz.exceptionOf (ex, NumberFormatException)) {\r
-System.err.println ("ERROR: Couldn't parse second integer in range element column selection string '" + cl + "' - format is 'from-to'");\r
-return;\r
-} else {\r
-throw ex;\r
-}\r
-}\r
-if (from >= 0 && to >= 0) {\r
-if (from < to) {\r
-var t = to;\r
-to = from;\r
-to = t;\r
-}if (!seset) {\r
-start = from;\r
-end = to;\r
-seset = true;\r
-} else {\r
-if (start > from) {\r
-start = from;\r
-}if (end < to) {\r
-end = to;\r
-}}for (var r = from; r <= to; r++) {\r
-if (r >= 0 && r < alw) {\r
-csel.addElement (r);\r
-}}\r
-if (jalview.bin.JalviewLite.debug) {\r
-System.err.println ("Range '" + cl + "' deparsed as [" + from + "," + to + "]");\r
-}} else {\r
-System.err.println ("ERROR: Invalid Range '" + cl + "' deparsed as [" + from + "," + to + "]");\r
-}} else {\r
-var r = -1;\r
-try {\r
-r =  new Integer (cl).intValue ();\r
-r--;\r
-} catch (ex) {\r
-if (Clazz.exceptionOf (ex, NumberFormatException)) {\r
-if (cl.toLowerCase ().equals ("sequence")) {\r
-inseqpos = true;\r
-} else {\r
-System.err.println ("ERROR: Couldn't parse integer from point selection element of column selection string '" + cl + "'");\r
-return;\r
-}} else {\r
-throw ex;\r
-}\r
-}\r
-if (r >= 0 && r <= alw) {\r
-if (!seset) {\r
-start = r;\r
-end = r;\r
-seset = true;\r
-} else {\r
-if (start > r) {\r
-start = r;\r
-}if (end < r) {\r
-end = r;\r
-}}csel.addElement (r);\r
-if (jalview.bin.JalviewLite.debug) {\r
-System.err.println ("Point selection '" + cl + "' deparsed as [" + r + "]");\r
-}} else {\r
-System.err.println ("ERROR: Invalid Point selection '" + cl + "' deparsed as [" + r + "]");\r
-}}}\r
-}if (seqsfound) {\r
-if (inseqpos && sel.getSize () > 0) {\r
-var rs = sel.getSequenceAt (0);\r
-start = rs.findIndex (start);\r
-end = rs.findIndex (end);\r
-if (csel != null) {\r
-var cs = csel.getSelected ();\r
-csel.clear ();\r
-for (var selectedCol, $selectedCol = cs.iterator (); $selectedCol.hasNext () && ((selectedCol = $selectedCol.next ()) || true);) {\r
-csel.addElement (rs.findIndex ((selectedCol).intValue ()));\r
-}\r
-}}sel.setStartRes (start);\r
-sel.setEndRes (end);\r
-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
-}}, "jalview.appletgui.AlignFrame,~S,~S,~S");\r
-Clazz.overrideMethod (c$, "getSelectedSequencesAsAlignment", \r
-function (format, suffix) {\r
-return this.getSelectedSequencesAsAlignmentFrom (this.getDefaultTargetFrame (), format, suffix);\r
-}, "~S,~S");\r
-Clazz.overrideMethod (c$, "getSelectedSequencesAsAlignmentFrom", \r
-function (alf, format, suffix) {\r
-try {\r
-var seqlimits = suffix.equalsIgnoreCase ("true");\r
-if (alf.viewport.getSelectionGroup () != null) {\r
-var reply =  new jalview.io.AppletFormatAdapter ().formatSequences (format,  new jalview.datamodel.Alignment (alf.viewport.getSelectionAsNewSequence ()), seqlimits);\r
-return reply;\r
-}} catch (ex) {\r
-if (Clazz.exceptionOf (ex, Exception)) {\r
-ex.printStackTrace ();\r
-return "Error retrieving alignment in " + format + " format. ";\r
-} else {\r
-throw ex;\r
-}\r
-}\r
-return "";\r
-}, "jalview.appletgui.AlignFrame,~S,~S");\r
-Clazz.overrideMethod (c$, "getAlignmentOrder", \r
-function () {\r
-return this.getAlignmentOrderFrom (this.getDefaultTargetFrame ());\r
-});\r
-Clazz.defineMethod (c$, "getAlignmentOrderFrom", \r
-function (alf) {\r
-return this.getAlignmentOrderFrom (alf, this.separator);\r
-}, "jalview.appletgui.AlignFrame");\r
-Clazz.defineMethod (c$, "getAlignmentOrderFrom", \r
-function (alf, sep) {\r
-var alorder = alf.getAlignViewport ().getAlignment ();\r
-var order =  new Array (alorder.getHeight ());\r
-for (var i = 0; i < order.length; i++) {\r
-order[i] = alorder.getSequenceAt (i).getName ();\r
-}\r
-return this.arrayToSeparatorList (order);\r
-}, "jalview.appletgui.AlignFrame,~S");\r
-Clazz.defineMethod (c$, "orderBy", \r
-function (order, undoName) {\r
-return this.orderBy (order, undoName, this.separator);\r
-}, "~S,~S");\r
-Clazz.defineMethod (c$, "orderBy", \r
-function (order, undoName, sep) {\r
-return this.orderAlignmentBy (this.getDefaultTargetFrame (), order, undoName, sep);\r
-}, "~S,~S,~S");\r
-Clazz.overrideMethod (c$, "orderAlignmentBy", \r
-function (alf, order, undoName, sep) {\r
-var ids = this.separatorListToArray (order, sep);\r
-var sqs = null;\r
-if (ids != null && ids.length > 0) {\r
-var matcher =  new jalview.analysis.SequenceIdMatcher (alf.viewport.getAlignment ().getSequencesArray ());\r
-var s = 0;\r
-sqs =  new Array (ids.length);\r
-for (var i = 0; i < ids.length; i++) {\r
-if (ids[i].trim ().length == 0) {\r
-continue;\r
-}var sq = matcher.findIdMatch (ids[i]);\r
-if (sq != null) {\r
-sqs[s++] = sq;\r
-}}\r
-if (s > 0) {\r
-var sqq =  new Array (s);\r
-System.arraycopy (sqs, 0, sqq, 0, s);\r
-sqs = sqq;\r
-} else {\r
-sqs = null;\r
-}}if (sqs == null) {\r
-return "";\r
-};var aorder =  new jalview.datamodel.AlignmentOrder (sqs);\r
-if (undoName != null && undoName.trim ().length == 0) {\r
-undoName = null;\r
-}var _undoName = undoName;\r
-return alf.sortBy (aorder, _undoName) ? "true" : "";\r
-}, "jalview.appletgui.AlignFrame,~S,~S,~S");\r
-Clazz.defineMethod (c$, "getAlignment", \r
-function (format) {\r
-return this.getAlignmentFrom (this.getDefaultTargetFrame (), format, "true");\r
-}, "~S");\r
-Clazz.defineMethod (c$, "getAlignmentFrom", \r
-function (alf, format) {\r
-return this.getAlignmentFrom (alf, format, "true");\r
-}, "jalview.appletgui.AlignFrame,~S");\r
-Clazz.defineMethod (c$, "getAlignment", \r
-function (format, suffix) {\r
-return this.getAlignmentFrom (this.getDefaultTargetFrame (), format, suffix);\r
-}, "~S,~S");\r
-Clazz.defineMethod (c$, "getAlignmentFrom", \r
-function (alf, format, suffix) {\r
-try {\r
-var seqlimits = suffix.equalsIgnoreCase ("true");\r
-var reply =  new jalview.io.AppletFormatAdapter ().formatSequences (format, alf.viewport.getAlignment (), seqlimits);\r
-return reply;\r
-} catch (ex) {\r
-if (Clazz.exceptionOf (ex, Exception)) {\r
-ex.printStackTrace ();\r
-return "Error retrieving alignment in " + format + " format. ";\r
-} else {\r
-throw ex;\r
-}\r
-}\r
-}, "jalview.appletgui.AlignFrame,~S,~S");\r
-Clazz.overrideMethod (c$, "loadAnnotation", \r
-function (annotation) {\r
-this.loadAnnotationFrom (this.getDefaultTargetFrame (), annotation);\r
-}, "~S");\r
-Clazz.overrideMethod (c$, "loadAnnotationFrom", \r
-function (alf, annotation) {\r
-if ( new jalview.io.AnnotationFile ().annotateAlignmentView (alf.getAlignViewport (), annotation, jalview.io.AppletFormatAdapter.PASTE)) {\r
-alf.alignPanel.fontChanged ();\r
-alf.alignPanel.setScrollValues (0, 0);\r
-} else {\r
-alf.parseFeaturesFile (annotation, jalview.io.AppletFormatAdapter.PASTE);\r
-}}, "jalview.appletgui.AlignFrame,~S");\r
-Clazz.overrideMethod (c$, "loadFeatures", \r
-function (features, autoenabledisplay) {\r
-this.loadFeaturesFrom (this.getDefaultTargetFrame (), features, autoenabledisplay);\r
-}, "~S,~B");\r
-Clazz.overrideMethod (c$, "loadFeaturesFrom", \r
-function (alf, features, autoenabledisplay) {\r
-return alf.parseFeaturesFile (features, jalview.io.AppletFormatAdapter.PASTE, autoenabledisplay);\r
-}, "jalview.appletgui.AlignFrame,~S,~B");\r
-Clazz.overrideMethod (c$, "getFeatures", \r
-function (format) {\r
-return this.getFeaturesFrom (this.getDefaultTargetFrame (), format);\r
-}, "~S");\r
-Clazz.overrideMethod (c$, "getFeaturesFrom", \r
-function (alf, format) {\r
-return alf.outputFeatures (false, format);\r
-}, "jalview.appletgui.AlignFrame,~S");\r
-Clazz.overrideMethod (c$, "getAnnotation", \r
-function () {\r
-return this.getAnnotationFrom (this.getDefaultTargetFrame ());\r
-});\r
-Clazz.overrideMethod (c$, "getAnnotationFrom", \r
-function (alf) {\r
-return alf.outputAnnotations (false);\r
-}, "jalview.appletgui.AlignFrame");\r
-Clazz.defineMethod (c$, "newView", \r
-function () {\r
-return this.newViewFrom (this.getDefaultTargetFrame ());\r
-});\r
-Clazz.defineMethod (c$, "newView", \r
-function (name) {\r
-return this.newViewFrom (this.getDefaultTargetFrame (), name);\r
-}, "~S");\r
-Clazz.defineMethod (c$, "newViewFrom", \r
-function (alf) {\r
-return alf.newView (null);\r
-}, "jalview.appletgui.AlignFrame");\r
-Clazz.defineMethod (c$, "newViewFrom", \r
-function (alf, name) {\r
-return alf.newView (name);\r
-}, "jalview.appletgui.AlignFrame,~S");\r
-Clazz.overrideMethod (c$, "loadAlignment", \r
-function (text, title) {\r
-var al = null;\r
-var format =  new jalview.io.IdentifyFile ().Identify (text, jalview.io.AppletFormatAdapter.PASTE);\r
-try {\r
-al =  new jalview.io.AppletFormatAdapter ().readFile (text, jalview.io.AppletFormatAdapter.PASTE, format);\r
-if (al.getHeight () > 0) {\r
-return  new jalview.appletgui.AlignFrame (al, this, title, false);\r
-}} catch (ex) {\r
-if (Clazz.exceptionOf (ex, java.io.IOException)) {\r
-ex.printStackTrace ();\r
-} else {\r
-throw ex;\r
-}\r
-}\r
-return null;\r
-}, "~S,~S");\r
-Clazz.defineMethod (c$, "setMouseoverListener", \r
-function (listener) {\r
-this.setMouseoverListener (this.currentAlignFrame, listener);\r
-}, "~S");\r
-Clazz.defineMethod (c$, "setMouseoverListener", \r
-function (af, listener) {\r
-if (listener != null) {\r
-listener = listener.trim ();\r
-if (listener.length == 0) {\r
-System.err.println ("jalview Javascript error: Ignoring empty function for mouseover listener.");\r
-return;\r
-}}var mol =  new jalview.javascript.MouseOverListener (this, af, listener);\r
-this.javascriptListeners.addElement (mol);\r
-jalview.structure.StructureSelectionManager.getStructureSelectionManager (this).addStructureViewerListener (mol);\r
-if (jalview.bin.JalviewLite.debug) {\r
-System.err.println ("Added a mouseover listener for " + ((af == null) ? "All frames" : "Just views for " + af.getAlignViewport ().getSequenceSetId ()));\r
-System.err.println ("There are now " + this.javascriptListeners.size () + " listeners in total.");\r
-}}, "jalview.appletgui.AlignFrame,~S");\r
-Clazz.defineMethod (c$, "setSelectionListener", \r
-function (listener) {\r
-this.setSelectionListener (null, listener);\r
-}, "~S");\r
-Clazz.defineMethod (c$, "setSelectionListener", \r
-function (af, listener) {\r
-if (listener != null) {\r
-listener = listener.trim ();\r
-if (listener.length == 0) {\r
-System.err.println ("jalview Javascript error: Ignoring empty function for selection listener.");\r
-return;\r
-}}var mol =  new jalview.javascript.JsSelectionSender (this, af, listener);\r
-this.javascriptListeners.addElement (mol);\r
-jalview.structure.StructureSelectionManager.getStructureSelectionManager (this).addSelectionListener (mol);\r
-if (jalview.bin.JalviewLite.debug) {\r
-System.err.println ("Added a selection listener for " + ((af == null) ? "All frames" : "Just views for " + af.getAlignViewport ().getSequenceSetId ()));\r
-System.err.println ("There are now " + this.javascriptListeners.size () + " listeners in total.");\r
-}}, "jalview.appletgui.AlignFrame,~S");\r
-Clazz.overrideMethod (c$, "setStructureListener", \r
-function (listener, modelSet) {\r
-if (listener != null) {\r
-listener = listener.trim ();\r
-if (listener.length == 0) {\r
-System.err.println ("jalview Javascript error: Ignoring empty function for selection listener.");\r
-return;\r
-}}var mol =  new jalview.javascript.MouseOverStructureListener (this, listener, this.separatorListToArray (modelSet));\r
-this.javascriptListeners.addElement (mol);\r
-jalview.structure.StructureSelectionManager.getStructureSelectionManager (this).addStructureViewerListener (mol);\r
-if (jalview.bin.JalviewLite.debug) {\r
-System.err.println ("Added a javascript structure viewer listener '" + listener + "'");\r
-System.err.println ("There are now " + this.javascriptListeners.size () + " listeners in total.");\r
-}}, "~S,~S");\r
-Clazz.overrideMethod (c$, "removeJavascriptListener", \r
-function (af, listener) {\r
-if (listener != null) {\r
-listener = listener.trim ();\r
-if (listener.length == 0) {\r
-listener = null;\r
-}}var rprt = false;\r
-for (var ms = 0, msSize = this.javascriptListeners.size (); ms < msSize; ) {\r
-var lstn = this.javascriptListeners.elementAt (ms);\r
-var lstner = lstn;\r
-if ((af == null || lstner.getAlignFrame () === af) && (listener == null || lstner.getListenerFunction ().equals (listener))) {\r
-this.javascriptListeners.removeElement (lstner);\r
-msSize--;\r
-if (Clazz.instanceOf (lstner, jalview.structure.SelectionListener)) {\r
-jalview.structure.StructureSelectionManager.getStructureSelectionManager (this).removeSelectionListener (lstner);\r
-} else {\r
-jalview.structure.StructureSelectionManager.getStructureSelectionManager (this).removeStructureViewerListener (lstner, null);\r
-}rprt = jalview.bin.JalviewLite.debug;\r
-if (jalview.bin.JalviewLite.debug) {\r
-System.err.println ("Removed listener '" + listener + "'");\r
-}} else {\r
-ms++;\r
-}}\r
-if (rprt) {\r
-System.err.println ("There are now " + this.javascriptListeners.size () + " listeners in total.");\r
-}}, "jalview.appletgui.AlignFrame,~S");\r
-Clazz.overrideMethod (c$, "stop", \r
-function () {\r
-System.err.println ("Applet " + this.getName () + " stop().");\r
-this.tidyUp ();\r
-});\r
-Clazz.overrideMethod (c$, "destroy", \r
-function () {\r
-System.err.println ("Applet " + this.getName () + " destroy().");\r
-this.tidyUp ();\r
-});\r
-Clazz.defineMethod (c$, "tidyUp", \r
-($fz = function () {\r
-this.removeAll ();\r
-if (this.currentAlignFrame != null && this.currentAlignFrame.viewport != null && this.currentAlignFrame.viewport.applet != null) {\r
-var av = this.currentAlignFrame.viewport;\r
-this.currentAlignFrame.closeMenuItem_actionPerformed ();\r
-av.applet = null;\r
-this.currentAlignFrame = null;\r
-}if (this.javascriptListeners != null) {\r
-while (this.javascriptListeners.size () > 0) {\r
-var mol = this.javascriptListeners.elementAt (0);\r
-this.javascriptListeners.removeElement (mol);\r
-if (Clazz.instanceOf (mol, jalview.structure.SelectionListener)) {\r
-jalview.structure.StructureSelectionManager.getStructureSelectionManager (this).removeSelectionListener (mol);\r
-} else {\r
-jalview.structure.StructureSelectionManager.getStructureSelectionManager (this).removeStructureViewerListener (mol, null);\r
-}mol.jvlite = null;\r
-}\r
-}if (this.jsFunctionExec != null) {\r
-this.jsFunctionExec.stopQueue ();\r
-this.jsFunctionExec.jvlite = null;\r
-}this.initialAlignFrame = null;\r
-this.jsFunctionExec = null;\r
-this.javascriptListeners = null;\r
-jalview.structure.StructureSelectionManager.release (this);\r
-}, $fz.isPrivate = true, $fz));\r
-Clazz.overrideMethod (c$, "mouseOverStructure", \r
-function (pdbResNum, chain, pdbfile) {\r
-var me = this;\r
-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
-}, "~S,~S,~S");\r
-Clazz.overrideMethod (c$, "scrollViewToIn", \r
-function (alf, topRow, leftHandColumn) {\r
-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
-}, "jalview.appletgui.AlignFrame,~S,~S");\r
-Clazz.overrideMethod (c$, "scrollViewToRowIn", \r
-function (alf, topRow) {\r
-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
-}, "jalview.appletgui.AlignFrame,~S");\r
-Clazz.overrideMethod (c$, "scrollViewToColumnIn", \r
-function (alf, leftHandColumn) {\r
-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
-}, "jalview.appletgui.AlignFrame,~S");\r
-c$.initBuildDetails = Clazz.defineMethod (c$, "initBuildDetails", \r
-($fz = function () {\r
-if (jalview.bin.JalviewLite.builddate == null) {\r
-jalview.bin.JalviewLite.builddate = "unknown";\r
-jalview.bin.JalviewLite.version = "test";\r
-jalview.bin.JalviewLite.installation = "Webstart";\r
-var url = jalview.bin.JalviewLite.getResource ("/.build_properties");\r
-if (url != null) {\r
-try {\r
-var reader =  new java.io.BufferedReader ( new java.io.InputStreamReader (url.openStream ()));\r
-var line;\r
-while ((line = reader.readLine ()) != null) {\r
-if (line.indexOf ("VERSION") > -1) {\r
-jalview.bin.JalviewLite.version = line.substring (line.indexOf ("=") + 1);\r
-}if (line.indexOf ("BUILD_DATE") > -1) {\r
-jalview.bin.JalviewLite.builddate = line.substring (line.indexOf ("=") + 1);\r
-}if (line.indexOf ("INSTALLATION") > -1) {\r
-jalview.bin.JalviewLite.installation = line.substring (line.indexOf ("=") + 1);\r
-}}\r
-} catch (ex) {\r
-if (Clazz.exceptionOf (ex, Exception)) {\r
-ex.printStackTrace ();\r
-} else {\r
-throw ex;\r
-}\r
-}\r
-}}}, $fz.isPrivate = true, $fz));\r
-c$.getBuildDate = Clazz.defineMethod (c$, "getBuildDate", \r
-function () {\r
-jalview.bin.JalviewLite.initBuildDetails ();\r
-return jalview.bin.JalviewLite.builddate;\r
-});\r
-c$.getInstallation = Clazz.defineMethod (c$, "getInstallation", \r
-function () {\r
-jalview.bin.JalviewLite.initBuildDetails ();\r
-return jalview.bin.JalviewLite.installation;\r
-});\r
-c$.getVersion = Clazz.defineMethod (c$, "getVersion", \r
-function () {\r
-jalview.bin.JalviewLite.initBuildDetails ();\r
-return jalview.bin.JalviewLite.version;\r
-});\r
-Clazz.overrideMethod (c$, "init", \r
-function () {\r
-this.setParams ();\r
-try {\r
-if (jalview.bin.JalviewLite.debug) {\r
-System.err.println ("Applet context is '" + this.getAppletContext ().getClass ().toString () + "'");\r
-}var scriptObject = netscape.javascript.JSObject.getWindow (this);\r
-if (jalview.bin.JalviewLite.debug && scriptObject != null) {\r
-System.err.println ("Applet has Javascript callback support.");\r
-}} catch (ex) {\r
-if (Clazz.exceptionOf (ex, Exception)) {\r
-System.err.println ("Warning: No JalviewLite javascript callbacks available.");\r
-if (jalview.bin.JalviewLite.debug) {\r
-ex.printStackTrace ();\r
-}} else {\r
-throw ex;\r
-}\r
-}\r
-if (jalview.bin.JalviewLite.debug) {\r
-System.err.println ("JalviewLite Version " + jalview.bin.JalviewLite.getVersion ());\r
-System.err.println ("Build Date : " + jalview.bin.JalviewLite.getBuildDate ());\r
-System.err.println ("Installation : " + jalview.bin.JalviewLite.getInstallation ());\r
-}if (this.externalstructureviewer != null) {\r
-this.useXtrnalSviewer = this.externalstructureviewer.trim ().toLowerCase ().equals ("true");\r
-}if (this.sep != null) {\r
-if (this.sep.length > 0) {\r
-this.separator = this.sep;\r
-if (jalview.bin.JalviewLite.debug) {\r
-System.err.println ("Separator set to '" + this.separator + "'");\r
-}} else {\r
-throw  new Error (jalview.util.MessageManager.getString ("error.invalid_separator_parameter"));\r
-}}var r = 255;\r
-var g = 255;\r
-var b = 255;\r
-if (this.rgb != null) {\r
-try {\r
-r = Integer.parseInt (this.rgb.substring (0, 2), 16);\r
-g = Integer.parseInt (this.rgb.substring (2, 4), 16);\r
-b = Integer.parseInt (this.rgb.substring (4, 6), 16);\r
-} catch (ex) {\r
-if (Clazz.exceptionOf (ex, Exception)) {\r
-r = 255;\r
-g = 255;\r
-b = 255;\r
-} else {\r
-throw ex;\r
-}\r
-}\r
-}this.rgb = this.labelColour;\r
-if (this.rgb != null) {\r
-this.launcher.setLabel (this.rgb);\r
-}this.setBackground ( new java.awt.Color (r, g, b));\r
-if (this.startupFile == null) {\r
-var data =  new StringBuffer ("PASTE");\r
-var i = 1;\r
-while ((this.startupFile = this.getParameter ("sequence" + i)) != null) {\r
-data.append (this.startupFile.toString () + "\n");\r
-i++;\r
-}\r
-if (data.length () > 5) {\r
-this.startupFile = data.toString ();\r
-}}if (!this.enableSplitFrame) {\r
-this.file2 = null;\r
-}if (this.embedded) {\r
-var loader = Clazz.innerTypeInstance (jalview.bin.JalviewLite.LoadingThread, this, null, this.startupFile, this.file2, this);\r
-{\r
-loader.run();\r
-}} else if (this.startupFile != null) {\r
-if (!this.showButton) {\r
-var loader = Clazz.innerTypeInstance (jalview.bin.JalviewLite.LoadingThread, this, null, this.startupFile, this.file2, this);\r
-loader.start ();\r
-} else {\r
-this.add (this.launcher);\r
-this.launcher.addActionListener (((Clazz.isClassDefined ("jalview.bin.JalviewLite$8") ? 0 : jalview.bin.JalviewLite.$JalviewLite$8$ ()), Clazz.innerTypeInstance (jalview.bin.JalviewLite$8, this, null)));\r
-}} else {\r
-this.startupFile = "NO FILE";\r
-this.fileFound = false;\r
-this.callInitCallback ();\r
-}});\r
-Clazz.defineMethod (c$, "initLiveConnect", \r
-($fz = function () {\r
-var notFailed = false;\r
-var tries = 0;\r
-while (!notFailed && tries < 10) {\r
-if (tries > 0) {\r
-System.err.println ("LiveConnect request thread going to sleep.");\r
-}try {\r
-Thread.sleep (700 * (1 + tries));\r
-} catch (q) {\r
-if (Clazz.exceptionOf (q, InterruptedException)) {\r
-} else {\r
-throw q;\r
-}\r
-}\r
-;if (tries++ > 0) {\r
-System.err.println ("LiveConnect request thread woken up.");\r
-}try {\r
-var scriptObject = netscape.javascript.JSObject.getWindow (this);\r
-if (scriptObject.eval ("navigator") != null) {\r
-notFailed = true;\r
-}} catch (jsex) {\r
-if (Clazz.exceptionOf (jsex, Exception)) {\r
-System.err.println ("Attempt " + tries + " to access LiveConnect javascript failed.");\r
-} else {\r
-throw jsex;\r
-}\r
-}\r
-}\r
-}, $fz.isPrivate = true, $fz));\r
-Clazz.defineMethod (c$, "callInitCallback", \r
-($fz = function () {\r
-if (this.initjscallback == null) {\r
-return;\r
-}this.initjscallback = this.initjscallback.trim ();\r
-if (this.initjscallback.length > 0) {\r
-var scriptObject = null;\r
-try {\r
-scriptObject = netscape.javascript.JSObject.getWindow (this);\r
-} catch (ex) {\r
-if (Clazz.exceptionOf (ex, Exception)) {\r
-} else {\r
-throw ex;\r
-}\r
-}\r
-;this.initLiveConnect ();\r
-if (scriptObject != null) {\r
-try {\r
- new jalview.javascript.JSFunctionExec (this).executeJavascriptFunction (true, this.initjscallback, null, "Calling oninit callback '" + this.initjscallback + "'.");\r
-} catch (e) {\r
-if (Clazz.exceptionOf (e, Exception)) {\r
-System.err.println ("Exception when executing _oninit callback '" + this.initjscallback + "'.");\r
-e.printStackTrace ();\r
-} else {\r
-throw e;\r
-}\r
-}\r
-} else {\r
-System.err.println ("Not executing _oninit callback '" + this.initjscallback + "' - no scripting allowed.");\r
-}}}, $fz.isPrivate = true, $fz));\r
-c$.addFrame = Clazz.defineMethod (c$, "addFrame", \r
-function (frame, title, width, height) {\r
-frame.setLocation (jalview.bin.JalviewLite.lastFrameX, jalview.bin.JalviewLite.lastFrameY);\r
-jalview.bin.JalviewLite.lastFrameX += 40;\r
-jalview.bin.JalviewLite.lastFrameY += 40;\r
-frame.setSize (width, height);\r
-frame.setTitle (title);\r
-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
-frame.setVisible (true);\r
-}, "javax.swing.JFrame,~S,~N,~N");\r
-Clazz.defineMethod (c$, "paintComponent", \r
-function (g) {\r
-if (!this.fileFound) {\r
-g.setColor ( new java.awt.Color (200, 200, 200));\r
-g.setColor (java.awt.Color.cyan);\r
-g.fillRect (0, 0, this.getSize ().width, this.getSize ().height);\r
-g.setColor (java.awt.Color.red);\r
-g.drawString (jalview.util.MessageManager.getString ("label.jalview_cannot_open_file"), 5, 15);\r
-g.drawString ("\"" + this.startupFile + "\"", 5, 30);\r
-} else if (this.embedded && !this.haveShownLoadMessage) {\r
-g.setColor (java.awt.Color.black);\r
-g.setFont ( new java.awt.Font ("Arial", 1, 24));\r
-g.drawString (jalview.util.MessageManager.getString ("label.jalview_applet"), 50, Clazz.doubleToInt (this.getSize ().height / 2) - 30);\r
-g.drawString (jalview.util.MessageManager.getString ("label.loading_data") + "...", 50, Clazz.doubleToInt (this.getSize ().height / 2));\r
-this.haveShownLoadMessage = true;\r
-}}, "java.awt.Graphics");\r
-Clazz.defineMethod (c$, "getAppletWindow", \r
-function (class1) {\r
-var wnds =  new java.util.Vector ();\r
-var cmp = this.getComponents ();\r
-if (cmp != null) {\r
-for (var i = 0; i < cmp.length; i++) {\r
-if (class1.isAssignableFrom (cmp[i].getClass ())) {\r
-wnds.addElement (cmp);\r
-}}\r
-}return wnds;\r
-}, "Class");\r
-Clazz.defineMethod (c$, "getDefaultTargetFrame", \r
-function () {\r
-if (this.currentAlignFrame != null) {\r
-return this.currentAlignFrame;\r
-}if (this.initialAlignFrame != null) {\r
-return this.initialAlignFrame;\r
-}System.err.println ("Implementation error: Jalview Applet API cannot work out which AlignFrame to use.");\r
-return null;\r
-});\r
-Clazz.defineMethod (c$, "separatorListToArray", \r
-function (list) {\r
-return this.separatorListToArray (list, this.separator);\r
-}, "~S");\r
-Clazz.defineMethod (c$, "separatorListToArray", \r
-function (list, separator) {\r
-var seplen = separator.length;\r
-if (list == null || list.equals ("") || list.equals (separator)) {\r
-return null;\r
-}var jv =  new java.util.Vector ();\r
-var cp = 0;\r
-var pos;\r
-while ((pos = list.indexOf (separator, cp)) > cp) {\r
-jv.addElement (list.substring (cp, pos));\r
-cp = pos + seplen;\r
-}\r
-if (cp < list.length) {\r
-var c = list.substring (cp);\r
-if (!c.equals (separator)) {\r
-jv.addElement (c);\r
-}}if (jv.size () > 0) {\r
-var v =  new Array (jv.size ());\r
-for (var i = 0; i < v.length; i++) {\r
-v[i] = jv.elementAt (i);\r
-}\r
-jv.removeAllElements ();\r
-if (jalview.bin.JalviewLite.debug) {\r
-System.err.println ("Array from '" + separator + "' separated List:\n" + v.length);\r
-for (var i = 0; i < v.length; i++) {\r
-System.err.println ("item " + i + " '" + v[i] + "'");\r
-}\r
-}return v;\r
-}if (jalview.bin.JalviewLite.debug) {\r
-System.err.println ("Empty Array from '" + separator + "' separated List");\r
-}return null;\r
-}, "~S,~S");\r
-Clazz.defineMethod (c$, "arrayToSeparatorList", \r
-function (list) {\r
-return this.arrayToSeparatorList (list, this.separator);\r
-}, "~A");\r
-Clazz.defineMethod (c$, "arrayToSeparatorList", \r
-function (list, separator) {\r
-var v =  new StringBuffer ();\r
-if (list != null && list.length > 0) {\r
-for (var i = 0, iSize = list.length; i < iSize; i++) {\r
-if (list[i] != null) {\r
-if (i > 0) {\r
-v.append (separator);\r
-}v.append (list[i]);\r
-}}\r
-if (jalview.bin.JalviewLite.debug) {\r
-System.err.println ("Returning '" + separator + "' separated List:\n");\r
-System.err.println (v);\r
-}return v.toString ();\r
-}if (jalview.bin.JalviewLite.debug) {\r
-System.err.println ("Returning empty '" + separator + "' separated List\n");\r
-}return "" + separator;\r
-}, "~A,~S");\r
-Clazz.overrideMethod (c$, "getFeatureGroups", \r
-function () {\r
-var lst = this.arrayToSeparatorList (this.getDefaultTargetFrame ().getFeatureGroups ());\r
-return lst;\r
-});\r
-Clazz.overrideMethod (c$, "getFeatureGroupsOn", \r
-function (alf) {\r
-var lst = this.arrayToSeparatorList (alf.getFeatureGroups ());\r
-return lst;\r
-}, "jalview.appletgui.AlignFrame");\r
-Clazz.overrideMethod (c$, "getFeatureGroupsOfState", \r
-function (visible) {\r
-return this.arrayToSeparatorList (this.getDefaultTargetFrame ().getFeatureGroupsOfState (visible));\r
-}, "~B");\r
-Clazz.overrideMethod (c$, "getFeatureGroupsOfStateOn", \r
-function (alf, visible) {\r
-return this.arrayToSeparatorList (alf.getFeatureGroupsOfState (visible));\r
-}, "jalview.appletgui.AlignFrame,~B");\r
-Clazz.overrideMethod (c$, "setFeatureGroupStateOn", \r
-function (alf, groups, state) {\r
-var st = state;\r
-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
-}, "jalview.appletgui.AlignFrame,~S,~B");\r
-Clazz.overrideMethod (c$, "setFeatureGroupState", \r
-function (groups, state) {\r
-this.setFeatureGroupStateOn (this.getDefaultTargetFrame (), groups, state);\r
-}, "~S,~B");\r
-Clazz.overrideMethod (c$, "getSeparator", \r
-function () {\r
-return this.separator;\r
-});\r
-Clazz.overrideMethod (c$, "setSeparator", \r
-function (separator) {\r
-if (separator == null || separator.length < 1) {\r
-separator = "\u00ac";\r
-}this.separator = separator;\r
-if (jalview.bin.JalviewLite.debug) {\r
-System.err.println ("Default Separator now: '" + separator + "'");\r
-}}, "~S");\r
-Clazz.overrideMethod (c$, "addPdbFile", \r
-function (alFrame, sequenceId, pdbEntryString, pdbFile) {\r
-return alFrame.addPdbFile (sequenceId, pdbEntryString, pdbFile);\r
-}, "jalview.appletgui.AlignFrame,~S,~S,~S");\r
-Clazz.defineMethod (c$, "setAlignPdbStructures", \r
-function (alignPdbStructures) {\r
-this.alignPdbStructures = alignPdbStructures;\r
-}, "~B");\r
-Clazz.defineMethod (c$, "isAlignPdbStructures", \r
-function () {\r
-return this.alignPdbStructures;\r
-});\r
-Clazz.overrideMethod (c$, "start", \r
-function () {\r
-});\r
-Clazz.defineMethod (c$, "setJsMessageSet", \r
-function (messageclass, viewId, colcommands) {\r
-var msgset = this.jsmessages.get (messageclass);\r
-if (msgset == null) {\r
-msgset =  new java.util.Hashtable ();\r
-this.jsmessages.put (messageclass, msgset);\r
-}msgset.put (viewId, colcommands);\r
-var l =  Clazz.newLongArray (colcommands.length, 0);\r
-for (var i = 0; i < colcommands.length; i++) {\r
-l[i] = colcommands[i].hashCode ();\r
-}\r
-this.jshashes.put (messageclass + "|" + viewId, l);\r
-}, "~S,~S,~A");\r
-Clazz.overrideMethod (c$, "getJsMessage", \r
-function (messageclass, viewId) {\r
-var msgset = this.jsmessages.get (messageclass);\r
-if (msgset != null) {\r
-var msgs = msgset.get (viewId);\r
-if (msgs != null) {\r
-for (var i = 0; i < msgs.length; i++) {\r
-if (msgs[i] != null) {\r
-var m = msgs[i];\r
-msgs[i] = null;\r
-return m;\r
-}}\r
-}}return "";\r
-}, "~S,~S");\r
-Clazz.defineMethod (c$, "isJsMessageSetChanged", \r
-function (string, string2, colcommands) {\r
-var l = this.jshashes.get (string + "|" + string2);\r
-if (l == null && colcommands != null) {\r
-return true;\r
-}for (var i = 0; i < colcommands.length; i++) {\r
-if (l[i] != colcommands[i].hashCode ()) {\r
-return true;\r
-}}\r
-return false;\r
-}, "~S,~S,~A");\r
-Clazz.defineMethod (c$, "getJsExecQueue", \r
-function () {\r
-return this.jsExecQueue;\r
-});\r
-Clazz.defineMethod (c$, "setExecutor", \r
-function (jsFunctionExec2) {\r
-this.jsFunctionExec = jsFunctionExec2;\r
-}, "jalview.javascript.JSFunctionExec");\r
-Clazz.defineMethod (c$, "getDefaultColourParameter", \r
-function (colparam, defcolour) {\r
-var colprop = this.getParameter (colparam);\r
-if (colprop == null || colprop.trim ().length == 0) {\r
-return defcolour;\r
-}var col = jalview.schemes.ColourSchemeProperty.getAWTColorFromName (colprop);\r
-if (col == null) {\r
-try {\r
-col =  new jalview.schemes.UserColourScheme (colprop).findColour ('A');\r
-} catch (ex) {\r
-if (Clazz.exceptionOf (ex, Exception)) {\r
-System.err.println ("Couldn't parse '" + colprop + "' as a colour for " + colparam);\r
-col = null;\r
-} else {\r
-throw ex;\r
-}\r
-}\r
-}return (col == null) ? defcolour : col;\r
-}, "~S,java.awt.Color");\r
-Clazz.defineMethod (c$, "openJalviewHelpUrl", \r
-function () {\r
-if (this.helpUrl == null || this.helpUrl.trim ().length < 5) {\r
-this.helpUrl = "http://www.jalview.org/help.html";\r
-}this.showURL (this.helpUrl, "HELP");\r
-});\r
-Clazz.defineMethod (c$, "resolveUrlForLocalOrAbsolute", \r
-($fz = function (url, localref) {\r
-var codebase = localref.toString ();\r
-var pt = codebase.indexOf ("?");\r
-if (pt < 0) pt = codebase.length;\r
-codebase = codebase.substring (0, pt);\r
-codebase = codebase.substring (0, codebase.lastIndexOf ("/") + 1);\r
-if (url.indexOf ("/") == 0 && !localref.getProtocol ().equals ("file")) {\r
-pt = codebase.indexOf ("/", 8);\r
-return codebase.substring (0, pt) + url;\r
-}return codebase + url;\r
-}, $fz.isPrivate = true, $fz), "~S,java.net.URL");\r
-Clazz.defineMethod (c$, "showURL", \r
-function (url, target) {\r
-try {\r
-if (url.indexOf (":") == -1) {\r
-var prepend;\r
-url = this.resolveUrlForLocalOrAbsolute (url, prepend = this.getDefaultParameter ("resolvetocodebase", false) ? this.getDocumentBase () : this.getCodeBase ());\r
-if (jalview.bin.JalviewLite.debug) {\r
-System.err.println ("Show url (prepended " + prepend + " - toggle resolvetocodebase if code/docbase resolution is wrong): " + url);\r
-}} else {\r
-if (jalview.bin.JalviewLite.debug) {\r
-System.err.println ("Show url: " + url);\r
-}}if (url.indexOf ("javascript:") == 0) {\r
-this.getAppletContext ().showDocument ( new java.net.URL (url));\r
-} else {\r
-this.getAppletContext ().showDocument ( new java.net.URL (url), target);\r
-}} catch (ex) {\r
-if (Clazz.exceptionOf (ex, Exception)) {\r
-ex.printStackTrace ();\r
-} else {\r
-throw ex;\r
-}\r
-}\r
-}, "~S,~S");\r
-c$.$JalviewLite$LoadJmolThread$ = function () {\r
-Clazz.pu$h ();\r
-c$ = Clazz.decorateAsClass (function () {\r
-Clazz.prepareCallback (this, arguments);\r
-this.running = false;\r
-Clazz.instantialize (this, arguments);\r
-}, jalview.bin.JalviewLite, "LoadJmolThread", Thread);\r
-Clazz.overrideMethod (c$, "run", \r
-function () {\r
-if (this.running || this.b$["jalview.bin.JalviewLite"].checkedForJmol) {\r
-return;\r
-}this.running = true;\r
-if (this.b$["jalview.bin.JalviewLite"].checkForJmol) {\r
-try {\r
-if (!System.getProperty ("java.version").startsWith ("1.1")) {\r
-Class.forName ("org.jmol.adapter.smarter.SmarterJmolAdapter");\r
-this.b$["jalview.bin.JalviewLite"].jmolAvailable = true;\r
-}if (!this.b$["jalview.bin.JalviewLite"].jmolAvailable) {\r
-System.out.println ("Jmol not available - Using MCview for structures");\r
-}} catch (ex) {\r
-if (Clazz.exceptionOf (ex, ClassNotFoundException)) {\r
-} else {\r
-throw ex;\r
-}\r
-}\r
-} else {\r
-this.b$["jalview.bin.JalviewLite"].jmolAvailable = false;\r
-if (jalview.bin.JalviewLite.debug) {\r
-System.err.println ("Skipping Jmol check. Will use MCView (probably)");\r
-}}this.b$["jalview.bin.JalviewLite"].checkedForJmol = true;\r
-this.running = false;\r
-});\r
-Clazz.defineMethod (c$, "notFinished", \r
-function () {\r
-return this.running || !this.b$["jalview.bin.JalviewLite"].checkedForJmol;\r
-});\r
-c$ = Clazz.p0p ();\r
-};\r
-c$.$JalviewLite$LoadingThread$ = function () {\r
-Clazz.pu$h ();\r
-c$ = Clazz.decorateAsClass (function () {\r
-Clazz.prepareCallback (this, arguments);\r
-this.protocol = null;\r
-this._file = null;\r
-this._file2 = null;\r
-this.applet = null;\r
-Clazz.instantialize (this, arguments);\r
-}, jalview.bin.JalviewLite, "LoadingThread", Thread);\r
-Clazz.defineMethod (c$, "dbgMsg", \r
-($fz = function (a) {\r
-if (jalview.bin.JalviewLite.debug) {\r
-System.err.println (a);\r
-}}, $fz.isPrivate = true, $fz), "~S");\r
-Clazz.defineMethod (c$, "setProtocolState", \r
-function (a) {\r
-if (a.startsWith ("PASTE")) {\r
-a = a.substring (5);\r
-this.protocol = jalview.io.AppletFormatAdapter.PASTE;\r
-} else if (this.inArchive (a)) {\r
-this.protocol = jalview.io.AppletFormatAdapter.CLASSLOADER;\r
-} else {\r
-a = this.addProtocol (a);\r
-this.protocol = jalview.io.AppletFormatAdapter.URL;\r
-}this.dbgMsg ("Protocol identified as '" + this.protocol + "'");\r
-return a;\r
-}, "~S");\r
-Clazz.makeConstructor (c$, \r
-function (a, b, c) {\r
-Clazz.superConstructor (this, jalview.bin.JalviewLite.LoadingThread, []);\r
-this._file = a;\r
-this._file2 = b;\r
-this.applet = c;\r
-}, "~S,~S,jalview.bin.JalviewLite");\r
-Clazz.overrideMethod (c$, "run", \r
-function () {\r
-{\r
-System.out.println("BYPASSING JMOL LOADING FOR NOW. THIS WILL BE DONE ANOTHER WAY")\r
-}this.startLoading ();\r
-});\r
-Clazz.defineMethod (c$, "startLoading", \r
-($fz = function () {\r
-this.dbgMsg ("Loading thread started with:\n>>file\n" + this._file + ">>endfile");\r
-this.dbgMsg ("Loading started.");\r
-var a = this.readAlignment (this._file);\r
-var b = this.readAlignment (this._file2);\r
-if (a != null) {\r
-this.addToDisplay (a, b);\r
-this.loadTree (a);\r
-this.loadScoreFile (a);\r
-this.loadFeatures (a);\r
-this.loadAnnotations (a);\r
-this.loadJnetFile (a);\r
-this.loadPdbFiles (a);\r
-} else {\r
-this.b$["jalview.bin.JalviewLite"].fileFound = false;\r
-this.applet.remove (this.b$["jalview.bin.JalviewLite"].launcher);\r
-this.applet.repaint ();\r
-}this.b$["jalview.bin.JalviewLite"].callInitCallback ();\r
-}, $fz.isPrivate = true, $fz));\r
-Clazz.defineMethod (c$, "addToDisplay", \r
-function (a, b) {\r
-if (b == null) {\r
-a.addToDisplay (this.b$["jalview.bin.JalviewLite"].embedded);\r
-} else {\r
-var c =  new jalview.appletgui.SplitFrame (a, b);\r
-c.addToDisplay (this.b$["jalview.bin.JalviewLite"].embedded, this.b$["jalview.bin.JalviewLite"]);\r
-}}, "jalview.appletgui.AlignFrame,jalview.appletgui.AlignFrame");\r
-Clazz.defineMethod (c$, "readAlignment", \r
-function (a) {\r
-if (a == null) {\r
-return null;\r
-}var b = this.setProtocolState (a);\r
-var c =  new jalview.io.IdentifyFile ().Identify (b, this.protocol);\r
-this.dbgMsg ("File identified as '" + c + "'");\r
-var d = null;\r
-try {\r
-d =  new jalview.io.AppletFormatAdapter ().readFile (b, this.protocol, c);\r
-if ((d != null) && (d.getHeight () > 0)) {\r
-this.dbgMsg ("Successfully loaded file.");\r
-d.setDataset (null);\r
-var e =  new jalview.appletgui.AlignFrame (d, this.applet, b, this.b$["jalview.bin.JalviewLite"].embedded, false);\r
-e.setTitle (b);\r
-if (this.b$["jalview.bin.JalviewLite"].initialAlignFrame == null) {\r
-this.b$["jalview.bin.JalviewLite"].initialAlignFrame = e;\r
-}this.b$["jalview.bin.JalviewLite"].currentAlignFrame = e;\r
-if (this.protocol === jalview.io.AppletFormatAdapter.PASTE) {\r
-e.setTitle (jalview.util.MessageManager.formatMessage ("label.sequences_from",  Clazz.newArray (-1, [this.applet.getDocumentBase ().toString ()])));\r
-}e.setStatus (jalview.util.MessageManager.formatMessage ("label.successfully_loaded_file",  Clazz.newArray (-1, [b])));\r
-return e;\r
-}} catch (ex) {\r
-if (Clazz.exceptionOf (ex, java.io.IOException)) {\r
-this.dbgMsg ("File load exception.");\r
-ex.printStackTrace ();\r
-if (jalview.bin.JalviewLite.debug) {\r
-try {\r
-var e =  new jalview.io.FileParse (b, this.protocol);\r
-var f = null;\r
-this.dbgMsg (">>>Dumping contents of '" + b + "' " + "(" + this.protocol + ")");\r
-while ((f = e.nextLine ()) != null) {\r
-this.dbgMsg (f);\r
-}\r
-this.dbgMsg (">>>Dump finished.");\r
-} catch (e) {\r
-if (Clazz.exceptionOf (e, Exception)) {\r
-System.err.println ("Exception when trying to dump the content of the file parameter.");\r
-e.printStackTrace ();\r
-} else {\r
-throw e;\r
-}\r
-}\r
-}} else {\r
-throw ex;\r
-}\r
-}\r
-return null;\r
-}, "~S");\r
-Clazz.defineMethod (c$, "loadPdbFiles", \r
-function (a) {\r
-var b = false;\r
-this.applet.setAlignPdbStructures (this.b$["jalview.bin.JalviewLite"].getDefaultParameter ("alignpdbfiles", false));\r
-var c = 0;\r
-var d =  new java.util.Vector ();\r
-var e = (this.applet.getDefaultParameter ("relaxedidmatch", false)) ?  new jalview.analysis.SequenceIdMatcher (a.getAlignViewport ().getAlignment ().getSequencesArray ()) : null;\r
-var f;\r
-do {\r
-if (c > 0) {\r
-f = this.applet.getParameter ("PDBFILE" + c);\r
-} else {\r
-f = this.b$["jalview.bin.JalviewLite"].pdbFile;\r
-}if (f != null) {\r
-var g =  new jalview.datamodel.PDBEntry ();\r
-var h;\r
-var i = null;\r
-var j = null;\r
-var k =  new java.util.StringTokenizer (f, " ");\r
-if (k.countTokens () < 2) {\r
-if (this.b$["jalview.bin.JalviewLite"].sequence != null) {\r
-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
-}} else {\r
-f = k.nextToken ();\r
-var l =  new java.util.Vector ();\r
-var m =  new java.util.Vector ();\r
-while (k.hasMoreTokens ()) {\r
-h = k.nextToken ();\r
-var n =  new java.util.StringTokenizer (h, "=");\r
-if (n.countTokens () > 1) {\r
-m.addElement (n.nextToken ());\r
-h = n.nextToken ();\r
-}l.addElement (e == null ? a.getAlignViewport ().getAlignment ().findName (h) : e.findIdMatch (h));\r
-}\r
-i =  new Array (l.size ());\r
-l.copyInto (i);\r
-if (m.size () == l.size ()) {\r
-j =  new Array (m.size ());\r
-m.copyInto (j);\r
-}}f = this.setProtocolState (f);\r
-if (this.protocol === jalview.io.AppletFormatAdapter.CLASSLOADER && !this.b$["jalview.bin.JalviewLite"].useXtrnalSviewer) {\r
-this.protocol = jalview.io.AppletFormatAdapter.URL;\r
-f = this.addProtocol (f);\r
-}g.setFile (f);\r
-if (i != null) {\r
-for (var l = 0; l < i.length; l++) {\r
-if (i[l] != null) {\r
-(i[l]).addPDBId (g);\r
-jalview.structure.StructureSelectionManager.getStructureSelectionManager (this.applet).registerPDBEntry (g);\r
-} else {\r
-if (jalview.bin.JalviewLite.debug) {\r
-System.err.println ("Warning: Possible input parsing error: Null sequence for attachment of PDB (sequence " + l + ")");\r
-}}}\r
-if (!this.b$["jalview.bin.JalviewLite"].alignPdbStructures) {\r
-a.newStructureView (this.applet, g, i, j, this.protocol);\r
-} else {\r
-d.addElement ( Clazz.newArray (-1, [g, i, j,  String.instantialize (this.protocol)]));\r
-}}}c++;\r
-} while (f != null || c < 10);\r
-if (d.size () > 0) {\r
-var g =  new Array (d.size ());\r
-var h =  new Array (d.size ());\r
-var i =  new Array (d.size ());\r
-var j =  new Array (d.size ());\r
-for (var k = 0, l = d.size (); k < l; k++) {\r
-var m = d.elementAt (k);\r
-h[k] = m[0];\r
-g[k] = m[1];\r
-i[k] = m[2];\r
-j[k] = m[3];\r
-}\r
-a.alignedStructureView (this.applet, h, g, i, j);\r
-b = true;\r
-}return b;\r
-}, "jalview.appletgui.AlignFrame");\r
-Clazz.defineMethod (c$, "loadJnetFile", \r
-function (a) {\r
-var b = false;\r
-var c = this.b$["jalview.bin.JalviewLite"].jnetFile;\r
-if (c != null) {\r
-try {\r
-c = this.setProtocolState (c);\r
-var d = jalview.jsdev.GenericFileAdapter.getFile ("JPredFile", [c, this.protocol]);\r
-jalview.io.JnetAnnotationMaker.add_annotation (d, a.viewport.getAlignment (), 0, false);\r
-var e = a.viewport.getAlignment ().getSequenceAt (0);\r
-a.viewport.getAlignment ().setSeqrep (e);\r
-var f =  new jalview.datamodel.ColumnSelection ();\r
-f.hideInsertionsFor (e);\r
-a.viewport.setColumnSelection (f);\r
-a.alignPanel.fontChanged ();\r
-a.alignPanel.setScrollValues (0, 0);\r
-b = true;\r
-} catch (ex) {\r
-if (Clazz.exceptionOf (ex, Exception)) {\r
-ex.printStackTrace ();\r
-} else {\r
-throw ex;\r
-}\r
-}\r
-}return b;\r
-}, "jalview.appletgui.AlignFrame");\r
-Clazz.defineMethod (c$, "loadAnnotations", \r
-function (a) {\r
-var b = false;\r
-var c = this.b$["jalview.bin.JalviewLite"].annotations;\r
-if (c != null) {\r
-c = this.setProtocolState (c);\r
-if ( new jalview.io.AnnotationFile ().annotateAlignmentView (a.viewport, c, this.protocol)) {\r
-a.alignPanel.fontChanged ();\r
-a.alignPanel.setScrollValues (0, 0);\r
-b = true;\r
-} else {\r
-System.err.println ("Annotations were not added from annotation file '" + c + "'");\r
-}}return b;\r
-}, "jalview.appletgui.AlignFrame");\r
-Clazz.defineMethod (c$, "loadFeatures", \r
-function (a) {\r
-var b = false;\r
-var c = this.b$["jalview.bin.JalviewLite"].hideFeatureGroups;\r
-if (c != null) {\r
-a.setFeatureGroupState (this.b$["jalview.bin.JalviewLite"].separatorListToArray (c), false);\r
-}c = this.b$["jalview.bin.JalviewLite"].showFeatureGroups;\r
-if (c != null) {\r
-a.setFeatureGroupState (this.b$["jalview.bin.JalviewLite"].separatorListToArray (c), true);\r
-}c = this.b$["jalview.bin.JalviewLite"].features;\r
-if (c != null) {\r
-c = this.setProtocolState (c);\r
-b = a.parseFeaturesFile (c, this.protocol);\r
-}c = this.b$["jalview.bin.JalviewLite"].showFeatureSettings;\r
-if (c != null && c.equalsIgnoreCase ("true")) {\r
-a.viewport.setShowSequenceFeatures (true);\r
- new jalview.appletgui.FeatureSettings (a.alignPanel);\r
-}return b;\r
-}, "jalview.appletgui.AlignFrame");\r
-Clazz.defineMethod (c$, "loadScoreFile", \r
-function (a) {\r
-var b = false;\r
-if (this.b$["jalview.bin.JalviewLite"].scoreFile != null && !"".equals (this.b$["jalview.bin.JalviewLite"].scoreFile)) {\r
-try {\r
-if (jalview.bin.JalviewLite.debug) {\r
-System.err.println ("Attempting to load T-COFFEE score file from the scoreFile parameter");\r
-}b = a.loadScoreFile (this.b$["jalview.bin.JalviewLite"].scoreFile);\r
-if (!b) {\r
-System.err.println ("Failed to parse T-COFFEE parameter as a valid score file ('" + this.b$["jalview.bin.JalviewLite"].scoreFile + "')");\r
-}} catch (e) {\r
-if (Clazz.exceptionOf (e, Exception)) {\r
-System.err.printf ("Cannot read score file: '%s'. Cause: %s \n", [this.b$["jalview.bin.JalviewLite"].scoreFile, e.getMessage ()]);\r
-} else {\r
-throw e;\r
-}\r
-}\r
-}return b;\r
-}, "jalview.appletgui.AlignFrame");\r
-Clazz.defineMethod (c$, "loadTree", \r
-function (a) {\r
-var b = false;\r
-if (this.b$["jalview.bin.JalviewLite"].treeFile == null) {\r
-this.b$["jalview.bin.JalviewLite"].treeFile = this.applet.getParameter ("treeFile");\r
-}if (this.b$["jalview.bin.JalviewLite"].treeFile != null) {\r
-try {\r
-this.b$["jalview.bin.JalviewLite"].treeFile = this.setProtocolState (this.b$["jalview.bin.JalviewLite"].treeFile);\r
-var c =  new jalview.io.NewickFile (this.b$["jalview.bin.JalviewLite"].treeFile, this.protocol);\r
-c.parse ();\r
-if (c.getTree () != null) {\r
-a.loadTree (c, this.b$["jalview.bin.JalviewLite"].treeFile);\r
-b = true;\r
-this.dbgMsg ("Successfully imported tree.");\r
-} else {\r
-this.dbgMsg ("Tree parameter did not resolve to a valid tree.");\r
-}} catch (ex) {\r
-if (Clazz.exceptionOf (ex, Exception)) {\r
-ex.printStackTrace ();\r
-} else {\r
-throw ex;\r
-}\r
-}\r
-}return b;\r
-}, "jalview.appletgui.AlignFrame");\r
-Clazz.defineMethod (c$, "inArchive", \r
-function (a) {\r
-try {\r
-var b = (this.getClass ().getResourceAsStream ("/" + a) != null);\r
-if (jalview.bin.JalviewLite.debug) {\r
-System.err.println ("Resource '" + a + "' was " + (b ? "" : "not") + " located by classloader.");\r
-}return b;\r
-} catch (ex) {\r
-if (Clazz.exceptionOf (ex, Exception)) {\r
-System.out.println ("Exception checking resources: " + a + " " + ex);\r
-return false;\r
-} else {\r
-throw ex;\r
-}\r
-}\r
-}, "~S");\r
-Clazz.defineMethod (c$, "addProtocol", \r
-function (a) {\r
-if (a.indexOf ("://") == -1) {\r
-var b = this.applet.resolveUrlForLocalOrAbsolute (a, this.b$["jalview.bin.JalviewLite"].getDocumentBase ());\r
-if (this.urlExists (b)) {\r
-if (jalview.bin.JalviewLite.debug) {\r
-System.err.println ("Prepended document base for resource: '" + a + "'");\r
-}return b;\r
-}b = this.applet.resolveUrlForLocalOrAbsolute (a, this.b$["jalview.bin.JalviewLite"].getCodeBase ());\r
-if (this.urlExists (b)) {\r
-if (jalview.bin.JalviewLite.debug) {\r
-System.err.println ("Prepended codebase for resource: '" + a + "'");\r
-}return b;\r
-}}return a;\r
-}, "~S");\r
-Clazz.defineMethod (c$, "urlExists", \r
-($fz = function (a) {\r
-var b = null;\r
-try {\r
-b =  new java.net.URL (a).openStream ();\r
-if (b != null) {\r
-return true;\r
-}} catch (x) {\r
-if (Clazz.exceptionOf (x, Exception)) {\r
-} else {\r
-throw x;\r
-}\r
-} finally {\r
-if (b != null) {\r
-try {\r
-b.close ();\r
-} catch (e) {\r
-if (Clazz.exceptionOf (e, java.io.IOException)) {\r
-} else {\r
-throw e;\r
-}\r
-}\r
-}}\r
-return false;\r
-}, $fz.isPrivate = true, $fz), "~S");\r
-c$ = Clazz.p0p ();\r
-};\r
-c$.$JalviewLite$1$ = function () {\r
-Clazz.pu$h ();\r
-c$ = Clazz.declareAnonymous (jalview.bin, "JalviewLite$1", null, Runnable);\r
-Clazz.overrideMethod (c$, "run", \r
-function () {\r
-jalview.structure.StructureSelectionManager.getStructureSelectionManager (this.f$.me).mouseOverVamsasSequence (this.f$.sq, this.f$.sq.findIndex (this.f$.pos), null);\r
-});\r
-c$ = Clazz.p0p ();\r
-};\r
-c$.$JalviewLite$2$ = function () {\r
-Clazz.pu$h ();\r
-c$ = Clazz.declareAnonymous (jalview.bin, "JalviewLite$2", null, Runnable);\r
-Clazz.overrideMethod (c$, "run", \r
-function () {\r
-jalview.structure.StructureSelectionManager.getStructureSelectionManager (this.f$.me).mouseOverVamsasSequence (this.f$.sq, this.f$.pos, null);\r
-});\r
-c$ = Clazz.p0p ();\r
-};\r
-c$.$JalviewLite$3$ = function () {\r
-Clazz.pu$h ();\r
-c$ = Clazz.declareAnonymous (jalview.bin, "JalviewLite$3", null, Runnable);\r
-Clazz.overrideMethod (c$, "run", \r
-function () {\r
-this.f$.alf.select (this.f$.sel, this.f$.csel);\r
-});\r
-c$ = Clazz.p0p ();\r
-};\r
-c$.$JalviewLite$4$ = function () {\r
-Clazz.pu$h ();\r
-c$ = Clazz.declareAnonymous (jalview.bin, "JalviewLite$4", null, Runnable);\r
-Clazz.overrideMethod (c$, "run", \r
-function () {\r
-try {\r
-jalview.structure.StructureSelectionManager.getStructureSelectionManager (this.f$.me).mouseOverStructure ( new Integer (this.f$.pdbResNum).intValue (), this.f$.chain, this.f$.pdbfile);\r
-if (jalview.bin.JalviewLite.debug) {\r
-System.err.println ("mouseOver for '" + this.f$.pdbResNum + "' in chain '" + this.f$.chain + "' in structure '" + this.f$.pdbfile + "'");\r
-}} catch (e) {\r
-if (Clazz.exceptionOf (e, NumberFormatException)) {\r
-System.err.println ("Ignoring invalid residue number string '" + this.f$.pdbResNum + "'");\r
-} else {\r
-throw e;\r
-}\r
-}\r
-});\r
-c$ = Clazz.p0p ();\r
-};\r
-c$.$JalviewLite$5$ = function () {\r
-Clazz.pu$h ();\r
-c$ = Clazz.declareAnonymous (jalview.bin, "JalviewLite$5", null, Runnable);\r
-Clazz.overrideMethod (c$, "run", \r
-function () {\r
-try {\r
-this.f$.alf.scrollTo ( new Integer (this.f$.topRow).intValue (),  new Integer (this.f$.leftHandColumn).intValue ());\r
-} catch (ex) {\r
-if (Clazz.exceptionOf (ex, Exception)) {\r
-System.err.println ("Couldn't parse integer arguments (topRow='" + this.f$.topRow + "' and leftHandColumn='" + this.f$.leftHandColumn + "')");\r
-ex.printStackTrace ();\r
-} else {\r
-throw ex;\r
-}\r
-}\r
-});\r
-c$ = Clazz.p0p ();\r
-};\r
-c$.$JalviewLite$6$ = function () {\r
-Clazz.pu$h ();\r
-c$ = Clazz.declareAnonymous (jalview.bin, "JalviewLite$6", null, Runnable);\r
-Clazz.overrideMethod (c$, "run", \r
-function () {\r
-try {\r
-this.f$.alf.scrollToRow ( new Integer (this.f$.topRow).intValue ());\r
-} catch (ex) {\r
-if (Clazz.exceptionOf (ex, Exception)) {\r
-System.err.println ("Couldn't parse integer arguments (topRow='" + this.f$.topRow + "')");\r
-ex.printStackTrace ();\r
-} else {\r
-throw ex;\r
-}\r
-}\r
-});\r
-c$ = Clazz.p0p ();\r
-};\r
-c$.$JalviewLite$7$ = function () {\r
-Clazz.pu$h ();\r
-c$ = Clazz.declareAnonymous (jalview.bin, "JalviewLite$7", null, Runnable);\r
-Clazz.overrideMethod (c$, "run", \r
-function () {\r
-try {\r
-this.f$.alf.scrollToColumn ( new Integer (this.f$.leftHandColumn).intValue ());\r
-} catch (ex) {\r
-if (Clazz.exceptionOf (ex, Exception)) {\r
-System.err.println ("Couldn't parse integer arguments (leftHandColumn='" + this.f$.leftHandColumn + "')");\r
-ex.printStackTrace ();\r
-} else {\r
-throw ex;\r
-}\r
-}\r
-});\r
-c$ = Clazz.p0p ();\r
-};\r
-c$.$JalviewLite$8$ = function () {\r
-Clazz.pu$h ();\r
-c$ = Clazz.declareAnonymous (jalview.bin, "JalviewLite$8", null, java.awt.event.ActionListener);\r
-Clazz.overrideMethod (c$, "actionPerformed", \r
-function (e) {\r
-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
-loader.start ();\r
-}, "java.awt.event.ActionEvent");\r
-c$ = Clazz.p0p ();\r
-};\r
-c$.$JalviewLite$9$ = function () {\r
-Clazz.pu$h ();\r
-c$ = Clazz.declareAnonymous (jalview.bin, "JalviewLite$9", java.awt.event.WindowAdapter);\r
-Clazz.overrideMethod (c$, "windowClosing", \r
-function (e) {\r
-if (Clazz.instanceOf (this.f$.frame, jalview.appletgui.AlignFrame)) {\r
-var vp = (this.f$.frame).viewport;\r
-(this.f$.frame).closeMenuItem_actionPerformed ();\r
-if (vp.applet.currentAlignFrame === this.f$.frame) {\r
-vp.applet.currentAlignFrame = null;\r
-}vp.applet = null;\r
-vp = null;\r
-}jalview.bin.JalviewLite.lastFrameX -= 40;\r
-jalview.bin.JalviewLite.lastFrameY -= 40;\r
-if (Clazz.instanceOf (this.f$.frame, jalview.appletgui.EmbmenuFrame)) {\r
-(this.f$.frame).destroyMenus ();\r
-}this.f$.frame.setMenuBar (null);\r
-this.f$.frame.dispose ();\r
-}, "java.awt.event.WindowEvent");\r
-Clazz.defineMethod (c$, "windowActivated", \r
-function (e) {\r
-if (Clazz.instanceOf (this.f$.frame, jalview.appletgui.AlignFrame)) {\r
-(this.f$.frame).viewport.applet.currentAlignFrame = this.f$.frame;\r
-if (jalview.bin.JalviewLite.debug) {\r
-System.err.println ("Activated window " + this.f$.frame);\r
-}}Clazz.superCall (this, jalview.bin.JalviewLite$9, "windowActivated", [e]);\r
-}, "java.awt.event.WindowEvent");\r
-c$ = Clazz.p0p ();\r
-};\r
-c$.$JalviewLite$10$ = function () {\r
-Clazz.pu$h ();\r
-c$ = Clazz.declareAnonymous (jalview.bin, "JalviewLite$10", null, Runnable);\r
-Clazz.overrideMethod (c$, "run", \r
-function () {\r
-this.f$.alf.setFeatureGroupState (this.b$["jalview.bin.JalviewLite"].separatorListToArray (this.f$.groups), this.f$.st);\r
-});\r
-c$ = Clazz.p0p ();\r
-};\r
-Clazz.defineStatics (c$,\r
-"TRUE", "true",\r
-"FALSE", "false",\r
-"debug", false,\r
-"lastFrameX", 200,\r
-"lastFrameY", 200,\r
-"builddate", null,\r
-"version", null,\r
-"installation", null);\r
-});\r
+Clazz.declarePackage ("jalview.bin");
+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 () {
+c$ = Clazz.decorateAsClass (function () {
+this.embedded = false;
+this.enableSplitFrame = false;
+this.showButton = true;
+this.checkForJmol = true;
+this.jalviewServletURL = null;
+this.startupFile = "No file";
+this.helpUrl = null;
+this.externalstructureviewer = null;
+this.sep = null;
+this.rgb = null;
+this.labelColour = null;
+this.initjscallback = null;
+this.pdbFile = null;
+this.sequence = null;
+this.jnetFile = null;
+this.annotations = null;
+this.hideFeatureGroups = null;
+this.showFeatureGroups = null;
+this.features = null;
+this.showFeatureSettings = null;
+this.scoreFile = null;
+this.treeFile = null;
+this.windowWidth = null;
+this.windowHeight = null;
+this.defaultColour = null;
+this.sortBy = null;
+this.wrap = null;
+this.centrecolumnlabels = null;
+this.userDefinedColour = null;
+this.widthScale = null;
+this.heightScale = null;
+this.upperCase = null;
+this.file2 = null;
+this.javascriptListeners = null;
+this.jsFunctionExec = null;
+this.fileFound = true;
+this.launcher = null;
+this.currentAlignFrame = null;
+this.initialAlignFrame = null;
+this.checkedForJmol = false;
+this.jmolAvailable = false;
+this.alignPdbStructures = false;
+this.useXtrnalSviewer = false;
+this.haveShownLoadMessage = false;
+if (!Clazz.isClassDefined ("jalview.bin.JalviewLite.LoadJmolThread")) {
+jalview.bin.JalviewLite.$JalviewLite$LoadJmolThread$ ();
+}
+if (!Clazz.isClassDefined ("jalview.bin.JalviewLite.LoadingThread")) {
+jalview.bin.JalviewLite.$JalviewLite$LoadingThread$ ();
+}
+this.separator = "\u00ac";
+this.jsfallbackEnabled = false;
+this.jshashes = null;
+this.jsmessages = null;
+this.jsExecQueue = null;
+Clazz.instantialize (this, arguments);
+}, jalview.bin, "JalviewLite", javax.swing.JApplet, [jalview.api.StructureSelectionManagerProvider, jalview.javascript.JalviewLiteJsApi]);
+Clazz.prepareFields (c$, function () {
+this.javascriptListeners =  new java.util.Vector ();
+this.launcher =  new javax.swing.JButton (jalview.util.MessageManager.getString ("label.start_jalview"));
+this.jshashes =  new java.util.Hashtable ();
+this.jsmessages =  new java.util.Hashtable ();
+this.jsExecQueue =  new java.util.Vector ();
+});
+Clazz.defineMethod (c$, "setParams", 
+($fz = function () {
+jalview.bin.JalviewLite.debug = "true".equalsIgnoreCase (this.getParameter ("debug"));
+this.enableSplitFrame = "true".equalsIgnoreCase (this.getParameter ("enableSplitFrame"));
+this.embedded = "true".equalsIgnoreCase (this.getParameter ("embedded"));
+this.showButton = !"false".equalsIgnoreCase (this.getParameter ("showbutton"));
+this.jalviewServletURL = this.getParameter ("APPLICATION_URL");
+this.startupFile = this.getParameter ("file");
+this.helpUrl = this.getParameter ("jalviewhelpurl");
+this.externalstructureviewer = this.getParameter ("externalstructureviewer");
+this.checkForJmol = !"true".equals (this.getParameter ("nojmol"));
+this.sep = this.getParameter ("separator");
+this.rgb = this.getParameter ("RGB");
+this.labelColour = this.getParameter ("label");
+this.initjscallback = this.getParameter ("oninit");
+this.pdbFile = this.getParameter ("PDBFILE");
+this.sequence = this.getParameter ("PDBSEQ");
+this.jnetFile = this.getParameter ("jnetfile");
+this.annotations = this.getParameter ("annotations");
+this.hideFeatureGroups = this.getParameter ("hidefeaturegroups");
+this.showFeatureGroups = this.getParameter ("showfeaturegroups");
+this.features = this.getParameter ("features");
+this.showFeatureSettings = this.getParameter ("showFeatureSettings");
+this.scoreFile = this.getParameter ("scoreFile");
+this.treeFile = this.getParameter ("tree");
+if (this.treeFile == null) this.treeFile = this.getParameter ("treeFile");
+this.windowWidth = this.getParameter ("windowWidth");
+this.windowHeight = this.getParameter ("windowHeight");
+this.defaultColour = this.getParameter ("defaultColour");
+this.sortBy = this.getParameter ("sortBy");
+this.wrap = this.getParameter ("wrap");
+this.centrecolumnlabels = this.getParameter ("centrecolumnlabels");
+this.userDefinedColour = this.getParameter ("userDefinedColour");
+this.widthScale = this.getParameter ("widthScale");
+this.heightScale = this.getParameter ("heightScale");
+this.upperCase = this.getParameter ("upperCase");
+this.file2 = this.getParameter ("file2");
+}, $fz.isPrivate = true, $fz));
+Clazz.defineMethod (c$, "getDefaultParameter", 
+function (name, def) {
+var stn;
+if ((stn = this.getParameter (name)) == null) {
+return def;
+}if (stn.toLowerCase ().equals ("true")) {
+return true;
+}return false;
+}, "~S,~B");
+Clazz.defineMethod (c$, "getLinkParams", 
+function (links) {
+var label;
+var url;
+for (var i = 1; i < 10; i++) {
+label = this.getParameter ("linkLabel_" + i);
+url = this.getParameter ("linkURL_" + i);
+if (label != null && url != null) {
+links.addElement (label + "|" + url);
+}}
+}, "java.util.Vector");
+Clazz.defineMethod (c$, "getStructureSelectionManager", 
+function () {
+return jalview.structure.StructureSelectionManager.getStructureSelectionManager (this);
+});
+Clazz.defineMethod (c$, "getSelectedSequences", 
+function () {
+return this.getSelectedSequencesFrom (this.getDefaultTargetFrame ());
+});
+Clazz.defineMethod (c$, "getSelectedSequences", 
+function (sep) {
+return this.getSelectedSequencesFrom (this.getDefaultTargetFrame (), sep);
+}, "~S");
+Clazz.defineMethod (c$, "getSelectedSequencesFrom", 
+function (alf) {
+return this.getSelectedSequencesFrom (alf, this.separator);
+}, "jalview.appletgui.AlignFrame");
+Clazz.defineMethod (c$, "getSelectedSequencesFrom", 
+function (alf, sep) {
+var result =  new StringBuffer ("");
+if (sep == null || sep.length == 0) {
+sep = this.separator;
+}if (alf.viewport.getSelectionGroup () != null) {
+var seqs = alf.viewport.getSelectionGroup ().getSequencesInOrder (alf.viewport.getAlignment ());
+for (var i = 0; i < seqs.length; i++) {
+result.append (seqs[i].getName ());
+result.append (sep);
+}
+}return result.toString ();
+}, "jalview.appletgui.AlignFrame,~S");
+Clazz.overrideMethod (c$, "highlight", 
+function (sequenceId, position, alignedPosition) {
+this.highlightIn (this.getDefaultTargetFrame (), sequenceId, position, alignedPosition);
+}, "~S,~S,~S");
+Clazz.overrideMethod (c$, "highlightIn", 
+function (alf, sequenceId, position, alignedPosition) {
+var matcher =  new jalview.analysis.SequenceIdMatcher (alf.viewport.getAlignment ().getSequencesArray ());
+var sq = matcher.findIdMatch (sequenceId);
+if (sq != null) {
+var apos = -1;
+try {
+apos =  new Integer (position).intValue ();
+apos--;
+} catch (ex) {
+if (Clazz.exceptionOf (ex, NumberFormatException)) {
+return;
+} else {
+throw ex;
+}
+}
+var me = this;
+var pos = apos;
+if (alignedPosition != null && (alignedPosition.trim ().length == 0 || alignedPosition.toLowerCase ().indexOf ("false") > -1)) {
+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))));
+} else {
+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))));
+}}}, "jalview.appletgui.AlignFrame,~S,~S,~S");
+Clazz.defineMethod (c$, "select", 
+function (sequenceIds, columns) {
+this.selectIn (this.getDefaultTargetFrame (), sequenceIds, columns, this.separator);
+}, "~S,~S");
+Clazz.defineMethod (c$, "select", 
+function (sequenceIds, columns, sep) {
+this.selectIn (this.getDefaultTargetFrame (), sequenceIds, columns, sep);
+}, "~S,~S,~S");
+Clazz.defineMethod (c$, "selectIn", 
+function (alf, sequenceIds, columns) {
+this.selectIn (alf, sequenceIds, columns, this.separator);
+}, "jalview.appletgui.AlignFrame,~S,~S");
+Clazz.defineMethod (c$, "selectIn", 
+function (alf, sequenceIds, columns, sep) {
+if (sep == null || sep.length == 0) {
+sep = this.separator;
+} else {
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Selecting region using separator string '" + this.separator + "'");
+}}var ids = this.separatorListToArray (sequenceIds, sep);
+var cols = this.separatorListToArray (columns, sep);
+var sel =  new jalview.datamodel.SequenceGroup ();
+var csel =  new jalview.datamodel.ColumnSelection ();
+var al = alf.viewport.getAlignment ();
+var matcher =  new jalview.analysis.SequenceIdMatcher (alf.viewport.getAlignment ().getSequencesArray ());
+var start = 0;
+var end = al.getWidth ();
+var alw = al.getWidth ();
+var seqsfound = true;
+if (ids != null && ids.length > 0) {
+seqsfound = false;
+for (var i = 0; i < ids.length; i++) {
+if (ids[i].trim ().length == 0) {
+continue;
+}var sq = matcher.findIdMatch (ids[i]);
+if (sq != null) {
+seqsfound = true;
+sel.addSequence (sq, false);
+}}
+}var inseqpos = false;
+if (cols != null && cols.length > 0) {
+var seset = false;
+for (var i = 0; i < cols.length; i++) {
+var cl = cols[i].trim ();
+if (cl.length == 0) {
+continue;
+}var p;
+if ((p = cl.indexOf ("-")) > -1) {
+var from = -1;
+var to = -1;
+try {
+from =  new Integer (cl.substring (0, p)).intValue ();
+from--;
+} catch (ex) {
+if (Clazz.exceptionOf (ex, NumberFormatException)) {
+System.err.println ("ERROR: Couldn't parse first integer in range element column selection string '" + cl + "' - format is 'from-to'");
+return;
+} else {
+throw ex;
+}
+}
+try {
+to =  new Integer (cl.substring (p + 1)).intValue ();
+to--;
+} catch (ex) {
+if (Clazz.exceptionOf (ex, NumberFormatException)) {
+System.err.println ("ERROR: Couldn't parse second integer in range element column selection string '" + cl + "' - format is 'from-to'");
+return;
+} else {
+throw ex;
+}
+}
+if (from >= 0 && to >= 0) {
+if (from < to) {
+var t = to;
+to = from;
+to = t;
+}if (!seset) {
+start = from;
+end = to;
+seset = true;
+} else {
+if (start > from) {
+start = from;
+}if (end < to) {
+end = to;
+}}for (var r = from; r <= to; r++) {
+if (r >= 0 && r < alw) {
+csel.addElement (r);
+}}
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Range '" + cl + "' deparsed as [" + from + "," + to + "]");
+}} else {
+System.err.println ("ERROR: Invalid Range '" + cl + "' deparsed as [" + from + "," + to + "]");
+}} else {
+var r = -1;
+try {
+r =  new Integer (cl).intValue ();
+r--;
+} catch (ex) {
+if (Clazz.exceptionOf (ex, NumberFormatException)) {
+if (cl.toLowerCase ().equals ("sequence")) {
+inseqpos = true;
+} else {
+System.err.println ("ERROR: Couldn't parse integer from point selection element of column selection string '" + cl + "'");
+return;
+}} else {
+throw ex;
+}
+}
+if (r >= 0 && r <= alw) {
+if (!seset) {
+start = r;
+end = r;
+seset = true;
+} else {
+if (start > r) {
+start = r;
+}if (end < r) {
+end = r;
+}}csel.addElement (r);
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Point selection '" + cl + "' deparsed as [" + r + "]");
+}} else {
+System.err.println ("ERROR: Invalid Point selection '" + cl + "' deparsed as [" + r + "]");
+}}}
+}if (seqsfound) {
+if (inseqpos && sel.getSize () > 0) {
+var rs = sel.getSequenceAt (0);
+start = rs.findIndex (start);
+end = rs.findIndex (end);
+if (csel != null) {
+var cs = csel.getSelected ();
+csel.clear ();
+for (var selectedCol, $selectedCol = cs.iterator (); $selectedCol.hasNext () && ((selectedCol = $selectedCol.next ()) || true);) {
+csel.addElement (rs.findIndex ((selectedCol).intValue ()));
+}
+}}sel.setStartRes (start);
+sel.setEndRes (end);
+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))));
+}}, "jalview.appletgui.AlignFrame,~S,~S,~S");
+Clazz.overrideMethod (c$, "getSelectedSequencesAsAlignment", 
+function (format, suffix) {
+return this.getSelectedSequencesAsAlignmentFrom (this.getDefaultTargetFrame (), format, suffix);
+}, "~S,~S");
+Clazz.overrideMethod (c$, "getSelectedSequencesAsAlignmentFrom", 
+function (alf, format, suffix) {
+try {
+var seqlimits = suffix.equalsIgnoreCase ("true");
+if (alf.viewport.getSelectionGroup () != null) {
+var reply =  new jalview.io.AppletFormatAdapter ().formatSequences (format,  new jalview.datamodel.Alignment (alf.viewport.getSelectionAsNewSequence ()), seqlimits);
+return reply;
+}} catch (ex) {
+if (Clazz.exceptionOf (ex, Exception)) {
+ex.printStackTrace ();
+return "Error retrieving alignment in " + format + " format. ";
+} else {
+throw ex;
+}
+}
+return "";
+}, "jalview.appletgui.AlignFrame,~S,~S");
+Clazz.overrideMethod (c$, "getAlignmentOrder", 
+function () {
+return this.getAlignmentOrderFrom (this.getDefaultTargetFrame ());
+});
+Clazz.defineMethod (c$, "getAlignmentOrderFrom", 
+function (alf) {
+return this.getAlignmentOrderFrom (alf, this.separator);
+}, "jalview.appletgui.AlignFrame");
+Clazz.defineMethod (c$, "getAlignmentOrderFrom", 
+function (alf, sep) {
+var alorder = alf.getAlignViewport ().getAlignment ();
+var order =  new Array (alorder.getHeight ());
+for (var i = 0; i < order.length; i++) {
+order[i] = alorder.getSequenceAt (i).getName ();
+}
+return this.arrayToSeparatorList (order);
+}, "jalview.appletgui.AlignFrame,~S");
+Clazz.defineMethod (c$, "orderBy", 
+function (order, undoName) {
+return this.orderBy (order, undoName, this.separator);
+}, "~S,~S");
+Clazz.defineMethod (c$, "orderBy", 
+function (order, undoName, sep) {
+return this.orderAlignmentBy (this.getDefaultTargetFrame (), order, undoName, sep);
+}, "~S,~S,~S");
+Clazz.overrideMethod (c$, "orderAlignmentBy", 
+function (alf, order, undoName, sep) {
+var ids = this.separatorListToArray (order, sep);
+var sqs = null;
+if (ids != null && ids.length > 0) {
+var matcher =  new jalview.analysis.SequenceIdMatcher (alf.viewport.getAlignment ().getSequencesArray ());
+var s = 0;
+sqs =  new Array (ids.length);
+for (var i = 0; i < ids.length; i++) {
+if (ids[i].trim ().length == 0) {
+continue;
+}var sq = matcher.findIdMatch (ids[i]);
+if (sq != null) {
+sqs[s++] = sq;
+}}
+if (s > 0) {
+var sqq =  new Array (s);
+System.arraycopy (sqs, 0, sqq, 0, s);
+sqs = sqq;
+} else {
+sqs = null;
+}}if (sqs == null) {
+return "";
+};var aorder =  new jalview.datamodel.AlignmentOrder (sqs);
+if (undoName != null && undoName.trim ().length == 0) {
+undoName = null;
+}var _undoName = undoName;
+return alf.sortBy (aorder, _undoName) ? "true" : "";
+}, "jalview.appletgui.AlignFrame,~S,~S,~S");
+Clazz.defineMethod (c$, "getAlignment", 
+function (format) {
+return this.getAlignmentFrom (this.getDefaultTargetFrame (), format, "true");
+}, "~S");
+Clazz.defineMethod (c$, "getAlignmentFrom", 
+function (alf, format) {
+return this.getAlignmentFrom (alf, format, "true");
+}, "jalview.appletgui.AlignFrame,~S");
+Clazz.defineMethod (c$, "getAlignment", 
+function (format, suffix) {
+return this.getAlignmentFrom (this.getDefaultTargetFrame (), format, suffix);
+}, "~S,~S");
+Clazz.defineMethod (c$, "getAlignmentFrom", 
+function (alf, format, suffix) {
+try {
+var seqlimits = suffix.equalsIgnoreCase ("true");
+var reply =  new jalview.io.AppletFormatAdapter ().formatSequences (format, alf.viewport.getAlignment (), seqlimits);
+return reply;
+} catch (ex) {
+if (Clazz.exceptionOf (ex, Exception)) {
+ex.printStackTrace ();
+return "Error retrieving alignment in " + format + " format. ";
+} else {
+throw ex;
+}
+}
+}, "jalview.appletgui.AlignFrame,~S,~S");
+Clazz.overrideMethod (c$, "loadAnnotation", 
+function (annotation) {
+this.loadAnnotationFrom (this.getDefaultTargetFrame (), annotation);
+}, "~S");
+Clazz.overrideMethod (c$, "loadAnnotationFrom", 
+function (alf, annotation) {
+if ( new jalview.io.AnnotationFile ().annotateAlignmentView (alf.getAlignViewport (), annotation, jalview.io.AppletFormatAdapter.PASTE)) {
+alf.alignPanel.fontChanged ();
+alf.alignPanel.setScrollValues (0, 0);
+} else {
+alf.parseFeaturesFile (annotation, jalview.io.AppletFormatAdapter.PASTE);
+}}, "jalview.appletgui.AlignFrame,~S");
+Clazz.overrideMethod (c$, "loadFeatures", 
+function (features, autoenabledisplay) {
+this.loadFeaturesFrom (this.getDefaultTargetFrame (), features, autoenabledisplay);
+}, "~S,~B");
+Clazz.overrideMethod (c$, "loadFeaturesFrom", 
+function (alf, features, autoenabledisplay) {
+return alf.parseFeaturesFile (features, jalview.io.AppletFormatAdapter.PASTE, autoenabledisplay);
+}, "jalview.appletgui.AlignFrame,~S,~B");
+Clazz.overrideMethod (c$, "getFeatures", 
+function (format) {
+return this.getFeaturesFrom (this.getDefaultTargetFrame (), format);
+}, "~S");
+Clazz.overrideMethod (c$, "getFeaturesFrom", 
+function (alf, format) {
+return alf.outputFeatures (false, format);
+}, "jalview.appletgui.AlignFrame,~S");
+Clazz.overrideMethod (c$, "getAnnotation", 
+function () {
+return this.getAnnotationFrom (this.getDefaultTargetFrame ());
+});
+Clazz.overrideMethod (c$, "getAnnotationFrom", 
+function (alf) {
+return alf.outputAnnotations (false);
+}, "jalview.appletgui.AlignFrame");
+Clazz.defineMethod (c$, "newView", 
+function () {
+return this.newViewFrom (this.getDefaultTargetFrame ());
+});
+Clazz.defineMethod (c$, "newView", 
+function (name) {
+return this.newViewFrom (this.getDefaultTargetFrame (), name);
+}, "~S");
+Clazz.defineMethod (c$, "newViewFrom", 
+function (alf) {
+return alf.newView (null);
+}, "jalview.appletgui.AlignFrame");
+Clazz.defineMethod (c$, "newViewFrom", 
+function (alf, name) {
+return alf.newView (name);
+}, "jalview.appletgui.AlignFrame,~S");
+Clazz.overrideMethod (c$, "loadAlignment", 
+function (text, title) {
+var al = null;
+var format =  new jalview.io.IdentifyFile ().Identify (text, jalview.io.AppletFormatAdapter.PASTE);
+try {
+al =  new jalview.io.AppletFormatAdapter ().readFile (text, jalview.io.AppletFormatAdapter.PASTE, format);
+if (al.getHeight () > 0) {
+return  new jalview.appletgui.AlignFrame (al, this, title, false);
+}} catch (ex) {
+if (Clazz.exceptionOf (ex, java.io.IOException)) {
+ex.printStackTrace ();
+} else {
+throw ex;
+}
+}
+return null;
+}, "~S,~S");
+Clazz.defineMethod (c$, "setMouseoverListener", 
+function (listener) {
+this.setMouseoverListener (this.currentAlignFrame, listener);
+}, "~S");
+Clazz.defineMethod (c$, "setMouseoverListener", 
+function (af, listener) {
+if (listener != null) {
+listener = listener.trim ();
+if (listener.length == 0) {
+System.err.println ("jalview Javascript error: Ignoring empty function for mouseover listener.");
+return;
+}}var mol =  new jalview.javascript.MouseOverListener (this, af, listener);
+this.javascriptListeners.addElement (mol);
+jalview.structure.StructureSelectionManager.getStructureSelectionManager (this).addStructureViewerListener (mol);
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Added a mouseover listener for " + ((af == null) ? "All frames" : "Just views for " + af.getAlignViewport ().getSequenceSetId ()));
+System.err.println ("There are now " + this.javascriptListeners.size () + " listeners in total.");
+}}, "jalview.appletgui.AlignFrame,~S");
+Clazz.defineMethod (c$, "setSelectionListener", 
+function (listener) {
+this.setSelectionListener (null, listener);
+}, "~S");
+Clazz.defineMethod (c$, "setSelectionListener", 
+function (af, listener) {
+if (listener != null) {
+listener = listener.trim ();
+if (listener.length == 0) {
+System.err.println ("jalview Javascript error: Ignoring empty function for selection listener.");
+return;
+}}var mol =  new jalview.javascript.JsSelectionSender (this, af, listener);
+this.javascriptListeners.addElement (mol);
+jalview.structure.StructureSelectionManager.getStructureSelectionManager (this).addSelectionListener (mol);
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Added a selection listener for " + ((af == null) ? "All frames" : "Just views for " + af.getAlignViewport ().getSequenceSetId ()));
+System.err.println ("There are now " + this.javascriptListeners.size () + " listeners in total.");
+}}, "jalview.appletgui.AlignFrame,~S");
+Clazz.overrideMethod (c$, "setStructureListener", 
+function (listener, modelSet) {
+if (listener != null) {
+listener = listener.trim ();
+if (listener.length == 0) {
+System.err.println ("jalview Javascript error: Ignoring empty function for selection listener.");
+return;
+}}var mol =  new jalview.javascript.MouseOverStructureListener (this, listener, this.separatorListToArray (modelSet));
+this.javascriptListeners.addElement (mol);
+jalview.structure.StructureSelectionManager.getStructureSelectionManager (this).addStructureViewerListener (mol);
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Added a javascript structure viewer listener '" + listener + "'");
+System.err.println ("There are now " + this.javascriptListeners.size () + " listeners in total.");
+}}, "~S,~S");
+Clazz.overrideMethod (c$, "removeJavascriptListener", 
+function (af, listener) {
+if (listener != null) {
+listener = listener.trim ();
+if (listener.length == 0) {
+listener = null;
+}}var rprt = false;
+for (var ms = 0, msSize = this.javascriptListeners.size (); ms < msSize; ) {
+var lstn = this.javascriptListeners.elementAt (ms);
+var lstner = lstn;
+if ((af == null || lstner.getAlignFrame () === af) && (listener == null || lstner.getListenerFunction ().equals (listener))) {
+this.javascriptListeners.removeElement (lstner);
+msSize--;
+if (Clazz.instanceOf (lstner, jalview.structure.SelectionListener)) {
+jalview.structure.StructureSelectionManager.getStructureSelectionManager (this).removeSelectionListener (lstner);
+} else {
+jalview.structure.StructureSelectionManager.getStructureSelectionManager (this).removeStructureViewerListener (lstner, null);
+}rprt = jalview.bin.JalviewLite.debug;
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Removed listener '" + listener + "'");
+}} else {
+ms++;
+}}
+if (rprt) {
+System.err.println ("There are now " + this.javascriptListeners.size () + " listeners in total.");
+}}, "jalview.appletgui.AlignFrame,~S");
+Clazz.overrideMethod (c$, "stop", 
+function () {
+System.err.println ("Applet " + this.getName () + " stop().");
+this.tidyUp ();
+});
+Clazz.overrideMethod (c$, "destroy", 
+function () {
+System.err.println ("Applet " + this.getName () + " destroy().");
+this.tidyUp ();
+});
+Clazz.defineMethod (c$, "tidyUp", 
+($fz = function () {
+this.removeAll ();
+if (this.currentAlignFrame != null && this.currentAlignFrame.viewport != null && this.currentAlignFrame.viewport.applet != null) {
+var av = this.currentAlignFrame.viewport;
+this.currentAlignFrame.closeMenuItem_actionPerformed ();
+av.applet = null;
+this.currentAlignFrame = null;
+}if (this.javascriptListeners != null) {
+while (this.javascriptListeners.size () > 0) {
+var mol = this.javascriptListeners.elementAt (0);
+this.javascriptListeners.removeElement (mol);
+if (Clazz.instanceOf (mol, jalview.structure.SelectionListener)) {
+jalview.structure.StructureSelectionManager.getStructureSelectionManager (this).removeSelectionListener (mol);
+} else {
+jalview.structure.StructureSelectionManager.getStructureSelectionManager (this).removeStructureViewerListener (mol, null);
+}mol.jvlite = null;
+}
+}if (this.jsFunctionExec != null) {
+this.jsFunctionExec.stopQueue ();
+this.jsFunctionExec.jvlite = null;
+}this.initialAlignFrame = null;
+this.jsFunctionExec = null;
+this.javascriptListeners = null;
+jalview.structure.StructureSelectionManager.release (this);
+}, $fz.isPrivate = true, $fz));
+Clazz.overrideMethod (c$, "mouseOverStructure", 
+function (pdbResNum, chain, pdbfile) {
+var me = this;
+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))));
+}, "~S,~S,~S");
+Clazz.overrideMethod (c$, "scrollViewToIn", 
+function (alf, topRow, leftHandColumn) {
+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))));
+}, "jalview.appletgui.AlignFrame,~S,~S");
+Clazz.overrideMethod (c$, "scrollViewToRowIn", 
+function (alf, topRow) {
+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))));
+}, "jalview.appletgui.AlignFrame,~S");
+Clazz.overrideMethod (c$, "scrollViewToColumnIn", 
+function (alf, leftHandColumn) {
+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))));
+}, "jalview.appletgui.AlignFrame,~S");
+c$.initBuildDetails = Clazz.defineMethod (c$, "initBuildDetails", 
+($fz = function () {
+if (jalview.bin.JalviewLite.builddate == null) {
+jalview.bin.JalviewLite.builddate = "unknown";
+jalview.bin.JalviewLite.version = "test";
+jalview.bin.JalviewLite.installation = "Webstart";
+var url = jalview.bin.JalviewLite.getResource ("/.build_properties");
+if (url != null) {
+try {
+var reader =  new java.io.BufferedReader ( new java.io.InputStreamReader (url.openStream ()));
+var line;
+while ((line = reader.readLine ()) != null) {
+if (line.indexOf ("VERSION") > -1) {
+jalview.bin.JalviewLite.version = line.substring (line.indexOf ("=") + 1);
+}if (line.indexOf ("BUILD_DATE") > -1) {
+jalview.bin.JalviewLite.builddate = line.substring (line.indexOf ("=") + 1);
+}if (line.indexOf ("INSTALLATION") > -1) {
+jalview.bin.JalviewLite.installation = line.substring (line.indexOf ("=") + 1);
+}}
+} catch (ex) {
+if (Clazz.exceptionOf (ex, Exception)) {
+ex.printStackTrace ();
+} else {
+throw ex;
+}
+}
+}}}, $fz.isPrivate = true, $fz));
+c$.getBuildDate = Clazz.defineMethod (c$, "getBuildDate", 
+function () {
+jalview.bin.JalviewLite.initBuildDetails ();
+return jalview.bin.JalviewLite.builddate;
+});
+c$.getInstallation = Clazz.defineMethod (c$, "getInstallation", 
+function () {
+jalview.bin.JalviewLite.initBuildDetails ();
+return jalview.bin.JalviewLite.installation;
+});
+c$.getVersion = Clazz.defineMethod (c$, "getVersion", 
+function () {
+jalview.bin.JalviewLite.initBuildDetails ();
+return jalview.bin.JalviewLite.version;
+});
+Clazz.overrideMethod (c$, "init", 
+function () {
+this.setParams ();
+try {
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Applet context is '" + this.getAppletContext ().getClass ().toString () + "'");
+}var scriptObject = netscape.javascript.JSObject.getWindow (this);
+if (jalview.bin.JalviewLite.debug && scriptObject != null) {
+System.err.println ("Applet has Javascript callback support.");
+}} catch (ex) {
+if (Clazz.exceptionOf (ex, Exception)) {
+System.err.println ("Warning: No JalviewLite javascript callbacks available.");
+if (jalview.bin.JalviewLite.debug) {
+ex.printStackTrace ();
+}} else {
+throw ex;
+}
+}
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("JalviewLite Version " + jalview.bin.JalviewLite.getVersion ());
+System.err.println ("Build Date : " + jalview.bin.JalviewLite.getBuildDate ());
+System.err.println ("Installation : " + jalview.bin.JalviewLite.getInstallation ());
+}if (this.externalstructureviewer != null) {
+this.useXtrnalSviewer = this.externalstructureviewer.trim ().toLowerCase ().equals ("true");
+}if (this.sep != null) {
+if (this.sep.length > 0) {
+this.separator = this.sep;
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Separator set to '" + this.separator + "'");
+}} else {
+throw  new Error (jalview.util.MessageManager.getString ("error.invalid_separator_parameter"));
+}}var r = 255;
+var g = 255;
+var b = 255;
+if (this.rgb != null) {
+try {
+r = Integer.parseInt (this.rgb.substring (0, 2), 16);
+g = Integer.parseInt (this.rgb.substring (2, 4), 16);
+b = Integer.parseInt (this.rgb.substring (4, 6), 16);
+} catch (ex) {
+if (Clazz.exceptionOf (ex, Exception)) {
+r = 255;
+g = 255;
+b = 255;
+} else {
+throw ex;
+}
+}
+}this.rgb = this.labelColour;
+if (this.rgb != null) {
+this.launcher.setLabel (this.rgb);
+}this.setBackground ( new java.awt.Color (r, g, b));
+if (this.startupFile == null) {
+var data =  new StringBuffer ("PASTE");
+var i = 1;
+while ((this.startupFile = this.getParameter ("sequence" + i)) != null) {
+data.append (this.startupFile.toString () + "\n");
+i++;
+}
+if (data.length () > 5) {
+this.startupFile = data.toString ();
+}}if (!this.enableSplitFrame) {
+this.file2 = null;
+}if (this.embedded) {
+var loader = Clazz.innerTypeInstance (jalview.bin.JalviewLite.LoadingThread, this, null, this.startupFile, this.file2, this);
+{
+loader.run();
+}} else if (this.startupFile != null) {
+if (!this.showButton) {
+var loader = Clazz.innerTypeInstance (jalview.bin.JalviewLite.LoadingThread, this, null, this.startupFile, this.file2, this);
+loader.start ();
+} else {
+this.add (this.launcher);
+this.launcher.addActionListener (((Clazz.isClassDefined ("jalview.bin.JalviewLite$8") ? 0 : jalview.bin.JalviewLite.$JalviewLite$8$ ()), Clazz.innerTypeInstance (jalview.bin.JalviewLite$8, this, null)));
+}} else {
+this.startupFile = "NO FILE";
+this.fileFound = false;
+this.callInitCallback ();
+}});
+Clazz.defineMethod (c$, "initLiveConnect", 
+($fz = function () {
+var notFailed = false;
+var tries = 0;
+while (!notFailed && tries < 10) {
+if (tries > 0) {
+System.err.println ("LiveConnect request thread going to sleep.");
+}try {
+Thread.sleep (700 * (1 + tries));
+} catch (q) {
+if (Clazz.exceptionOf (q, InterruptedException)) {
+} else {
+throw q;
+}
+}
+;if (tries++ > 0) {
+System.err.println ("LiveConnect request thread woken up.");
+}try {
+var scriptObject = netscape.javascript.JSObject.getWindow (this);
+if (scriptObject.eval ("navigator") != null) {
+notFailed = true;
+}} catch (jsex) {
+if (Clazz.exceptionOf (jsex, Exception)) {
+System.err.println ("Attempt " + tries + " to access LiveConnect javascript failed.");
+} else {
+throw jsex;
+}
+}
+}
+}, $fz.isPrivate = true, $fz));
+Clazz.defineMethod (c$, "callInitCallback", 
+($fz = function () {
+if (this.initjscallback == null) {
+return;
+}this.initjscallback = this.initjscallback.trim ();
+if (this.initjscallback.length > 0) {
+var scriptObject = null;
+try {
+scriptObject = netscape.javascript.JSObject.getWindow (this);
+} catch (ex) {
+if (Clazz.exceptionOf (ex, Exception)) {
+} else {
+throw ex;
+}
+}
+;this.initLiveConnect ();
+if (scriptObject != null) {
+try {
+ new jalview.javascript.JSFunctionExec (this).executeJavascriptFunction (true, this.initjscallback, null, "Calling oninit callback '" + this.initjscallback + "'.");
+} catch (e) {
+if (Clazz.exceptionOf (e, Exception)) {
+System.err.println ("Exception when executing _oninit callback '" + this.initjscallback + "'.");
+e.printStackTrace ();
+} else {
+throw e;
+}
+}
+} else {
+System.err.println ("Not executing _oninit callback '" + this.initjscallback + "' - no scripting allowed.");
+}}}, $fz.isPrivate = true, $fz));
+c$.addFrame = Clazz.defineMethod (c$, "addFrame", 
+function (frame, title, width, height) {
+frame.setLocation (jalview.bin.JalviewLite.lastFrameX, jalview.bin.JalviewLite.lastFrameY);
+jalview.bin.JalviewLite.lastFrameX += 40;
+jalview.bin.JalviewLite.lastFrameY += 40;
+frame.setSize (width, height);
+frame.setTitle (title);
+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))));
+frame.setVisible (true);
+}, "javax.swing.JFrame,~S,~N,~N");
+Clazz.defineMethod (c$, "paintComponent", 
+function (g) {
+if (!this.fileFound) {
+g.setColor ( new java.awt.Color (200, 200, 200));
+g.setColor (java.awt.Color.cyan);
+g.fillRect (0, 0, this.getSize ().width, this.getSize ().height);
+g.setColor (java.awt.Color.red);
+g.drawString (jalview.util.MessageManager.getString ("label.jalview_cannot_open_file"), 5, 15);
+g.drawString ("\"" + this.startupFile + "\"", 5, 30);
+} else if (this.embedded && !this.haveShownLoadMessage) {
+g.setColor (java.awt.Color.black);
+g.setFont ( new java.awt.Font ("Arial", 1, 24));
+g.drawString (jalview.util.MessageManager.getString ("label.jalview_applet"), 50, Clazz.doubleToInt (this.getSize ().height / 2) - 30);
+g.drawString (jalview.util.MessageManager.getString ("label.loading_data") + "...", 50, Clazz.doubleToInt (this.getSize ().height / 2));
+this.haveShownLoadMessage = true;
+}}, "java.awt.Graphics");
+Clazz.defineMethod (c$, "getAppletWindow", 
+function (class1) {
+var wnds =  new java.util.Vector ();
+var cmp = this.getComponents ();
+if (cmp != null) {
+for (var i = 0; i < cmp.length; i++) {
+if (class1.isAssignableFrom (cmp[i].getClass ())) {
+wnds.addElement (cmp);
+}}
+}return wnds;
+}, "Class");
+Clazz.defineMethod (c$, "getDefaultTargetFrame", 
+function () {
+if (this.currentAlignFrame != null) {
+return this.currentAlignFrame;
+}if (this.initialAlignFrame != null) {
+return this.initialAlignFrame;
+}System.err.println ("Implementation error: Jalview Applet API cannot work out which AlignFrame to use.");
+return null;
+});
+Clazz.defineMethod (c$, "separatorListToArray", 
+function (list) {
+return this.separatorListToArray (list, this.separator);
+}, "~S");
+Clazz.defineMethod (c$, "separatorListToArray", 
+function (list, separator) {
+var seplen = separator.length;
+if (list == null || list.equals ("") || list.equals (separator)) {
+return null;
+}var jv =  new java.util.Vector ();
+var cp = 0;
+var pos;
+while ((pos = list.indexOf (separator, cp)) > cp) {
+jv.addElement (list.substring (cp, pos));
+cp = pos + seplen;
+}
+if (cp < list.length) {
+var c = list.substring (cp);
+if (!c.equals (separator)) {
+jv.addElement (c);
+}}if (jv.size () > 0) {
+var v =  new Array (jv.size ());
+for (var i = 0; i < v.length; i++) {
+v[i] = jv.elementAt (i);
+}
+jv.removeAllElements ();
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Array from '" + separator + "' separated List:\n" + v.length);
+for (var i = 0; i < v.length; i++) {
+System.err.println ("item " + i + " '" + v[i] + "'");
+}
+}return v;
+}if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Empty Array from '" + separator + "' separated List");
+}return null;
+}, "~S,~S");
+Clazz.defineMethod (c$, "arrayToSeparatorList", 
+function (list) {
+return this.arrayToSeparatorList (list, this.separator);
+}, "~A");
+Clazz.defineMethod (c$, "arrayToSeparatorList", 
+function (list, separator) {
+var v =  new StringBuffer ();
+if (list != null && list.length > 0) {
+for (var i = 0, iSize = list.length; i < iSize; i++) {
+if (list[i] != null) {
+if (i > 0) {
+v.append (separator);
+}v.append (list[i]);
+}}
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Returning '" + separator + "' separated List:\n");
+System.err.println (v);
+}return v.toString ();
+}if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Returning empty '" + separator + "' separated List\n");
+}return "" + separator;
+}, "~A,~S");
+Clazz.overrideMethod (c$, "getFeatureGroups", 
+function () {
+var lst = this.arrayToSeparatorList (this.getDefaultTargetFrame ().getFeatureGroups ());
+return lst;
+});
+Clazz.overrideMethod (c$, "getFeatureGroupsOn", 
+function (alf) {
+var lst = this.arrayToSeparatorList (alf.getFeatureGroups ());
+return lst;
+}, "jalview.appletgui.AlignFrame");
+Clazz.overrideMethod (c$, "getFeatureGroupsOfState", 
+function (visible) {
+return this.arrayToSeparatorList (this.getDefaultTargetFrame ().getFeatureGroupsOfState (visible));
+}, "~B");
+Clazz.overrideMethod (c$, "getFeatureGroupsOfStateOn", 
+function (alf, visible) {
+return this.arrayToSeparatorList (alf.getFeatureGroupsOfState (visible));
+}, "jalview.appletgui.AlignFrame,~B");
+Clazz.overrideMethod (c$, "setFeatureGroupStateOn", 
+function (alf, groups, state) {
+var st = state;
+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))));
+}, "jalview.appletgui.AlignFrame,~S,~B");
+Clazz.overrideMethod (c$, "setFeatureGroupState", 
+function (groups, state) {
+this.setFeatureGroupStateOn (this.getDefaultTargetFrame (), groups, state);
+}, "~S,~B");
+Clazz.overrideMethod (c$, "getSeparator", 
+function () {
+return this.separator;
+});
+Clazz.overrideMethod (c$, "setSeparator", 
+function (separator) {
+if (separator == null || separator.length < 1) {
+separator = "\u00ac";
+}this.separator = separator;
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Default Separator now: '" + separator + "'");
+}}, "~S");
+Clazz.overrideMethod (c$, "addPdbFile", 
+function (alFrame, sequenceId, pdbEntryString, pdbFile) {
+return alFrame.addPdbFile (sequenceId, pdbEntryString, pdbFile);
+}, "jalview.appletgui.AlignFrame,~S,~S,~S");
+Clazz.defineMethod (c$, "setAlignPdbStructures", 
+function (alignPdbStructures) {
+this.alignPdbStructures = alignPdbStructures;
+}, "~B");
+Clazz.defineMethod (c$, "isAlignPdbStructures", 
+function () {
+return this.alignPdbStructures;
+});
+Clazz.overrideMethod (c$, "start", 
+function () {
+});
+Clazz.defineMethod (c$, "setJsMessageSet", 
+function (messageclass, viewId, colcommands) {
+var msgset = this.jsmessages.get (messageclass);
+if (msgset == null) {
+msgset =  new java.util.Hashtable ();
+this.jsmessages.put (messageclass, msgset);
+}msgset.put (viewId, colcommands);
+var l =  Clazz.newLongArray (colcommands.length, 0);
+for (var i = 0; i < colcommands.length; i++) {
+l[i] = colcommands[i].hashCode ();
+}
+this.jshashes.put (messageclass + "|" + viewId, l);
+}, "~S,~S,~A");
+Clazz.overrideMethod (c$, "getJsMessage", 
+function (messageclass, viewId) {
+var msgset = this.jsmessages.get (messageclass);
+if (msgset != null) {
+var msgs = msgset.get (viewId);
+if (msgs != null) {
+for (var i = 0; i < msgs.length; i++) {
+if (msgs[i] != null) {
+var m = msgs[i];
+msgs[i] = null;
+return m;
+}}
+}}return "";
+}, "~S,~S");
+Clazz.defineMethod (c$, "isJsMessageSetChanged", 
+function (string, string2, colcommands) {
+var l = this.jshashes.get (string + "|" + string2);
+if (l == null && colcommands != null) {
+return true;
+}for (var i = 0; i < colcommands.length; i++) {
+if (l[i] != colcommands[i].hashCode ()) {
+return true;
+}}
+return false;
+}, "~S,~S,~A");
+Clazz.defineMethod (c$, "getJsExecQueue", 
+function () {
+return this.jsExecQueue;
+});
+Clazz.defineMethod (c$, "setExecutor", 
+function (jsFunctionExec2) {
+this.jsFunctionExec = jsFunctionExec2;
+}, "jalview.javascript.JSFunctionExec");
+Clazz.defineMethod (c$, "getDefaultColourParameter", 
+function (colparam, defcolour) {
+var colprop = this.getParameter (colparam);
+if (colprop == null || colprop.trim ().length == 0) {
+return defcolour;
+}var col = jalview.schemes.ColourSchemeProperty.getAWTColorFromName (colprop);
+if (col == null) {
+try {
+col =  new jalview.schemes.UserColourScheme (colprop).findColour ('A');
+} catch (ex) {
+if (Clazz.exceptionOf (ex, Exception)) {
+System.err.println ("Couldn't parse '" + colprop + "' as a colour for " + colparam);
+col = null;
+} else {
+throw ex;
+}
+}
+}return (col == null) ? defcolour : col;
+}, "~S,java.awt.Color");
+Clazz.defineMethod (c$, "openJalviewHelpUrl", 
+function () {
+if (this.helpUrl == null || this.helpUrl.trim ().length < 5) {
+this.helpUrl = "http://www.jalview.org/help.html";
+}this.showURL (this.helpUrl, "HELP");
+});
+Clazz.defineMethod (c$, "resolveUrlForLocalOrAbsolute", 
+($fz = function (url, localref) {
+var codebase = localref.toString ();
+var pt = codebase.indexOf ("?");
+if (pt < 0) pt = codebase.length;
+codebase = codebase.substring (0, pt);
+codebase = codebase.substring (0, codebase.lastIndexOf ("/") + 1);
+if (url.indexOf ("/") == 0 && !localref.getProtocol ().equals ("file")) {
+pt = codebase.indexOf ("/", 8);
+return codebase.substring (0, pt) + url;
+}return codebase + url;
+}, $fz.isPrivate = true, $fz), "~S,java.net.URL");
+Clazz.defineMethod (c$, "showURL", 
+function (url, target) {
+try {
+if (url.indexOf (":") == -1) {
+var prepend;
+url = this.resolveUrlForLocalOrAbsolute (url, prepend = this.getDefaultParameter ("resolvetocodebase", false) ? this.getDocumentBase () : this.getCodeBase ());
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Show url (prepended " + prepend + " - toggle resolvetocodebase if code/docbase resolution is wrong): " + url);
+}} else {
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Show url: " + url);
+}}if (url.indexOf ("javascript:") == 0) {
+this.getAppletContext ().showDocument ( new java.net.URL (url));
+} else {
+this.getAppletContext ().showDocument ( new java.net.URL (url), target);
+}} catch (ex) {
+if (Clazz.exceptionOf (ex, Exception)) {
+ex.printStackTrace ();
+} else {
+throw ex;
+}
+}
+}, "~S,~S");
+c$.$JalviewLite$LoadJmolThread$ = function () {
+Clazz.pu$h ();
+c$ = Clazz.decorateAsClass (function () {
+Clazz.prepareCallback (this, arguments);
+this.running = false;
+Clazz.instantialize (this, arguments);
+}, jalview.bin.JalviewLite, "LoadJmolThread", Thread);
+Clazz.overrideMethod (c$, "run", 
+function () {
+if (this.running || this.b$["jalview.bin.JalviewLite"].checkedForJmol) {
+return;
+}this.running = true;
+if (this.b$["jalview.bin.JalviewLite"].checkForJmol) {
+try {
+if (!System.getProperty ("java.version").startsWith ("1.1")) {
+Class.forName ("org.jmol.adapter.smarter.SmarterJmolAdapter");
+this.b$["jalview.bin.JalviewLite"].jmolAvailable = true;
+}if (!this.b$["jalview.bin.JalviewLite"].jmolAvailable) {
+System.out.println ("Jmol not available - Using MCview for structures");
+}} catch (ex) {
+if (Clazz.exceptionOf (ex, ClassNotFoundException)) {
+} else {
+throw ex;
+}
+}
+} else {
+this.b$["jalview.bin.JalviewLite"].jmolAvailable = false;
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Skipping Jmol check. Will use MCView (probably)");
+}}this.b$["jalview.bin.JalviewLite"].checkedForJmol = true;
+this.running = false;
+});
+Clazz.defineMethod (c$, "notFinished", 
+function () {
+return this.running || !this.b$["jalview.bin.JalviewLite"].checkedForJmol;
+});
+c$ = Clazz.p0p ();
+};
+c$.$JalviewLite$LoadingThread$ = function () {
+Clazz.pu$h ();
+c$ = Clazz.decorateAsClass (function () {
+Clazz.prepareCallback (this, arguments);
+this.protocol = null;
+this._file = null;
+this._file2 = null;
+this.applet = null;
+Clazz.instantialize (this, arguments);
+}, jalview.bin.JalviewLite, "LoadingThread", Thread);
+Clazz.defineMethod (c$, "dbgMsg", 
+($fz = function (a) {
+if (jalview.bin.JalviewLite.debug) {
+System.err.println (a);
+}}, $fz.isPrivate = true, $fz), "~S");
+Clazz.defineMethod (c$, "setProtocolState", 
+function (a) {
+if (a.startsWith ("PASTE")) {
+a = a.substring (5);
+this.protocol = jalview.io.AppletFormatAdapter.PASTE;
+} else if (this.inArchive (a)) {
+this.protocol = jalview.io.AppletFormatAdapter.CLASSLOADER;
+} else {
+a = this.addProtocol (a);
+this.protocol = jalview.io.AppletFormatAdapter.URL;
+}this.dbgMsg ("Protocol identified as '" + this.protocol + "'");
+return a;
+}, "~S");
+Clazz.makeConstructor (c$, 
+function (a, b, c) {
+Clazz.superConstructor (this, jalview.bin.JalviewLite.LoadingThread, []);
+this._file = a;
+this._file2 = b;
+this.applet = c;
+}, "~S,~S,jalview.bin.JalviewLite");
+Clazz.overrideMethod (c$, "run", 
+function () {
+{
+System.out.println("BYPASSING JMOL LOADING FOR NOW. THIS WILL BE DONE ANOTHER WAY")
+}this.startLoading ();
+});
+Clazz.defineMethod (c$, "startLoading", 
+($fz = function () {
+this.dbgMsg ("Loading thread started with:\n>>file\n" + this._file + ">>endfile");
+this.dbgMsg ("Loading started.");
+var a = this.readAlignment (this._file);
+var b = this.readAlignment (this._file2);
+if (a != null) {
+this.addToDisplay (a, b);
+this.loadTree (a);
+this.loadScoreFile (a);
+this.loadFeatures (a);
+this.loadAnnotations (a);
+this.loadJnetFile (a);
+this.loadPdbFiles (a);
+} else {
+this.b$["jalview.bin.JalviewLite"].fileFound = false;
+this.applet.remove (this.b$["jalview.bin.JalviewLite"].launcher);
+this.applet.repaint ();
+}this.b$["jalview.bin.JalviewLite"].callInitCallback ();
+}, $fz.isPrivate = true, $fz));
+Clazz.defineMethod (c$, "addToDisplay", 
+function (a, b) {
+if (b == null) {
+a.addToDisplay (this.b$["jalview.bin.JalviewLite"].embedded);
+} else {
+var c =  new jalview.appletgui.SplitFrame (a, b);
+c.addToDisplay (this.b$["jalview.bin.JalviewLite"].embedded, this.b$["jalview.bin.JalviewLite"]);
+}}, "jalview.appletgui.AlignFrame,jalview.appletgui.AlignFrame");
+Clazz.defineMethod (c$, "readAlignment", 
+function (a) {
+if (a == null) {
+return null;
+}var b = this.setProtocolState (a);
+var c =  new jalview.io.IdentifyFile ().Identify (b, this.protocol);
+this.dbgMsg ("File identified as '" + c + "'");
+var d = null;
+try {
+d =  new jalview.io.AppletFormatAdapter ().readFile (b, this.protocol, c);
+if ((d != null) && (d.getHeight () > 0)) {
+this.dbgMsg ("Successfully loaded file.");
+d.setDataset (null);
+var e =  new jalview.appletgui.AlignFrame (d, this.applet, b, this.b$["jalview.bin.JalviewLite"].embedded, false);
+e.setTitle (b);
+if (this.b$["jalview.bin.JalviewLite"].initialAlignFrame == null) {
+this.b$["jalview.bin.JalviewLite"].initialAlignFrame = e;
+}this.b$["jalview.bin.JalviewLite"].currentAlignFrame = e;
+if (this.protocol === jalview.io.AppletFormatAdapter.PASTE) {
+e.setTitle (jalview.util.MessageManager.formatMessage ("label.sequences_from",  Clazz.newArray (-1, [this.applet.getDocumentBase ().toString ()])));
+}e.setStatus (jalview.util.MessageManager.formatMessage ("label.successfully_loaded_file",  Clazz.newArray (-1, [b])));
+return e;
+}} catch (ex) {
+if (Clazz.exceptionOf (ex, java.io.IOException)) {
+this.dbgMsg ("File load exception.");
+ex.printStackTrace ();
+if (jalview.bin.JalviewLite.debug) {
+try {
+var e =  new jalview.io.FileParse (b, this.protocol);
+var f = null;
+this.dbgMsg (">>>Dumping contents of '" + b + "' " + "(" + this.protocol + ")");
+while ((f = e.nextLine ()) != null) {
+this.dbgMsg (f);
+}
+this.dbgMsg (">>>Dump finished.");
+} catch (e) {
+if (Clazz.exceptionOf (e, Exception)) {
+System.err.println ("Exception when trying to dump the content of the file parameter.");
+e.printStackTrace ();
+} else {
+throw e;
+}
+}
+}} else {
+throw ex;
+}
+}
+return null;
+}, "~S");
+Clazz.defineMethod (c$, "loadPdbFiles", 
+function (a) {
+var b = false;
+this.applet.setAlignPdbStructures (this.b$["jalview.bin.JalviewLite"].getDefaultParameter ("alignpdbfiles", false));
+var c = 0;
+var d =  new java.util.Vector ();
+var e = (this.applet.getDefaultParameter ("relaxedidmatch", false)) ?  new jalview.analysis.SequenceIdMatcher (a.getAlignViewport ().getAlignment ().getSequencesArray ()) : null;
+var f;
+do {
+if (c > 0) {
+f = this.applet.getParameter ("PDBFILE" + c);
+} else {
+f = this.b$["jalview.bin.JalviewLite"].pdbFile;
+}if (f != null) {
+var g =  new jalview.datamodel.PDBEntry ();
+var h;
+var i = null;
+var j = null;
+var k =  new java.util.StringTokenizer (f, " ");
+if (k.countTokens () < 2) {
+if (this.b$["jalview.bin.JalviewLite"].sequence != null) {
+i =  Clazz.newArray (-1, [e == null ? a.getAlignViewport ().getAlignment ().findName (this.b$["jalview.bin.JalviewLite"].sequence) : e.findIdMatch (this.b$["jalview.bin.JalviewLite"].sequence)]);
+}} else {
+f = k.nextToken ();
+var l =  new java.util.Vector ();
+var m =  new java.util.Vector ();
+while (k.hasMoreTokens ()) {
+h = k.nextToken ();
+var n =  new java.util.StringTokenizer (h, "=");
+if (n.countTokens () > 1) {
+m.addElement (n.nextToken ());
+h = n.nextToken ();
+}l.addElement (e == null ? a.getAlignViewport ().getAlignment ().findName (h) : e.findIdMatch (h));
+}
+i =  new Array (l.size ());
+l.copyInto (i);
+if (m.size () == l.size ()) {
+j =  new Array (m.size ());
+m.copyInto (j);
+}}f = this.setProtocolState (f);
+if (this.protocol === jalview.io.AppletFormatAdapter.CLASSLOADER && !this.b$["jalview.bin.JalviewLite"].useXtrnalSviewer) {
+this.protocol = jalview.io.AppletFormatAdapter.URL;
+f = this.addProtocol (f);
+}g.setFile (f);
+if (i != null) {
+for (var l = 0; l < i.length; l++) {
+if (i[l] != null) {
+(i[l]).addPDBId (g);
+jalview.structure.StructureSelectionManager.getStructureSelectionManager (this.applet).registerPDBEntry (g);
+} else {
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Warning: Possible input parsing error: Null sequence for attachment of PDB (sequence " + l + ")");
+}}}
+if (!this.b$["jalview.bin.JalviewLite"].alignPdbStructures) {
+a.newStructureView (this.applet, g, i, j, this.protocol);
+} else {
+d.addElement ( Clazz.newArray (-1, [g, i, j,  String.instantialize (this.protocol)]));
+}}}c++;
+} while (f != null || c < 10);
+if (d.size () > 0) {
+var g =  new Array (d.size ());
+var h =  new Array (d.size ());
+var i =  new Array (d.size ());
+var j =  new Array (d.size ());
+for (var k = 0, l = d.size (); k < l; k++) {
+var m = d.elementAt (k);
+h[k] = m[0];
+g[k] = m[1];
+i[k] = m[2];
+j[k] = m[3];
+}
+a.alignedStructureView (this.applet, h, g, i, j);
+b = true;
+}return b;
+}, "jalview.appletgui.AlignFrame");
+Clazz.defineMethod (c$, "loadJnetFile", 
+function (a) {
+var b = false;
+var c = this.b$["jalview.bin.JalviewLite"].jnetFile;
+if (c != null) {
+try {
+c = this.setProtocolState (c);
+var d = jalview.jsdev.GenericFileAdapter.getFile ("JPredFile", [c, this.protocol]);
+jalview.io.JnetAnnotationMaker.add_annotation (d, a.viewport.getAlignment (), 0, false);
+var e = a.viewport.getAlignment ().getSequenceAt (0);
+a.viewport.getAlignment ().setSeqrep (e);
+var f =  new jalview.datamodel.ColumnSelection ();
+f.hideInsertionsFor (e);
+a.viewport.setColumnSelection (f);
+a.alignPanel.fontChanged ();
+a.alignPanel.setScrollValues (0, 0);
+b = true;
+} catch (ex) {
+if (Clazz.exceptionOf (ex, Exception)) {
+ex.printStackTrace ();
+} else {
+throw ex;
+}
+}
+}return b;
+}, "jalview.appletgui.AlignFrame");
+Clazz.defineMethod (c$, "loadAnnotations", 
+function (a) {
+var b = false;
+var c = this.b$["jalview.bin.JalviewLite"].annotations;
+if (c != null) {
+c = this.setProtocolState (c);
+if ( new jalview.io.AnnotationFile ().annotateAlignmentView (a.viewport, c, this.protocol)) {
+a.alignPanel.fontChanged ();
+a.alignPanel.setScrollValues (0, 0);
+b = true;
+} else {
+System.err.println ("Annotations were not added from annotation file '" + c + "'");
+}}return b;
+}, "jalview.appletgui.AlignFrame");
+Clazz.defineMethod (c$, "loadFeatures", 
+function (a) {
+var b = false;
+var c = this.b$["jalview.bin.JalviewLite"].hideFeatureGroups;
+if (c != null) {
+a.setFeatureGroupState (this.b$["jalview.bin.JalviewLite"].separatorListToArray (c), false);
+}c = this.b$["jalview.bin.JalviewLite"].showFeatureGroups;
+if (c != null) {
+a.setFeatureGroupState (this.b$["jalview.bin.JalviewLite"].separatorListToArray (c), true);
+}c = this.b$["jalview.bin.JalviewLite"].features;
+if (c != null) {
+c = this.setProtocolState (c);
+b = a.parseFeaturesFile (c, this.protocol);
+}c = this.b$["jalview.bin.JalviewLite"].showFeatureSettings;
+if (c != null && c.equalsIgnoreCase ("true")) {
+a.viewport.setShowSequenceFeatures (true);
+ new jalview.appletgui.FeatureSettings (a.alignPanel);
+}return b;
+}, "jalview.appletgui.AlignFrame");
+Clazz.defineMethod (c$, "loadScoreFile", 
+function (a) {
+var b = false;
+if (this.b$["jalview.bin.JalviewLite"].scoreFile != null && !"".equals (this.b$["jalview.bin.JalviewLite"].scoreFile)) {
+try {
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Attempting to load T-COFFEE score file from the scoreFile parameter");
+}b = a.loadScoreFile (this.b$["jalview.bin.JalviewLite"].scoreFile);
+if (!b) {
+System.err.println ("Failed to parse T-COFFEE parameter as a valid score file ('" + this.b$["jalview.bin.JalviewLite"].scoreFile + "')");
+}} catch (e) {
+if (Clazz.exceptionOf (e, Exception)) {
+System.err.printf ("Cannot read score file: '%s'. Cause: %s \n", [this.b$["jalview.bin.JalviewLite"].scoreFile, e.getMessage ()]);
+} else {
+throw e;
+}
+}
+}return b;
+}, "jalview.appletgui.AlignFrame");
+Clazz.defineMethod (c$, "loadTree", 
+function (a) {
+var b = false;
+if (this.b$["jalview.bin.JalviewLite"].treeFile == null) {
+this.b$["jalview.bin.JalviewLite"].treeFile = this.applet.getParameter ("treeFile");
+}if (this.b$["jalview.bin.JalviewLite"].treeFile != null) {
+try {
+this.b$["jalview.bin.JalviewLite"].treeFile = this.setProtocolState (this.b$["jalview.bin.JalviewLite"].treeFile);
+var c =  new jalview.io.NewickFile (this.b$["jalview.bin.JalviewLite"].treeFile, this.protocol);
+c.parse ();
+if (c.getTree () != null) {
+a.loadTree (c, this.b$["jalview.bin.JalviewLite"].treeFile);
+b = true;
+this.dbgMsg ("Successfully imported tree.");
+} else {
+this.dbgMsg ("Tree parameter did not resolve to a valid tree.");
+}} catch (ex) {
+if (Clazz.exceptionOf (ex, Exception)) {
+ex.printStackTrace ();
+} else {
+throw ex;
+}
+}
+}return b;
+}, "jalview.appletgui.AlignFrame");
+Clazz.defineMethod (c$, "inArchive", 
+function (a) {
+try {
+var b = (this.getClass ().getResourceAsStream ("/" + a) != null);
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Resource '" + a + "' was " + (b ? "" : "not") + " located by classloader.");
+}return b;
+} catch (ex) {
+if (Clazz.exceptionOf (ex, Exception)) {
+System.out.println ("Exception checking resources: " + a + " " + ex);
+return false;
+} else {
+throw ex;
+}
+}
+}, "~S");
+Clazz.defineMethod (c$, "addProtocol", 
+function (a) {
+if (a.indexOf ("://") == -1) {
+var b = this.applet.resolveUrlForLocalOrAbsolute (a, this.b$["jalview.bin.JalviewLite"].getDocumentBase ());
+if (this.urlExists (b)) {
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Prepended document base for resource: '" + a + "'");
+}return b;
+}b = this.applet.resolveUrlForLocalOrAbsolute (a, this.b$["jalview.bin.JalviewLite"].getCodeBase ());
+if (this.urlExists (b)) {
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Prepended codebase for resource: '" + a + "'");
+}return b;
+}}return a;
+}, "~S");
+Clazz.defineMethod (c$, "urlExists", 
+($fz = function (a) {
+var b = null;
+try {
+b =  new java.net.URL (a).openStream ();
+if (b != null) {
+return true;
+}} catch (x) {
+if (Clazz.exceptionOf (x, Exception)) {
+} else {
+throw x;
+}
+} finally {
+if (b != null) {
+try {
+b.close ();
+} catch (e) {
+if (Clazz.exceptionOf (e, java.io.IOException)) {
+} else {
+throw e;
+}
+}
+}}
+return false;
+}, $fz.isPrivate = true, $fz), "~S");
+c$ = Clazz.p0p ();
+};
+c$.$JalviewLite$1$ = function () {
+Clazz.pu$h ();
+c$ = Clazz.declareAnonymous (jalview.bin, "JalviewLite$1", null, Runnable);
+Clazz.overrideMethod (c$, "run", 
+function () {
+jalview.structure.StructureSelectionManager.getStructureSelectionManager (this.f$.me).mouseOverVamsasSequence (this.f$.sq, this.f$.sq.findIndex (this.f$.pos), null);
+});
+c$ = Clazz.p0p ();
+};
+c$.$JalviewLite$2$ = function () {
+Clazz.pu$h ();
+c$ = Clazz.declareAnonymous (jalview.bin, "JalviewLite$2", null, Runnable);
+Clazz.overrideMethod (c$, "run", 
+function () {
+jalview.structure.StructureSelectionManager.getStructureSelectionManager (this.f$.me).mouseOverVamsasSequence (this.f$.sq, this.f$.pos, null);
+});
+c$ = Clazz.p0p ();
+};
+c$.$JalviewLite$3$ = function () {
+Clazz.pu$h ();
+c$ = Clazz.declareAnonymous (jalview.bin, "JalviewLite$3", null, Runnable);
+Clazz.overrideMethod (c$, "run", 
+function () {
+this.f$.alf.select (this.f$.sel, this.f$.csel);
+});
+c$ = Clazz.p0p ();
+};
+c$.$JalviewLite$4$ = function () {
+Clazz.pu$h ();
+c$ = Clazz.declareAnonymous (jalview.bin, "JalviewLite$4", null, Runnable);
+Clazz.overrideMethod (c$, "run", 
+function () {
+try {
+jalview.structure.StructureSelectionManager.getStructureSelectionManager (this.f$.me).mouseOverStructure ( new Integer (this.f$.pdbResNum).intValue (), this.f$.chain, this.f$.pdbfile);
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("mouseOver for '" + this.f$.pdbResNum + "' in chain '" + this.f$.chain + "' in structure '" + this.f$.pdbfile + "'");
+}} catch (e) {
+if (Clazz.exceptionOf (e, NumberFormatException)) {
+System.err.println ("Ignoring invalid residue number string '" + this.f$.pdbResNum + "'");
+} else {
+throw e;
+}
+}
+});
+c$ = Clazz.p0p ();
+};
+c$.$JalviewLite$5$ = function () {
+Clazz.pu$h ();
+c$ = Clazz.declareAnonymous (jalview.bin, "JalviewLite$5", null, Runnable);
+Clazz.overrideMethod (c$, "run", 
+function () {
+try {
+this.f$.alf.scrollTo ( new Integer (this.f$.topRow).intValue (),  new Integer (this.f$.leftHandColumn).intValue ());
+} catch (ex) {
+if (Clazz.exceptionOf (ex, Exception)) {
+System.err.println ("Couldn't parse integer arguments (topRow='" + this.f$.topRow + "' and leftHandColumn='" + this.f$.leftHandColumn + "')");
+ex.printStackTrace ();
+} else {
+throw ex;
+}
+}
+});
+c$ = Clazz.p0p ();
+};
+c$.$JalviewLite$6$ = function () {
+Clazz.pu$h ();
+c$ = Clazz.declareAnonymous (jalview.bin, "JalviewLite$6", null, Runnable);
+Clazz.overrideMethod (c$, "run", 
+function () {
+try {
+this.f$.alf.scrollToRow ( new Integer (this.f$.topRow).intValue ());
+} catch (ex) {
+if (Clazz.exceptionOf (ex, Exception)) {
+System.err.println ("Couldn't parse integer arguments (topRow='" + this.f$.topRow + "')");
+ex.printStackTrace ();
+} else {
+throw ex;
+}
+}
+});
+c$ = Clazz.p0p ();
+};
+c$.$JalviewLite$7$ = function () {
+Clazz.pu$h ();
+c$ = Clazz.declareAnonymous (jalview.bin, "JalviewLite$7", null, Runnable);
+Clazz.overrideMethod (c$, "run", 
+function () {
+try {
+this.f$.alf.scrollToColumn ( new Integer (this.f$.leftHandColumn).intValue ());
+} catch (ex) {
+if (Clazz.exceptionOf (ex, Exception)) {
+System.err.println ("Couldn't parse integer arguments (leftHandColumn='" + this.f$.leftHandColumn + "')");
+ex.printStackTrace ();
+} else {
+throw ex;
+}
+}
+});
+c$ = Clazz.p0p ();
+};
+c$.$JalviewLite$8$ = function () {
+Clazz.pu$h ();
+c$ = Clazz.declareAnonymous (jalview.bin, "JalviewLite$8", null, java.awt.event.ActionListener);
+Clazz.overrideMethod (c$, "actionPerformed", 
+function (e) {
+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"]);
+loader.start ();
+}, "java.awt.event.ActionEvent");
+c$ = Clazz.p0p ();
+};
+c$.$JalviewLite$9$ = function () {
+Clazz.pu$h ();
+c$ = Clazz.declareAnonymous (jalview.bin, "JalviewLite$9", java.awt.event.WindowAdapter);
+Clazz.overrideMethod (c$, "windowClosing", 
+function (e) {
+if (Clazz.instanceOf (this.f$.frame, jalview.appletgui.AlignFrame)) {
+var vp = (this.f$.frame).viewport;
+(this.f$.frame).closeMenuItem_actionPerformed ();
+if (vp.applet.currentAlignFrame === this.f$.frame) {
+vp.applet.currentAlignFrame = null;
+}vp.applet = null;
+vp = null;
+}jalview.bin.JalviewLite.lastFrameX -= 40;
+jalview.bin.JalviewLite.lastFrameY -= 40;
+if (Clazz.instanceOf (this.f$.frame, jalview.appletgui.EmbmenuFrame)) {
+(this.f$.frame).destroyMenus ();
+}this.f$.frame.setMenuBar (null);
+this.f$.frame.dispose ();
+}, "java.awt.event.WindowEvent");
+Clazz.defineMethod (c$, "windowActivated", 
+function (e) {
+if (Clazz.instanceOf (this.f$.frame, jalview.appletgui.AlignFrame)) {
+(this.f$.frame).viewport.applet.currentAlignFrame = this.f$.frame;
+if (jalview.bin.JalviewLite.debug) {
+System.err.println ("Activated window " + this.f$.frame);
+}}Clazz.superCall (this, jalview.bin.JalviewLite$9, "windowActivated", [e]);
+}, "java.awt.event.WindowEvent");
+c$ = Clazz.p0p ();
+};
+c$.$JalviewLite$10$ = function () {
+Clazz.pu$h ();
+c$ = Clazz.declareAnonymous (jalview.bin, "JalviewLite$10", null, Runnable);
+Clazz.overrideMethod (c$, "run", 
+function () {
+this.f$.alf.setFeatureGroupState (this.b$["jalview.bin.JalviewLite"].separatorListToArray (this.f$.groups), this.f$.st);
+});
+c$ = Clazz.p0p ();
+};
+Clazz.defineStatics (c$,
+"TRUE", "true",
+"FALSE", "false",
+"debug", false,
+"lastFrameX", 200,
+"lastFrameY", 200,
+"builddate", null,
+"version", null,
+"installation", null);
+});