X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fbin%2FJalviewLite.java;h=9a09df4202c457fc826c7bfc6a52cb6c14263165;hb=eb5197242ba17fcff4ce0e18419ca81a63418f7a;hp=393476d387131208575cc85fc0036c30ba98af32;hpb=f533fb6976a511f5e76afdf176fce0f5c580064d;p=jalview.git diff --git a/src/jalview/bin/JalviewLite.java b/src/jalview/bin/JalviewLite.java index 393476d..9a09df4 100755 --- a/src/jalview/bin/JalviewLite.java +++ b/src/jalview/bin/JalviewLite.java @@ -1,17 +1,17 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer - * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle - * + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4) + * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA @@ -305,6 +305,7 @@ public class JalviewLite extends Applet boolean embedded = false; private boolean checkForJmol = true; + private boolean checkedForJmol = false; // ensure we don't check for jmol every time the app is re-inited public boolean jmolAvailable = false; @@ -327,7 +328,7 @@ public class JalviewLite extends Applet * if true disable the check for jmol */ String chkforJmol = getParameter("nojmol"); - if (chkforJmol!=null) + if (chkforJmol != null) { checkForJmol = !chkforJmol.equals("true"); } @@ -397,9 +398,6 @@ public class JalviewLite extends Applet } } - LoadJmolThread jmolAvailable = new LoadJmolThread(); - jmolAvailable.start(); - final JalviewLite applet = this; if (getParameter("embedded") != null && getParameter("embedded").equalsIgnoreCase("true")) @@ -540,8 +538,14 @@ public class JalviewLite extends Applet class LoadJmolThread extends Thread { + private boolean running=false; + public void run() { + if (running || checkedForJmol) { + return; + } + running=true; if (checkForJmol) { try @@ -559,13 +563,23 @@ public class JalviewLite extends Applet } catch (java.lang.ClassNotFoundException ex) { } - } else { - jmolAvailable=false; + } + else + { + jmolAvailable = false; if (debug) { - System.err.println("Skipping Jmol check. Will use MCView (probably)"); + System.err + .println("Skipping Jmol check. Will use MCView (probably)"); } } + checkedForJmol=true; + running=false; + } + + public boolean notFinished() + { + return running || !checkedForJmol; } } @@ -585,9 +599,8 @@ public class JalviewLite extends Applet * State variable: format of file source */ String format; - + String _file; JalviewLite applet; - private void dbgMsg(String msg) { if (applet.debug) @@ -622,24 +635,32 @@ public class JalviewLite extends Applet dbgMsg("Protocol identified as '" + protocol + "'"); return file; } - + public LoadingThread(String _file, JalviewLite _applet) { - 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 + "'"); + this._file=_file; applet = _applet; } public void run() { + LoadJmolThread jmolchecker = new LoadJmolThread(); + jmolchecker.start(); + while (jmolchecker.notFinished()) + { + // wait around until the Jmol check is complete. + try { Thread.sleep(2); } catch (Exception e) {}; + } startLoading(); } private void startLoading() { + 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("Loading started."); Alignment al = null; try @@ -747,13 +768,13 @@ public class JalviewLite extends Applet param, protocol); JnetAnnotationMaker.add_annotation(predictions, currentAlignFrame.viewport.getAlignment(), 0, false); // false==do - // not - // add - // sequence - // profile - // from - // concise - // output + // not + // add + // sequence + // profile + // from + // concise + // output currentAlignFrame.alignPanel.fontChanged(); currentAlignFrame.alignPanel.setScrollValues(0, 0); } catch (Exception ex) @@ -829,14 +850,16 @@ public class JalviewLite extends Applet } param = setProtocolState(param); - if (!jmolAvailable - && protocol == AppletFormatAdapter.CLASSLOADER) + if (// !jmolAvailable + // && + protocol == AppletFormatAdapter.CLASSLOADER) { - // TODO: pass PDB file in classloader on to Jmol + // TODO: verify this Re: + // https://mantis.lifesci.dundee.ac.uk/view.php?id=36605 // 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! + // CORRECT! param = addProtocol(param); // } @@ -971,7 +994,8 @@ public class JalviewLite extends Applet * separator used for separatorList */ protected String separator = "|"; // this is a safe(ish) separator - tabs - // don't work for firefox + + // don't work for firefox /** * parse the string into a list @@ -1119,7 +1143,7 @@ public class JalviewLite extends Applet boolean state) { boolean st = state;// !(state==null || state.equals("") || - // state.toLowerCase().equals("false")); + // state.toLowerCase().equals("false")); alf.setFeatureGroupState(separatorListToArray(groups), st); }