From f533fb6976a511f5e76afdf176fce0f5c580064d Mon Sep 17 00:00:00 2001 From: jprocter Date: Tue, 12 Aug 2008 14:18:45 +0000 Subject: [PATCH] added nojmol parameter to disable check for jmol --- src/jalview/bin/JalviewLite.java | 638 ++++++++++++++++++++++---------------- 1 file changed, 373 insertions(+), 265 deletions(-) diff --git a/src/jalview/bin/JalviewLite.java b/src/jalview/bin/JalviewLite.java index 0df360e..393476d 100755 --- a/src/jalview/bin/JalviewLite.java +++ b/src/jalview/bin/JalviewLite.java @@ -30,66 +30,73 @@ import jalview.io.*; /** * Jalview Applet. Runs in Java 1.18 runtime - * + * * @author $author$ * @version $Revision$ */ -public class JalviewLite - extends Applet +public class JalviewLite extends Applet { - - - /////////////////////////////////////////// - //The following public methods maybe called - //externally, eg via javascript in HTML page + // ///////////////////////////////////////// + // The following public methods maybe called + // externally, eg via javascript in HTML page /** - * @return String list of selected sequence IDs, each terminated by "¬" (¬) + * @return String list of selected sequence IDs, each terminated by "¬" + * (¬) */ public String getSelectedSequences() { return getSelectedSequencesFrom(getDefaultTargetFrame()); } + /** - * @param sep separator string or null for default - * @return String list of selected sequence IDs, each terminated by sep or ("¬" as default) + * @param sep + * separator string or null for default + * @return String list of selected sequence IDs, each terminated by sep or + * ("¬" as default) */ public String getSelectedSequences(String sep) { return getSelectedSequencesFrom(getDefaultTargetFrame(), sep); } + /** - * @param alf alignframe containing selection + * @param alf + * alignframe containing selection * @return String list of selected sequence IDs, each terminated by "¬" - * + * */ public String getSelectedSequencesFrom(AlignFrame alf) { return getSelectedSequencesFrom(alf, "¬"); } + /** - * get list of selected sequence IDs separated by given separator - * @param alf window containing selection - * @param sep separator string to use - default is "¬" - * @return String list of selected sequence IDs, each terminated by the given separator + * get list of selected sequence IDs separated by given separator + * + * @param alf + * window containing selection + * @param sep + * separator string to use - default is "¬" + * @return String list of selected sequence IDs, each terminated by the given + * separator */ public String getSelectedSequencesFrom(AlignFrame alf, String sep) { StringBuffer result = new StringBuffer(""); - if (sep==null || sep.length()==0) + if (sep == null || sep.length() == 0) { sep = "¬"; } if (alf.viewport.getSelectionGroup() != null) { - SequenceI[] seqs = alf.viewport.getSelectionGroup(). - getSequencesInOrder( - alf.viewport.getAlignment()); + SequenceI[] seqs = alf.viewport.getSelectionGroup() + .getSequencesInOrder(alf.viewport.getAlignment()); for (int i = 0; i < seqs.length; i++) { result.append(seqs[i].getName()); - result.append(sep); + result.append(sep); } } @@ -97,36 +104,51 @@ public class JalviewLite } /** - * get sequences selected in current alignFrame and return their alignment in format 'format' either with or without suffix - * @param alf - where selection is - * @param format - format of alignment file - * @param suffix - "true" to append /start-end string to each sequence ID - * @return selected sequences as flat file or empty string if there was no current selection + * get sequences selected in current alignFrame and return their alignment in + * format 'format' either with or without suffix + * + * @param alf - + * where selection is + * @param format - + * format of alignment file + * @param suffix - + * "true" to append /start-end string to each sequence ID + * @return selected sequences as flat file or empty string if there was no + * current selection */ - public String getSelectedSequencesAsAlignment(String format, String suffix) { - return getSelectedSequencesAsAlignmentFrom(currentAlignFrame, format, suffix); + public String getSelectedSequencesAsAlignment(String format, String suffix) + { + return getSelectedSequencesAsAlignmentFrom(currentAlignFrame, format, + suffix); } /** - * get sequences selected in alf and return their alignment in format 'format' either with or without suffix - * @param alf - where selection is - * @param format - format of alignment file - * @param suffix - "true" to append /start-end string to each sequence ID - * @return selected sequences as flat file or empty string if there was no current selection + * get sequences selected in alf and return their alignment in format 'format' + * either with or without suffix + * + * @param alf - + * where selection is + * @param format - + * format of alignment file + * @param suffix - + * "true" to append /start-end string to each sequence ID + * @return selected sequences as flat file or empty string if there was no + * current selection */ - public String getSelectedSequencesAsAlignmentFrom(AlignFrame alf, String format, String suffix) + public String getSelectedSequencesAsAlignmentFrom(AlignFrame alf, + String format, String suffix) { try { boolean seqlimits = suffix.equalsIgnoreCase("true"); - if (alf.viewport.getSelectionGroup()!=null) + if (alf.viewport.getSelectionGroup() != null) { String reply = new AppletFormatAdapter().formatSequences(format, - new Alignment(alf.viewport.getSelectionAsNewSequence()), seqlimits); + new Alignment(alf.viewport.getSelectionAsNewSequence()), + seqlimits); return reply; } - } - catch (Exception ex) + } catch (Exception ex) { ex.printStackTrace(); return "Error retrieving alignment in " + format + " format. "; @@ -138,25 +160,28 @@ public class JalviewLite { return getAlignmentFrom(getDefaultTargetFrame(), format, "true"); } + public String getAlignmentFrom(AlignFrame alf, String format) { return getAlignmentFrom(alf, format, "true"); } + public String getAlignment(String format, String suffix) { return getAlignmentFrom(getDefaultTargetFrame(), format, suffix); } - public String getAlignmentFrom(AlignFrame alf, String format, String suffix) + + public String getAlignmentFrom(AlignFrame alf, String format, + String suffix) { try { boolean seqlimits = suffix.equalsIgnoreCase("true"); String reply = new AppletFormatAdapter().formatSequences(format, - alf.viewport.getAlignment(), seqlimits); + alf.viewport.getAlignment(), seqlimits); return reply; - } - catch (Exception ex) + } catch (Exception ex) { ex.printStackTrace(); return "Error retrieving alignment in " + format + " format. "; @@ -167,11 +192,11 @@ public class JalviewLite { loadAnnotationFrom(getDefaultTargetFrame(), annotation); } + public void loadAnnotationFrom(AlignFrame alf, String annotation) { - if (new AnnotationFile().readAnnotationFile( - alf.getAlignViewport().getAlignment(), annotation, - AppletFormatAdapter.PASTE)) + if (new AnnotationFile().readAnnotationFile(alf.getAlignViewport() + .getAlignment(), annotation, AppletFormatAdapter.PASTE)) { alf.alignPanel.fontChanged(); alf.alignPanel.setScrollValues(0, 0); @@ -186,22 +211,27 @@ public class JalviewLite { return getFeaturesFrom(getDefaultTargetFrame(), format); } + public String getFeaturesFrom(AlignFrame alf, String format) { return alf.outputFeatures(false, format); } + public String getAnnotation() { return getAnnotationFrom(getDefaultTargetFrame()); } + public String getAnnotationFrom(AlignFrame alf) { return alf.outputAnnotations(false); } + public AlignFrame newView() { return newViewFrom(getDefaultTargetFrame()); } + public AlignFrame newView(String name) { return newViewFrom(getDefaultTargetFrame(), name); @@ -211,65 +241,73 @@ public class JalviewLite { return alf.newView(null); } + public AlignFrame newViewFrom(AlignFrame alf, String name) { return alf.newView(name); } + /** * - * @param text alignment file as a string - * @param title window title + * @param text + * alignment file as a string + * @param title + * window title * @return null or new alignment frame */ public AlignFrame loadAlignment(String text, String title) { Alignment al = null; - String format = new IdentifyFile().Identify(text, AppletFormatAdapter.PASTE); + String format = new IdentifyFile().Identify(text, + AppletFormatAdapter.PASTE); try { al = new AppletFormatAdapter().readFile(text, - AppletFormatAdapter.PASTE, - format); + AppletFormatAdapter.PASTE, format); if (al.getHeight() > 0) { return new AlignFrame(al, this, title, false); } - } - catch (java.io.IOException ex) + } catch (java.io.IOException ex) { ex.printStackTrace(); } return null; } - //////////////////////////////////////////////// - //////////////////////////////////////////////// - - + // ////////////////////////////////////////////// + // ////////////////////////////////////////////// static int lastFrameX = 200; + static int lastFrameY = 200; + boolean fileFound = true; + String file = "No file"; + Button launcher = new Button("Start Jalview"); /** - * The currentAlignFrame is static, it will change - * if and when the user selects a new window. - * Note that it will *never* point back to the embedded AlignFrame - * if the applet is started as embedded on the page and then afterwards a new view is created. + * The currentAlignFrame is static, it will change if and when the user + * selects a new window. Note that it will *never* point back to the embedded + * AlignFrame if the applet is started as embedded on the page and then + * afterwards a new view is created. */ public static AlignFrame currentAlignFrame; - /** - * This is the first frame to be displayed, and does not change. - * API calls will default to this instance if currentAlignFrame is null. + /** + * This is the first frame to be displayed, and does not change. API calls + * will default to this instance if currentAlignFrame is null. */ AlignFrame initialAlignFrame; boolean embedded = false; + private boolean checkForJmol = true; + public boolean jmolAvailable = false; + public static boolean debug; /** @@ -277,25 +315,40 @@ public class JalviewLite */ public void init() { + /** + * turn on extra applet debugging + */ String dbg = getParameter("debug"); - if (dbg!=null) + if (dbg != null) { debug = dbg.toLowerCase().equals("true"); } /** + * if true disable the check for jmol + */ + String chkforJmol = getParameter("nojmol"); + if (chkforJmol!=null) + { + checkForJmol = !chkforJmol.equals("true"); + } + /** * get the separator parameter if present */ String sep = getParameter("separator"); - if (sep!=null) + if (sep != null) { - if (sep.length()>0) - { separator = sep; + if (sep.length() > 0) + { + separator = sep; if (debug) { - System.err.println("Separator set to '"+separator+"'"); + System.err.println("Separator set to '" + separator + "'"); } - } else { - throw new Error("Invalid separator parameter - must be non-zero length"); + } + else + { + throw new Error( + "Invalid separator parameter - must be non-zero length"); } } int r = 255; @@ -310,8 +363,7 @@ public class JalviewLite r = Integer.parseInt(param.substring(0, 2), 16); g = Integer.parseInt(param.substring(2, 4), 16); b = Integer.parseInt(param.substring(4, 6), 16); - } - catch (Exception ex) + } catch (Exception ex) { r = 255; g = 255; @@ -331,10 +383,10 @@ public class JalviewLite if (file == null) { - //Maybe the sequences are added as parameters + // Maybe the sequences are added as parameters StringBuffer data = new StringBuffer("PASTE"); int i = 1; - while ( (file = getParameter("sequence" + i)) != null) + while ((file = getParameter("sequence" + i)) != null) { data.append(file.toString() + "\n"); i++; @@ -350,7 +402,7 @@ public class JalviewLite final JalviewLite applet = this; if (getParameter("embedded") != null - && getParameter("embedded").equalsIgnoreCase("true")) + && getParameter("embedded").equalsIgnoreCase("true")) { // Launch as embedded applet in page embedded = true; @@ -359,7 +411,8 @@ public class JalviewLite } else if (file != null) { - if (getParameter("showbutton")==null || !getParameter("showbutton").equalsIgnoreCase("false")) + if (getParameter("showbutton") == null + || !getParameter("showbutton").equalsIgnoreCase("false")) { // Add the JalviewLite 'Button' to the page add(launcher); @@ -367,36 +420,41 @@ public class JalviewLite { public void actionPerformed(ActionEvent e) { - LoadingThread loader = new LoadingThread(file, - applet); + LoadingThread loader = new LoadingThread(file, applet); loader.start(); } }); - } else { - // Open jalviewLite immediately. - LoadingThread loader = new LoadingThread(file, applet); - loader.start(); - } + } + else + { + // Open jalviewLite immediately. + LoadingThread loader = new LoadingThread(file, applet); + loader.start(); + } } else { - // jalview initialisation with no alignment. loadAlignment() method can still be called to open new alignments. + // jalview initialisation with no alignment. loadAlignment() method can + // still be called to open new alignments. file = "NO FILE"; fileFound = false; } } - /** * Initialises and displays a new java.awt.Frame - * - * @param frame java.awt.Frame to be displayed - * @param title title of new frame - * @param width width if new frame - * @param height height of new frame + * + * @param frame + * java.awt.Frame to be displayed + * @param title + * title of new frame + * @param width + * width if new frame + * @param height + * height of new frame */ public static void addFrame(final Frame frame, String title, int width, - int height) + int height) { frame.setLocation(lastFrameX, lastFrameY); lastFrameX += 40; @@ -409,7 +467,7 @@ public class JalviewLite { if (frame instanceof AlignFrame) { - ( (AlignFrame) frame).closeMenuItem_actionPerformed(); + ((AlignFrame) frame).closeMenuItem_actionPerformed(); } if (currentAlignFrame == frame) { @@ -424,7 +482,7 @@ public class JalviewLite frame.setMenuBar(null); frame.dispose(); } - + public void windowActivated(WindowEvent e) { if (frame instanceof AlignFrame) @@ -432,39 +490,33 @@ public class JalviewLite currentAlignFrame = (AlignFrame) frame; if (debug) { - System.err.println("Activated window "+frame); + System.err.println("Activated window " + frame); } } // be good. super.windowActivated(e); } - /* Probably not necessary to do this - see TODO above. - * (non-Javadoc) + /* + * Probably not necessary to do this - see TODO above. (non-Javadoc) + * * @see java.awt.event.WindowAdapter#windowDeactivated(java.awt.event.WindowEvent) - * - public void windowDeactivated(WindowEvent e) - { - if (currentAlignFrame == frame) - { - currentAlignFrame = null; - if (debug) - { - System.err.println("Deactivated window "+frame); - } - } - super.windowDeactivated(e); - } + * + * public void windowDeactivated(WindowEvent e) { if (currentAlignFrame == + * frame) { currentAlignFrame = null; if (debug) { + * System.err.println("Deactivated window "+frame); } } + * super.windowDeactivated(e); } */ }); frame.setVisible(true); } /** - * This paints the background surrounding the "Launch Jalview button" + * This paints the background surrounding the "Launch Jalview button"
*
- *
If file given in parameter not found, displays error message - * - * @param g graphics context + * If file given in parameter not found, displays error message + * + * @param g + * graphics context */ public void paint(Graphics g) { @@ -486,43 +538,56 @@ public class JalviewLite } } - class LoadJmolThread extends Thread { public void run() { - try + if (checkForJmol) { - if (!System.getProperty("java.version").startsWith("1.1")) + try + { + if (!System.getProperty("java.version").startsWith("1.1")) + { + Class.forName("org.jmol.adapter.smarter.SmarterJmolAdapter"); + jmolAvailable = true; + } + if (!jmolAvailable) + { + System.out + .println("Jmol not available - Using MCview for structures"); + } + } catch (java.lang.ClassNotFoundException ex) { - Class.forName("org.jmol.adapter.smarter.SmarterJmolAdapter"); - jmolAvailable = true; } - } - catch (java.lang.ClassNotFoundException ex) - { - System.out.println("Jmol not available - Using MCview for structures"); + } else { + jmolAvailable=false; + if (debug) + { + System.err.println("Skipping Jmol check. Will use MCView (probably)"); + } } } } - - class LoadingThread - extends Thread + class LoadingThread extends Thread { /** - * State variable: File source + * State variable: File source */ - String file; + String file; + /** * State variable: protocol for access to file source */ String protocol; + /** * State variable: format of file source */ String format; + JalviewLite applet; + private void dbgMsg(String msg) { if (applet.debug) @@ -530,9 +595,11 @@ public class JalviewLite System.err.println(msg); } } + /** - * update the protocol state variable for accessing the datasource - * located by file. + * update the protocol state variable for accessing the datasource located + * by file. + * * @param file * @return possibly updated datasource string */ @@ -552,17 +619,17 @@ public class JalviewLite file = addProtocol(file); protocol = AppletFormatAdapter.URL; } - dbgMsg("Protocol identified as '"+protocol+"'"); + dbgMsg("Protocol identified as '" + protocol + "'"); return file; } - public LoadingThread(String _file, - JalviewLite _applet) + + public LoadingThread(String _file, JalviewLite _applet) { - dbgMsg("Loading thread started with:\n>>file\n"+_file+">>endfile"); + dbgMsg("Loading thread started with:\n>>file\n" + _file + ">>endfile"); file = setProtocolState(_file); - + format = new jalview.io.IdentifyFile().Identify(file, protocol); - dbgMsg("File identified as '"+format+"'"); + dbgMsg("File identified as '" + format + "'"); applet = _applet; } @@ -577,21 +644,16 @@ public class JalviewLite Alignment al = null; try { - al = new AppletFormatAdapter().readFile(file, protocol, - format); - } - catch (java.io.IOException ex) + al = new AppletFormatAdapter().readFile(file, protocol, format); + } catch (java.io.IOException ex) { dbgMsg("File load exception."); ex.printStackTrace(); } - if ( (al != null) && (al.getHeight() > 0)) + if ((al != null) && (al.getHeight() > 0)) { dbgMsg("Successfully loaded file."); - initialAlignFrame = new AlignFrame(al, - applet, - file, - embedded); + initialAlignFrame = new AlignFrame(al, applet, file, embedded); // update the focus. currentAlignFrame = initialAlignFrame; @@ -600,7 +662,8 @@ public class JalviewLite currentAlignFrame.setTitle("Sequences from " + getDocumentBase()); } - currentAlignFrame.statusBar.setText("Successfully loaded file " + file); + currentAlignFrame.statusBar.setText("Successfully loaded file " + + file); String treeFile = applet.getParameter("tree"); if (treeFile == null) @@ -613,18 +676,13 @@ public class JalviewLite try { treeFile = setProtocolState(treeFile); - /*if (inArchive(treeFile)) - { - protocol = AppletFormatAdapter.CLASSLOADER; - } - else - { - protocol = AppletFormatAdapter.URL; - treeFile = addProtocol(treeFile); - } + /* + * if (inArchive(treeFile)) { protocol = + * AppletFormatAdapter.CLASSLOADER; } else { protocol = + * AppletFormatAdapter.URL; treeFile = addProtocol(treeFile); } */ jalview.io.NewickFile fin = new jalview.io.NewickFile(treeFile, - protocol); + protocol); fin.parse(); @@ -632,11 +690,12 @@ public class JalviewLite { currentAlignFrame.loadTree(fin, treeFile); dbgMsg("Successfuly imported tree."); - } else { + } + else + { dbgMsg("Tree parameter did not resolve to a valid tree."); } - } - catch (Exception ex) + } catch (Exception ex) { ex.printStackTrace(); } @@ -646,7 +705,7 @@ public class JalviewLite if (param != null) { param = setProtocolState(param); - + currentAlignFrame.parseFeaturesFile(param, protocol); } @@ -659,18 +718,21 @@ public class JalviewLite param = getParameter("annotations"); if (param != null) - { + { param = setProtocolState(param); - + if (new AnnotationFile().readAnnotationFile( - currentAlignFrame.viewport.getAlignment(), - param, - protocol)) + currentAlignFrame.viewport.getAlignment(), param, + protocol)) { currentAlignFrame.alignPanel.fontChanged(); currentAlignFrame.alignPanel.setScrollValues(0, 0); - } else { - System.err.println("Annotations were not added from annotation file '"+param+"'"); + } + else + { + System.err + .println("Annotations were not added from annotation file '" + + param + "'"); } } @@ -682,30 +744,36 @@ public class JalviewLite { param = setProtocolState(param); jalview.io.JPredFile predictions = new jalview.io.JPredFile( - param, protocol); + param, protocol); JnetAnnotationMaker.add_annotation(predictions, - currentAlignFrame.viewport.getAlignment(), - 0, false); // false==do not add sequence profile from concise output + currentAlignFrame.viewport.getAlignment(), 0, false); // false==do + // not + // add + // sequence + // profile + // from + // concise + // output currentAlignFrame.alignPanel.fontChanged(); currentAlignFrame.alignPanel.setScrollValues(0, 0); - } - catch (Exception ex) + } catch (Exception ex) { ex.printStackTrace(); } } /* - - - - - - */ - + * + * + * + * + * + */ int pdbFileCount = 0; - do{ + do + { if (pdbFileCount > 0) param = getParameter("PDBFILE" + pdbFileCount); else @@ -717,7 +785,7 @@ public class JalviewLite String seqstring; SequenceI[] seqs = null; - String [] chains = null; + String[] chains = null; StringTokenizer st = new StringTokenizer(param, " "); @@ -726,10 +794,8 @@ public class JalviewLite String sequence = applet.getParameter("PDBSEQ"); if (sequence != null) seqs = new SequenceI[] - { - (Sequence) currentAlignFrame. - getAlignViewport().getAlignment(). - findName(sequence)}; + { (Sequence) currentAlignFrame.getAlignViewport() + .getAlignment().findName(sequence) }; } else @@ -741,78 +807,79 @@ public class JalviewLite while (st.hasMoreTokens()) { seqstring = st.nextToken(); - StringTokenizer st2 = new StringTokenizer(seqstring,"="); - if(st2.countTokens()>1) + StringTokenizer st2 = new StringTokenizer(seqstring, "="); + if (st2.countTokens() > 1) { - //This is the chain + // This is the chain tmp2.addElement(st2.nextToken()); seqstring = st2.nextToken(); } - tmp.addElement( (Sequence) currentAlignFrame. - getAlignViewport().getAlignment(). - findName(seqstring)); + tmp.addElement((Sequence) currentAlignFrame + .getAlignViewport().getAlignment().findName( + seqstring)); } seqs = new SequenceI[tmp.size()]; tmp.copyInto(seqs); - if(tmp2.size()==tmp.size()) + if (tmp2.size() == tmp.size()) { chains = new String[tmp2.size()]; tmp2.copyInto(chains); } } param = setProtocolState(param); - - if (!jmolAvailable && protocol==AppletFormatAdapter.CLASSLOADER) + + if (!jmolAvailable + && protocol == AppletFormatAdapter.CLASSLOADER) { // TODO: pass PDB file in classloader on to Jmol - // This exception preserves the current behaviour where, even if the local pdb file was identified in the class loader - protocol = AppletFormatAdapter.URL; // this is probably NOT CORRECT! + // This exception preserves the current behaviour where, even if + // the local pdb file was identified in the class loader + protocol = AppletFormatAdapter.URL; // this is probably NOT + // CORRECT! param = addProtocol(param); // } pdb.setFile(param); - if(seqs!=null) + if (seqs != null) { for (int i = 0; i < seqs.length; i++) { - if (seqs[i]!=null) + if (seqs[i] != null) + { + ((Sequence) seqs[i]).addPDBId(pdb); + } + else { - ( (Sequence) seqs[i]).addPDBId(pdb); - } else { if (JalviewLite.debug) { - // this may not really be a problem but we give a warning anyway - System.err.println("Warning: Possible input parsing error: Null sequence for attachment of PDB (sequence "+i+")"); + // this may not really be a problem but we give a warning + // anyway + System.err + .println("Warning: Possible input parsing error: Null sequence for attachment of PDB (sequence " + + i + ")"); } } } if (jmolAvailable) { - new jalview.appletgui.AppletJmol(pdb, - seqs, - chains, - currentAlignFrame.alignPanel, - protocol); + new jalview.appletgui.AppletJmol(pdb, seqs, chains, + currentAlignFrame.alignPanel, protocol); lastFrameX += 40; - lastFrameY+=40; + lastFrameY += 40; } else - new MCview.AppletPDBViewer(pdb, - seqs, - chains, - currentAlignFrame.alignPanel, - protocol); + new MCview.AppletPDBViewer(pdb, seqs, chains, + currentAlignFrame.alignPanel, protocol); } } pdbFileCount++; - } - while(pdbFileCount < 10); - - ///////////////////////////// + } while (pdbFileCount < 10); + + // /////////////////////////// // modify display of features // // hide specific groups @@ -838,24 +905,28 @@ public class JalviewLite /** * Discovers whether the given file is in the Applet Archive - * @param file String + * + * @param file + * String * @return boolean */ boolean inArchive(String file) { - //This might throw a security exception in certain browsers - //Netscape Communicator for instance. + // This might throw a security exception in certain browsers + // Netscape Communicator for instance. try { boolean rtn = (getClass().getResourceAsStream("/" + file) != null); if (debug) - { System.err.println("Resource '"+file+"' was "+(rtn ? "" : "not") +" located by classloader."); + { + System.err.println("Resource '" + file + "' was " + + (rtn ? "" : "not") + " located by classloader."); } return rtn; - } - catch (Exception ex) + } catch (Exception ex) { - System.out.println("Exception checking resources: " + file + " " + ex); + System.out.println("Exception checking resources: " + file + " " + + ex); return false; } } @@ -867,123 +938,143 @@ public class JalviewLite file = getCodeBase() + file; if (debug) { - System.err.println("Prepended codebase for resource: '"+file+"'"); + System.err.println("Prepended codebase for resource: '" + file + + "'"); } } return file; } } + /** - * @return the default alignFrame acted on by the public applet methods. - * May return null with an error message on System.err indicating the fact. + * @return the default alignFrame acted on by the public applet methods. May + * return null with an error message on System.err indicating the + * fact. */ protected AlignFrame getDefaultTargetFrame() { - if (currentAlignFrame!=null) + if (currentAlignFrame != null) { return currentAlignFrame; } - if (initialAlignFrame!=null) + if (initialAlignFrame != null) { return initialAlignFrame; } - System.err.println("Implementation error: Jalview Applet API cannot work out which AlignFrame to use."); + System.err + .println("Implementation error: Jalview Applet API cannot work out which AlignFrame to use."); return null; } + /** * separator used for separatorList */ - protected String separator = "|"; // this is a safe(ish) separator - tabs don't work for firefox + protected String separator = "|"; // this is a safe(ish) separator - tabs + // don't work for firefox + /** * parse the string into a list + * * @param list * @return elements separated by separator */ public String[] separatorListToArray(String list) { int seplen = separator.length(); - if (list==null || list.equals("")) + if (list == null || list.equals("")) return null; java.util.Vector jv = new Vector(); - int cp=0,pos; - while ((pos=list.indexOf(separator,cp))>cp) + int cp = 0, pos; + while ((pos = list.indexOf(separator, cp)) > cp) { - jv.addElement(list.substring(cp,pos)); - cp = pos+seplen; + jv.addElement(list.substring(cp, pos)); + cp = pos + seplen; } - if (cp0) - { String[] v = new String[jv.size()]; - for (int i=0; i 0) + { + String[] v = new String[jv.size()]; + for (int i = 0; i < v.length; i++) { v[i] = (String) jv.elementAt(i); } jv.removeAllElements(); if (debug) { - System.err.println("Array from '"+separator+"' separated List:\n"+v.length); - for (int i=0; i