Author: echatellier Date: 2015-06-11 07:57:15 +0000 (Thu, 11 Jun 2015) New Revision: 4259 Url: http://forge.codelutin.com/projects/isis-fish/repository/revisions/4259 Log: Modify order to take screenshot without filechooser Modified: branches/isis-fish-4.4.0-editor/src/main/java/fr/ifremer/isisfish/ui/StatusBarHandler.java Modified: branches/isis-fish-4.4.0-editor/src/main/java/fr/ifremer/isisfish/ui/StatusBarHandler.java =================================================================== --- branches/isis-fish-4.4.0-editor/src/main/java/fr/ifremer/isisfish/ui/StatusBarHandler.java 2015-06-10 14:12:25 UTC (rev 4258) +++ branches/isis-fish-4.4.0-editor/src/main/java/fr/ifremer/isisfish/ui/StatusBarHandler.java 2015-06-11 07:57:15 UTC (rev 4259) @@ -22,14 +22,18 @@ */ package fr.ifremer.isisfish.ui; +import java.awt.AWTException; import java.awt.Component; import java.awt.Rectangle; import java.awt.Robot; import java.awt.image.BufferedImage; import java.io.File; +import java.io.IOException; + import javax.imageio.ImageIO; import javax.swing.JFileChooser; import javax.swing.SwingUtilities; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -80,31 +84,30 @@ } final Component realParent = parent; - // ask user for file - int opt = screenshotFileChooser.showSaveDialog(realParent); - if (opt == JFileChooser.APPROVE_OPTION) { - File file = screenshotFileChooser.getSelectedFile(); + try { + // take screenshot + // we must take screenshot BEFORE filechooser display + Rectangle screenRect = realParent.getBounds(); + final BufferedImage capture = new Robot().createScreenCapture(screenRect); - // add "png" if not yet set - if (!file.getName().endsWith(".png")) { - file = new File(file.getAbsolutePath() + ".png"); + // ask user for file + int opt = screenshotFileChooser.showSaveDialog(realParent); + if (opt == JFileChooser.APPROVE_OPTION) { + File file = screenshotFileChooser.getSelectedFile(); + + // add "png" if not yet set + if (!file.getName().endsWith(".png")) { + file = new File(file.getAbsolutePath() + ".png"); + } + final File realFile = file; + + // save screenshot + ImageIO.write(capture, "png", realFile); } - final File realFile = file; - - SwingUtilities.invokeLater(new Runnable() { - public void run() { - // take screenshot - try { - Rectangle screenRect = realParent.getBounds(); - BufferedImage capture = new Robot().createScreenCapture(screenRect); - ImageIO.write(capture, "png", realFile); - } catch (Exception ex) { - if (log.isErrorEnabled()) { - log.error("Can't show help", ex); - } - } - } - }); + } catch (AWTException|IOException ex) { + if (log.isErrorEnabled()) { + log.error("Can't take screenshot help", ex); + } } } }
participants (1)
-
echatellier@users.forge.codelutin.com