Possibility to configure terminal emulator.
[instantlauncher.git] / src / main / java / eu / svjatoslav / instantlauncher / InstantLauncher.java
1 package eu.svjatoslav.instantlauncher;
2
3 import eu.svjatoslav.commons.gui.dialog.ExceptionDialog;
4 import eu.svjatoslav.instantlauncher.configuration.ConfigurationManager;
5 import eu.svjatoslav.instantlauncher.configuration.FileAssociation;
6
7 import java.io.File;
8 import java.io.IOException;
9
10 import static eu.svjatoslav.instantlauncher.Utils.runOpeningApplication;
11
12 public class InstantLauncher {
13
14     private final MainFrame mainFrame;
15     public ConfigurationManager configurationManager;
16
17     public InstantLauncher() throws IOException {
18         configurationManager = new ConfigurationManager();
19         mainFrame = new MainFrame(this);
20     }
21
22     public static void exitProgram() {
23         System.exit(0);
24     }
25
26     /**
27      * @return <code>true</code> if file was opened. <code>false</code> if
28      * unknown file type.
29      */
30     public boolean openFile(final File file) {
31         FileAssociation fileAssociation = configurationManager.getConfiguration().findFileAssociation(file);
32         if (fileAssociation == null) return false;
33
34         runOpeningApplication(fileAssociation.command, file);
35         return true;
36     }
37
38     public void run() {
39         mainFrame.show();
40     }
41
42     public void openDirectory(File chosenFile) {
43         runOpeningApplication(configurationManager.getConfiguration().directoryOpenCommand, chosenFile);
44     }
45
46     public void openDirectoryInTerminal(File chosenFile) {
47         runOpeningApplication(configurationManager.getConfiguration().directoryTerminalOpenCommand, chosenFile);
48     }
49
50 }