X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Finstantlauncher%2FFileAssociationManager.java;fp=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Finstantlauncher%2FFileAssociationManager.java;h=0000000000000000000000000000000000000000;hb=ea9f229a2b0d0be0e765bdd508948b28cd2d490e;hp=5d4971e522d278357dd5f7b17726320168674985;hpb=dcc5f6b34d80ffcebd604993305e9924bcdffbd3;p=instantlauncher.git diff --git a/src/main/java/eu/svjatoslav/instantlauncher/FileAssociationManager.java b/src/main/java/eu/svjatoslav/instantlauncher/FileAssociationManager.java deleted file mode 100755 index 5d4971e..0000000 --- a/src/main/java/eu/svjatoslav/instantlauncher/FileAssociationManager.java +++ /dev/null @@ -1,118 +0,0 @@ -package eu.svjatoslav.instantlauncher; - -import eu.svjatoslav.commons.gui.dialog.ExceptionDialog; - -import java.io.File; -import java.io.IOException; -import java.util.HashMap; - -import static eu.svjatoslav.commons.file.FilePathParser.getFileExtension; - -public class FileAssociationManager { - - private static final String FILE_INDICATOR = ""; - - private static final String[] TEXT_EDITOR_PATTERN = new String[]{"emc", FILE_INDICATOR}; - - private static final String DOCUMENT_EDITOR = "lowriter"; - - private static final String SPREADSHEET_EDITOR = "localc"; - - private static final String MUSIC_PLAYER = "clementine"; - - private static final HashMap extensionToApplication = new HashMap<>(); - - public FileAssociationManager() { - - extensionToApplication.put("txt", TEXT_EDITOR_PATTERN); - extensionToApplication.put("xml", TEXT_EDITOR_PATTERN); - extensionToApplication.put("org", TEXT_EDITOR_PATTERN); - extensionToApplication.put("properties", TEXT_EDITOR_PATTERN); - extensionToApplication.put("ini", TEXT_EDITOR_PATTERN); - extensionToApplication.put("", TEXT_EDITOR_PATTERN); - - extensionToApplication.put("jpg", new String[]{"eog", FILE_INDICATOR}); - extensionToApplication.put("jpeg", new String[]{"eog", FILE_INDICATOR}); - extensionToApplication.put("png", new String[]{"eog", FILE_INDICATOR}); - - extensionToApplication.put("pdf", new String[]{"evince", FILE_INDICATOR}); - - extensionToApplication.put("mp3", new String[]{"banshee", FILE_INDICATOR}); - extensionToApplication.put("ogg", new String[]{"banshee", FILE_INDICATOR}); - - extensionToApplication.put("avi", new String[]{"vlc", FILE_INDICATOR}); - extensionToApplication.put("mkv", new String[]{"vlc", FILE_INDICATOR}); - extensionToApplication.put("ogv", new String[]{"vlc", FILE_INDICATOR}); - extensionToApplication.put("mp4", new String[]{"vlc", FILE_INDICATOR}); - extensionToApplication.put("flv", new String[]{"vlc", FILE_INDICATOR}); - extensionToApplication.put("wmv", new String[]{"vlc", FILE_INDICATOR}); - - extensionToApplication.put("flac", new String[]{MUSIC_PLAYER, FILE_INDICATOR}); - extensionToApplication.put("mp3", new String[]{MUSIC_PLAYER, FILE_INDICATOR}); - extensionToApplication.put("ogg", new String[]{MUSIC_PLAYER, FILE_INDICATOR}); - extensionToApplication.put("wav", new String[]{MUSIC_PLAYER, FILE_INDICATOR}); - - extensionToApplication.put("ods", new String[]{SPREADSHEET_EDITOR, FILE_INDICATOR}); - extensionToApplication.put("xls", new String[]{SPREADSHEET_EDITOR, FILE_INDICATOR}); - extensionToApplication.put("xlsx", new String[]{SPREADSHEET_EDITOR, FILE_INDICATOR}); - - extensionToApplication.put("docx", new String[]{DOCUMENT_EDITOR, FILE_INDICATOR}); - extensionToApplication.put("doc", new String[]{DOCUMENT_EDITOR, FILE_INDICATOR}); - - extensionToApplication.put("desktop", new String[]{"run-desktop", FILE_INDICATOR}); - - extensionToApplication.put("log", new String[]{"glogg", FILE_INDICATOR}); - extensionToApplication.put("out", new String[]{"glogg", FILE_INDICATOR}); - - extensionToApplication.put("html", new String[]{"firefox", FILE_INDICATOR}); - - extensionToApplication.put("htm", new String[]{"firefox", FILE_INDICATOR}); - - } - - private static boolean isLogFile(final String fileName) { - if (fileName.endsWith(".out")) - return true; - if (fileName.endsWith(".log")) - return true; - return fileName.contains(".log."); - - } - - /** - * @return true if file was opened. false if - * unknown file type. - */ - public static boolean openFile(final File file) { - - if (isLogFile(file.getName())) { - runOpeningApplication(file, new String[]{"glogg", FILE_INDICATOR}); - return true; - } - - final String fileExtension = getFileExtension(file); - - if (extensionToApplication.containsKey(fileExtension)) { - final String[] commands = extensionToApplication.get(fileExtension); - runOpeningApplication(file, commands); - return true; - } else - return false; - - } - - private static void runOpeningApplication(final File file, final String[] commands) { - for (int i = 0; i < commands.length; i++) - if (commands[i].equals(FILE_INDICATOR)) - commands[i] = file.getAbsolutePath(); - - try { - Runtime.getRuntime().exec(commands); - InstantLauncher.exitProgram(); - - } catch (final IOException e) { - new ExceptionDialog(e); - } - } - -}