X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FDesktop.java;h=bfd700f0c069971aa2737d87a9b8a580817d40dd;hb=a27b3832ad1bbe70548bcc53301446c75d02672a;hp=fb3bbc02f4de6983436e778f402433f22c6ecb82;hpb=e400c2aa8fe74794d496b72689ec73fd337edfa8;p=jalview.git diff --git a/src/jalview/gui/Desktop.java b/src/jalview/gui/Desktop.java index fb3bbc0..bfd700f 100644 --- a/src/jalview/gui/Desktop.java +++ b/src/jalview/gui/Desktop.java @@ -64,7 +64,6 @@ import java.util.List; import java.util.ListIterator; import java.util.Locale; import java.util.Vector; -import java.util.concurrent.Callable; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.Semaphore; @@ -122,6 +121,7 @@ import jalview.io.FormatAdapter; import jalview.io.IdentifyFile; import jalview.io.JalviewFileChooser; import jalview.io.JalviewFileView; +import jalview.io.exceptions.ImageOutputException; import jalview.jbgui.GSplitFrame; import jalview.jbgui.GStructureViewer; import jalview.project.Jalview2XML; @@ -442,6 +442,7 @@ public class Desktop extends jalview.jbgui.GDesktop System.err.println( "Linux platform only! You may have the following warning next: \"WARNING: An illegal reflective access operation has occurred\"\nThis is expected and cannot be avoided, sorry about that."); } + final String awtAppClassName = "awtAppClassName"; try { Toolkit xToolkit = Toolkit.getDefaultToolkit(); @@ -449,10 +450,10 @@ public class Desktop extends jalview.jbgui.GDesktop Field awtAppClassNameField = null; if (Arrays.stream(declaredFields) - .anyMatch(f -> f.getName().equals("awtAppClassName"))) + .anyMatch(f -> f.getName().equals(awtAppClassName))) { awtAppClassNameField = xToolkit.getClass() - .getDeclaredField("awtAppClassName"); + .getDeclaredField(awtAppClassName); } String title = ChannelProperties.getProperty("app_name"); @@ -463,11 +464,12 @@ public class Desktop extends jalview.jbgui.GDesktop } else { - jalview.bin.Console.debug("XToolkit: awtAppClassName not found"); + jalview.bin.Console + .debug("XToolkit: " + awtAppClassName + " not found"); } } catch (Exception e) { - jalview.bin.Console.debug("Error setting awtAppClassName"); + jalview.bin.Console.debug("Error setting " + awtAppClassName); jalview.bin.Console.trace(Cache.getStackTraceString(e)); } } @@ -1262,7 +1264,6 @@ public class Desktop extends jalview.jbgui.GDesktop new FileLoader().LoadFile(viewport, selectedFile, DataSourceType.FILE, format); - return null; }); chooser.showOpenDialog(this); } @@ -1318,7 +1319,7 @@ public class Desktop extends jalview.jbgui.GDesktop Object[] options = new Object[] { MessageManager.getString("action.ok"), MessageManager.getString("action.cancel") }; - Callable action = () -> { + Runnable action = () -> { @SuppressWarnings("unchecked") String url = (history instanceof JTextField ? ((JTextField) history).getText() @@ -1357,8 +1358,7 @@ public class Desktop extends jalview.jbgui.GDesktop JvOptionPane.showInternalMessageDialog(Desktop.desktop, msg, MessageManager.getString("label.url_not_found"), JvOptionPane.WARNING_MESSAGE); - - return null; // Void + return; } if (viewport != null) @@ -1371,7 +1371,6 @@ public class Desktop extends jalview.jbgui.GDesktop new FileLoader().LoadFile(url, DataSourceType.URL, format); } } - return null; // Void }; String dialogOption = MessageManager .getString("label.input_alignment_from_url"); @@ -1410,7 +1409,7 @@ public class Desktop extends jalview.jbgui.GDesktop public QuitHandler.QResponse desktopQuit(boolean ui, boolean disposeFlag) { - final Callable doDesktopQuit = () -> { + final Runnable doDesktopQuit = () -> { Dimension screen = Toolkit.getDefaultToolkit().getScreenSize(); Cache.setProperty("SCREENGEOMETRY_WIDTH", screen.width + ""); Cache.setProperty("SCREENGEOMETRY_HEIGHT", screen.height + ""); @@ -1436,7 +1435,7 @@ public class Desktop extends jalview.jbgui.GDesktop if (QuitHandler.quitCancelled()) { jalview.bin.Console.debug("Desktop aborting quit"); - return null; + return; } if (dialogExecutor != null) @@ -1465,8 +1464,6 @@ public class Desktop extends jalview.jbgui.GDesktop // instance.dispose(); } instance.quit(); - - return null; // Void }; return QuitHandler.getQuitResponse(ui, doDesktopQuit, doDesktopQuit, @@ -1614,7 +1611,7 @@ public class Desktop extends jalview.jbgui.GDesktop } } Jalview.setCurrentAlignFrame(null); - System.out.println("ALL CLOSED"); + jalview.bin.Console.info("ALL CLOSED"); /* * reset state of singleton objects as appropriate (clear down session state @@ -1965,7 +1962,6 @@ public class Desktop extends jalview.jbgui.GDesktop } } }, "Project Loader").start(); - return null; }); chooser.showOpenDialog(this); @@ -3136,7 +3132,11 @@ public class Desktop extends jalview.jbgui.GDesktop String title = "View of desktop"; ImageExporter exporter = new ImageExporter(writer, null, TYPE.EPS, title); - exporter.doExport(of, this, width, height, title); + try { + exporter.doExport(of, this, width, height, title); + } catch (ImageOutputException ioex) { + jalview.bin.Console.error("Unexpected error whilst writing Jalview desktop snapshot as EPS",ioex); + } } /** @@ -3576,4 +3576,17 @@ public class Desktop extends jalview.jbgui.GDesktop jalview.bin.Console.debug(Cache.getStackTraceString(e)); } } + + /** + * closes the current instance window, disposes and forgets about it. + */ + public static void closeDesktop() + { + if (Desktop.instance != null) { + Desktop.instance.closeAll_actionPerformed(null); + Desktop.instance.setVisible(false); + Desktop.instance.dispose(); + Desktop.instance = null; + } + } }