]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - org.argeo.eclipse.ui.rap/src/org/argeo/eclipse/ui/specific/OpenFileService.java
Adapt to changes in Argeo TP.
[lgpl/argeo-commons.git] / org.argeo.eclipse.ui.rap / src / org / argeo / eclipse / ui / specific / OpenFileService.java
index 926c8aaaccc72bfc369150925abe0fd812024e74..2818fc7ea131377d8fa084048d024e93c9c55d13 100644 (file)
@@ -23,7 +23,6 @@ import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import org.apache.commons.io.FileUtils;
-import org.argeo.ArgeoException;
 import org.eclipse.rap.rwt.service.ServiceHandler;
 
 /**
@@ -49,10 +48,10 @@ public class OpenFileService implements ServiceHandler {
                String uri = request.getParameter(PARAM_FILE_URI);
 
                // Set the Metadata
-               response.setContentType("application/octet-stream");
                response.setContentLength((int) getFileLength(uri));
                if (fileName == null || "".equals(fileName.trim()))
                        fileName = getFileName(uri);
+               response.setContentType(getMimeTypeFromName(fileName));
                String contentDisposition = "attachment; filename=\"" + fileName + "\"";
                response.setHeader("Content-Disposition", contentDisposition);
 
@@ -80,8 +79,8 @@ public class OpenFileService implements ServiceHandler {
                                return FileUtils.readFileToByteArray(new File(
                                                getFilePathFromUri(uri)));
                        } catch (IOException ioe) {
-                               throw new ArgeoException("Error getting the file at " + uri,
-                                               ioe);
+                               throw new SingleSourcingException("Error getting the file at "
+                                               + uri, ioe);
                        }
                }
                return null;
@@ -104,4 +103,9 @@ public class OpenFileService implements ServiceHandler {
        private String getFilePathFromUri(String uri) {
                return uri.substring((FILE_SCHEME + SCHEME_HOST_SEPARATOR).length());
        }
+
+       /** Overwrite to precise the content type */
+       protected String getMimeTypeFromName(String fileName) {
+               return "application/octet-stream";
+       }
 }
\ No newline at end of file