X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FDesktop.java;h=35c78187a1e335d290ab422799f2babe6b008d19;hb=ba1f9fee25b87bdac0c535019252b787939a8f80;hp=35afb69da2081d88492b47749d361f11442bd1bb;hpb=1e75445b3e45bb22baebbcd215137df1c1aef34f;p=jalview.git
diff --git a/src/jalview/gui/Desktop.java b/src/jalview/gui/Desktop.java
index 35afb69..35c7818 100644
--- a/src/jalview/gui/Desktop.java
+++ b/src/jalview/gui/Desktop.java
@@ -184,7 +184,7 @@ public class Desktop extends jalview.jbgui.GDesktop
: "
");
sb.append(
- "
For help, see www.jalview.org/faq and join discourse.jalview.org");
+ "
For help, see www.jalview.org/faq and join discourse.jalview.org");
sb.append("
If you use Jalview, please cite:"
+ "
Waterhouse, A.M., Procter, J.B., Martin, D.M.A, Clamp, M. and Barton, G. J. (2009)"
+ "
Jalview Version 2 - a multiple sequence alignment editor and analysis workbench"
@@ -1478,16 +1478,21 @@ public class Desktop extends jalview.jbgui.GDesktop
}
/**
- * close everything, stash window geometries, and shut down all associated threads/workers
- * @param dispose - sets the dispose on close flag - JVM may terminate when set
- * @param terminateJvm - quit with prejudice - stops the JVM.
+ * close everything, stash window geometries, and shut down all associated
+ * threads/workers
+ *
+ * @param dispose
+ * - sets the dispose on close flag - JVM may terminate when set
+ * @param terminateJvm
+ * - quit with prejudice - stops the JVM.
*/
- public void quitTheDesktop(boolean dispose, boolean terminateJvm) {
+ public void quitTheDesktop(boolean dispose, boolean terminateJvm)
+ {
Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
Cache.setProperty("SCREENGEOMETRY_WIDTH", screen.width + "");
Cache.setProperty("SCREENGEOMETRY_HEIGHT", screen.height + "");
- storeLastKnownDimensions("", new Rectangle(getBounds().x,
- getBounds().y, getWidth(), getHeight()));
+ storeLastKnownDimensions("", new Rectangle(getBounds().x, getBounds().y,
+ getWidth(), getHeight()));
if (jconsole != null)
{
@@ -1513,7 +1518,21 @@ public class Desktop extends jalview.jbgui.GDesktop
{
// suppress a possible repeat prompt to save script
groovyConsole.setDirty(false);
- groovyConsole.exit();
+
+ // and tidy up
+ if (((Window) groovyConsole.getFrame()) != null
+ && ((Window) groovyConsole.getFrame()).isVisible())
+ {
+ // console is visible -- FIXME JAL-4327
+ groovyConsole.exit();
+ }
+ else
+ {
+ // console is not, so just let it dispose itself when we shutdown
+ // we don't call groovyConsole.exit() because it calls the shutdown
+ // handler with invokeAndWait() causing deadlock
+ groovyConsole = null;
+ }
}
if (terminateJvm)
@@ -1530,19 +1549,22 @@ public class Desktop extends jalview.jbgui.GDesktop
// instance.dispose();
}
}
+
public QuitHandler.QResponse desktopQuit(boolean ui, boolean disposeFlag)
{
final Runnable doDesktopQuit = () -> {
- // FIRST !! check for aborted quit
+ // FIRST !! check for aborted quit
if (QuitHandler.quitCancelled())
{
- jalview.bin.Console.debug("Quit was cancelled - Desktop aborting quit");
+ jalview.bin.Console
+ .debug("Quit was cancelled - Desktop aborting quit");
return;
}
-
+
// Proceed with quitting
- quitTheDesktop(disposeFlag, QuitHandler.gotQuitResponse() == QResponse.FORCE_QUIT);
+ quitTheDesktop(disposeFlag,
+ QuitHandler.gotQuitResponse() == QResponse.FORCE_QUIT);
// and exit the JVM
instance.quit();
};
@@ -1552,13 +1574,13 @@ public class Desktop extends jalview.jbgui.GDesktop
}
/**
- * Exits the program and the JVM.
+ * Exits the program and the JVM.
*
* Don't call this directly
*
* - use desktopQuit() above to tidy up first.
*
- * - use closeDesktop() to shutdown Jalview without shutting down the JVM
+ * - use closeDesktop() to shutdown Jalview without shutting down the JVM
*
*/
@Override
@@ -3067,7 +3089,16 @@ public class Desktop extends jalview.jbgui.GDesktop
*/
public static void showUrl(final String url)
{
- showUrl(url, Desktop.instance);
+ if (url != null && !url.trim().equals(""))
+ {
+ jalview.bin.Console.info("Opening URL: " + url);
+ showUrl(url, Desktop.instance);
+ }
+ else
+ {
+ jalview.bin.Console.warn("Ignoring attempt to show an empty URL.");
+ }
+
}
/**
@@ -3718,8 +3749,9 @@ public class Desktop extends jalview.jbgui.GDesktop
}
/**
- * closes the current instance window, but leaves the JVM running.
- * Bypasses any shutdown prompts, but does not set window dispose on close in case JVM terminates.
+ * closes the current instance window, but leaves the JVM running. Bypasses
+ * any shutdown prompts, but does not set window dispose on close in case JVM
+ * terminates.
*/
public static void closeDesktop()
{