JAL-1807 still testing
[jalviewjs.git] / bin / jalview / bin / JalviewLite.js
index 1049dcb..23d66b7 100644 (file)
-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);
-});
+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