1 package eu.svjatoslav.instantlauncher;
4 import java.io.IOException;
5 import java.util.HashMap;
7 import eu.svjatoslav.commons.gui.dialog.ExceptionDialog;
9 public class FileAssociationManager {
11 private static final String TEXT_EDITOR = "gd";
13 private static final String FILE_INDICATOR = "<FILE>";
15 public static HashMap<String, String[]> extensionToApplication = new HashMap<String, String[]>();
17 public static boolean openFile(final File file) {
19 final String fileExtension = Utils.getFileExtension(file);
21 System.out.println("About to open file with extension: " + fileExtension);
23 if (extensionToApplication.containsKey(fileExtension)) {
25 System.out.println("Commands found");
27 final String[] commands = extensionToApplication.get(fileExtension);
29 final String[] c = new String[commands.length];
31 for (int i = 0; i < commands.length; i++)
32 if (commands[i].equals(FILE_INDICATOR))
33 c[i] = file.getAbsolutePath();
38 Runtime.getRuntime().exec(c);
39 InstantLauncher.exitProgram();
41 } catch (final IOException e) {
42 new ExceptionDialog(e);
51 public FileAssociationManager() {
53 extensionToApplication.put("txt", new String[] { TEXT_EDITOR, FILE_INDICATOR });
54 extensionToApplication.put("xml", new String[] { TEXT_EDITOR, FILE_INDICATOR });
55 extensionToApplication.put("properties", new String[] { TEXT_EDITOR, FILE_INDICATOR });
56 extensionToApplication.put("ini", new String[] { TEXT_EDITOR, FILE_INDICATOR });
57 extensionToApplication.put("", new String[] { TEXT_EDITOR, FILE_INDICATOR });
59 extensionToApplication.put("jpg", new String[] { "eog", FILE_INDICATOR });
60 extensionToApplication.put("jpeg", new String[] { "eog", FILE_INDICATOR });
61 extensionToApplication.put("png", new String[] { "eog", FILE_INDICATOR });
63 extensionToApplication.put("pdf", new String[] { "evince", FILE_INDICATOR });
65 extensionToApplication.put("mp3", new String[] { "banshee", FILE_INDICATOR });
66 extensionToApplication.put("ogg", new String[] { "banshee", FILE_INDICATOR });
68 extensionToApplication.put("avi", new String[] { "vlc", FILE_INDICATOR });
69 extensionToApplication.put("mkv", new String[] { "vlc", FILE_INDICATOR });
70 extensionToApplication.put("ogv", new String[] { "vlc", FILE_INDICATOR });
71 extensionToApplication.put("mp4", new String[] { "vlc", FILE_INDICATOR });
72 extensionToApplication.put("flv", new String[] { "vlc", FILE_INDICATOR });
73 extensionToApplication.put("wmv", new String[] { "vlc", FILE_INDICATOR });
75 extensionToApplication.put("ods", new String[] { "localc", FILE_INDICATOR });
76 extensionToApplication.put("docx", new String[] { "lowriter", FILE_INDICATOR });