X-Git-Url: https://git.argeo.org/?a=blobdiff_plain;f=eclipse%2Fruntime%2Forg.argeo.eclipse.ui.rcp%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Feclipse%2Fui%2Fspecific%2FFileHandler.java;h=53285b4f03f2a2f020654f21350a25fdc73a067f;hb=a99d11e0c2696ff1a4a258adaa94d137440c8d6c;hp=93e9d9213e848834cfd9816d0472ac83016c2776;hpb=5f0b7679ef0cbcb1b101f71673f1e5e24e735b39;p=lgpl%2Fargeo-commons.git diff --git a/eclipse/runtime/org.argeo.eclipse.ui.rcp/src/main/java/org/argeo/eclipse/ui/specific/FileHandler.java b/eclipse/runtime/org.argeo.eclipse.ui.rcp/src/main/java/org/argeo/eclipse/ui/specific/FileHandler.java index 93e9d9213..53285b4f0 100644 --- a/eclipse/runtime/org.argeo.eclipse.ui.rcp/src/main/java/org/argeo/eclipse/ui/specific/FileHandler.java +++ b/eclipse/runtime/org.argeo.eclipse.ui.rcp/src/main/java/org/argeo/eclipse/ui/specific/FileHandler.java @@ -17,11 +17,14 @@ import org.argeo.ArgeoException; */ public class FileHandler { - public FileHandler() { - } + private FileProvider provider; - public void openFile(String fileName, InputStream is) { + public FileHandler(FileProvider provider) { + this.provider = provider; + } + public void openFile(String fileName, String fileId) { + String tmpFileName = fileName; String prefix = "", extension = ""; if (fileName != null) { int ind = fileName.lastIndexOf('.'); @@ -31,28 +34,22 @@ public class FileHandler { } } - File file = createTmpFile(prefix, extension, is); - + InputStream is = null; try { + is = provider.getInputStreamFromFileId(fileId); + File file = createTmpFile(prefix, extension, is); + tmpFileName = file.getName(); Desktop desktop = null; if (Desktop.isDesktopSupported()) { desktop = Desktop.getDesktop(); } desktop.open(file); } catch (IOException e) { - throw new ArgeoException("Cannot open file " + file.getName(), e); - } - } - - public void openFile(File file) { - try { - Desktop desktop = null; - if (Desktop.isDesktopSupported()) { - desktop = Desktop.getDesktop(); - } - desktop.open(file); - } catch (IOException e) { - throw new ArgeoException("Cannot open file " + file.getName(), e); + // Note : tmpFileName = fileName if the error has been thrown while + // creating the tmpFile. + throw new ArgeoException("Cannot open file " + tmpFileName, e); + } finally { + IOUtils.closeQuietly(is); } } @@ -71,5 +68,4 @@ public class FileHandler { } return tmpFile; } - }