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=265f32c0a439ca5505f2dabfe3c8b426de368eeb;hp=b9c4d31d3fcbe4a0bb74d5c4891f15becb963383;hpb=d2ed44a6c5968200c6ba18809dc0845749072b7f;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 b9c4d31d3..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,13 +17,14 @@ import org.argeo.ArgeoException; */ public class FileHandler { - // unused file provider : collateral effects of single sourcing, this File - // provider is compulsory for RAP file handler - public FileHandler(FileProvider jfp) { - } + private FileProvider provider; - public void openFile(String fileName, String fileId, 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('.'); @@ -33,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); - } - } - - private 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); } } @@ -73,5 +68,4 @@ public class FileHandler { } return tmpFile; } - }