public class AppJmol extends StructureViewerBase
{
+ // ms to wait for Jmol to load files
+ private static final int JMOL_LOAD_TIMEOUT = 20000;
+
private static final String SPACE = " ";
private static final String BACKSLASH = "\"";
jmb.setColourBySequence(true);
setSize(400, 400); // probably should be a configurable/dynamic default here
initMenus();
- worker = null;
- {
- addingStructures = false;
- worker = new Thread(this);
- worker.start();
- }
+ addingStructures = false;
+ worker = new Thread(this);
+ worker.start();
+
this.addInternalFrameListener(new InternalFrameAdapter()
{
@Override
scriptWindow.setVisible(false);
}
- /*
- * -i for no info logging (less verbose)
- */
- jmb.allocateViewer(renderPanel, true, "", null, null, "-i",
+ jmb.allocateViewer(renderPanel, true, "", null, null, "",
scriptWindow, null);
// jmb.newJmolPopup("Jmol");
if (command == null)
StringBuilder fileList = new StringBuilder();
for (String s : files)
{
- fileList.append(SPACE).append(BACKSLASH).append(Platform.escapeString(s))
- .append(BACKSLASH);
+ fileList.append(SPACE).append(BACKSLASH)
+ .append(Platform.escapeString(s)).append(BACKSLASH);
}
String filesString = fileList.toString();
jmb.evalStateCommand(command);
} catch (OutOfMemoryError oomerror)
{
- new OOMWarning(
- "When trying to add structures to the Jmol viewer!",
+ new OOMWarning("When trying to add structures to the Jmol viewer!",
oomerror);
Cache.log.debug("File locations are " + filesString);
} catch (Exception ex)
}
// need to wait around until script has finished
- int waitMax = 5000; // give up after 5 seconds
+ int waitMax = JMOL_LOAD_TIMEOUT;
int waitFor = 35;
int waitTotal = 0;
while (addingStructures ? lastnotify >= jmb.getLoadNotifiesHandled()
}
if (waitTotal > waitMax)
{
- System.err.println("Timed out waiting for Jmol to load files");
+ System.err
+ .println("Timed out waiting for Jmol to load files after "
+ + waitTotal + "ms");
+// System.err.println("finished: " + jmb.isFinishedInit()
+// + "; loaded: " + Arrays.toString(jmb.getPdbFile())
+// + "; files: " + files.toString());
+ jmb.getPdbFile();
break;
}
}