Possibility to configure terminal emulator.
[instantlauncher.git] / src / main / java / eu / svjatoslav / instantlauncher / InstantLauncher.java
index b13b585..ae6ce50 100755 (executable)
@@ -1,28 +1,50 @@
 package eu.svjatoslav.instantlauncher;
 
-import java.io.FileNotFoundException;
+import eu.svjatoslav.commons.gui.dialog.ExceptionDialog;
+import eu.svjatoslav.instantlauncher.configuration.ConfigurationManager;
+import eu.svjatoslav.instantlauncher.configuration.FileAssociation;
+
+import java.io.File;
 import java.io.IOException;
 
-import org.apache.log4j.Logger;
+import static eu.svjatoslav.instantlauncher.Utils.runOpeningApplication;
 
 public class InstantLauncher {
 
-    public Configuration configuration;
+    private final MainFrame mainFrame;
+    public ConfigurationManager configurationManager;
 
-    FileAssociationManager associationManager = new FileAssociationManager();
+    public InstantLauncher() throws IOException {
+        configurationManager = new ConfigurationManager();
+        mainFrame = new MainFrame(this);
+    }
 
-    public static final Logger LOGGER = Logger.getLogger(InstantLauncher.class);
+    public static void exitProgram() {
+        System.exit(0);
+    }
 
-    public void run() throws FileNotFoundException, IOException {
-        configuration = new Configuration();
+    /**
+     * @return <code>true</code> if file was opened. <code>false</code> if
+     * unknown file type.
+     */
+    public boolean openFile(final File file) {
+        FileAssociation fileAssociation = configurationManager.getConfiguration().findFileAssociation(file);
+        if (fileAssociation == null) return false;
 
-        final MainFrame mainFrame = new MainFrame(this);
+        runOpeningApplication(fileAssociation.command, file);
+        return true;
+    }
+
+    public void run() {
         mainFrame.show();
     }
 
-    public static void exitProgram() {
-        LOGGER.info("Closing InstantLauncher");
-        System.exit(0);
+    public void openDirectory(File chosenFile) {
+        runOpeningApplication(configurationManager.getConfiguration().directoryOpenCommand, chosenFile);
+    }
+
+    public void openDirectoryInTerminal(File chosenFile) {
+        runOpeningApplication(configurationManager.getConfiguration().directoryTerminalOpenCommand, chosenFile);
     }
 
 }