+ @Override
+ public void showOverview()
+ {
+ currentAlignFrame.overviewMenuItem_actionPerformed(null);
+ }
+
+ public void notifyWorker(AlignCalcWorkerI worker, String status)
+ {
+ // System.out.println("Jalview worker " + worker.getClass().getSimpleName()
+ // + " " + status);
+ }
+
+ /**
+ * flag to allow selected Runnable and Thread processes to run synchronously
+ *
+ * JAL-3563
+ *
+ */
+ private static boolean isSynchronous = false;
+
+ /**
+ * Set Jalview to run selected processes synchronously in test and headless
+ * environments.
+ *
+ * JAL-3563
+ *
+ * @param b
+ * @author Bob Hanson
+ */
+ public static void setSynchronous(boolean b)
+ {
+ isSynchronous = b;
+ }
+
+ /**
+ * Allows optional synchronous running of a Runnable that would otherwise use
+ * SwingUtilities.invokeLater.
+ *
+ * JAL-3563
+ *
+ * @param t
+ * @author Bob Hanson
+ */
+ public static boolean isSynchronous()
+ {
+ return isSynchronous;
+ }
+
+ /**
+ * Allows optional synchronous running of a Runnable that would otherwise use
+ * SwingUtilities.invokeLater.
+ *
+ * JAL-3563
+ *
+ * @param t
+ * @author Bob Hanson
+ */
+ public static void execRunnable(Runnable r)
+ {
+ if (isSynchronous())
+ {
+ r.run();
+ }
+ else
+ {
+ SwingUtilities.invokeLater(r);
+ }
+ }
+
+ /**
+ * Allows optional synchronous running of a thread that would otherwise be run
+ * using start().
+ *
+ * JAL-3563
+ *
+ * @param t
+ * @author Bob Hanson
+ */
+ public static void execThread(Thread t)
+ {
+ if (isSynchronous())
+ {
+ t.run();
+ }
+ else
+ {
+ t.start();
+ }
+ }