import jalview.api.AlignmentViewPanel;
import jalview.bin.Console;
+import jalview.bin.Jalview;
import jalview.datamodel.PDBEntry;
import jalview.datamodel.SequenceI;
import jalview.datamodel.StructureViewerModel;
float usescale = bis.scale();
int usewidth = bis.width();
int useheight = bis.height();
-
ImageWriterI writer = new ImageWriterI()
{
@Override
final Throwable[] exceptions = new Throwable[1];
exceptions[0] = null;
final AppJmol us = this;
+ Runnable exportRunnable = () -> {
+ try
+ {
+ exporter.doExport(file, us, width, height, view, renderer, userBis);
+ } catch (Throwable t)
+ {
+ Console.debug("Problem when exporting structure image", t);
+ exceptions[0] = t;
+ }
+ };
try
{
- Thread runner = Executors.defaultThreadFactory()
- .newThread(new Runnable()
- {
- @Override
- public void run()
- {
- try
- {
- exporter.doExport(file, us, width, height, view,
- renderer, userBis);
- } catch (Throwable t)
- {
- exceptions[0] = t;
- }
- }
- });
- runner.start();
- long time = 0;
- do
+ if (Jalview.isHeadlessMode())
{
- Thread.sleep(25);
- } while (runner.isAlive() && time++ < 4000);
- if (time >= 4000)
+ exportRunnable.run();
+ }
+ else
{
- runner.interrupt();
- throw new ImageOutputException(
- "Jmol took too long to export. Waited for 100 seconds.");
+ Thread runner = Executors.defaultThreadFactory()
+ .newThread(exportRunnable);
+ runner.start();
+ long time = 0;
+ do
+ {
+ Thread.sleep(25);
+ } while (runner.isAlive() && time++ < 4000);
+ if (time >= 4000)
+ {
+ runner.interrupt();
+ throw new ImageOutputException(
+ "Jmol took too long to export. Waited for 100 seconds.");
+ }
}
} catch (Throwable e)
{