+/*
+ * Instantlauncher. Author: Svjatoslav Agejenko, svjatoslav@svjatoslav.eu
+ * This project is released under Creative Commons Zero (CC0) license.
+ */
package eu.svjatoslav.instantlauncher.menu;
-import eu.svjatoslav.commons.gui.dialog.ExceptionDialog;
-import eu.svjatoslav.instantlauncher.FileAssociationManager;
import eu.svjatoslav.instantlauncher.InstantLauncher;
import eu.svjatoslav.instantlauncher.Utils;
import java.io.IOException;
import java.util.ArrayList;
+import static eu.svjatoslav.instantlauncher.Utils.executeCommand;
+
public class MultiLevelMenu implements MenuListener {
private static final int VERTICAL_MENUS_COUNT = 7;
contentPane.add(panel);
}
- final File directory = instantLauncher.configuration.getRootDirectory();
+ final File directory = instantLauncher.configurationManager.getConfiguration().getNavigationRootDirectory();
addMenu(directory);
return contentPane;
}
@Override
- public void menuItemSelected(final Menu menu, final File chosenFile) {
+ public void menuItemSelected(final File chosenFile) {
if (chosenFile.isFile()) {
if (chosenFile.canExecute()) {
executeCommand(chosenFile.getAbsolutePath());
+ InstantLauncher.exitProgram();
} else {
boolean fileOpened;
try {
- fileOpened = FileAssociationManager.openFile(chosenFile.getCanonicalFile());
- if (fileOpened) {
+ fileOpened = instantLauncher.openFile(chosenFile.getCanonicalFile());
+ if (fileOpened)
InstantLauncher.exitProgram();
- }
+
} catch (IOException e) {
e.printStackTrace();
}
if (chosenFile.isDirectory()) {
try {
- executeCommand("nautilus", "-w", chosenFile.getCanonicalFile().getAbsolutePath());
+ instantLauncher.openDirectory(chosenFile.getCanonicalFile());
+ InstantLauncher.exitProgram();
} catch (IOException e) {
e.printStackTrace();
}
}
}
- private void executeCommand(String... c) {
- try {
- Runtime.getRuntime().exec(c);
- InstantLauncher.exitProgram();
-
- } catch (final IOException e) {
- new ExceptionDialog(e);
- }
- }
-
@Override
- public void menuItemSelectedAlternative(final Menu menu, final File chosenFile) {
- if (chosenFile.isFile()) {
+ public void menuItemSelectedAlternative(final File chosenFile) {
+ if (chosenFile.isFile())
chosenFile.setExecutable(!chosenFile.canExecute());
- } else {
- try {
- executeCommand("gnome-terminal", "--working-directory="
- + chosenFile.getCanonicalFile().getAbsolutePath());
- } catch (IOException e) {
- e.printStackTrace();
- }
+ else {
+ instantLauncher.openDirectoryInTerminal(chosenFile);
+ InstantLauncher.exitProgram();
}
}
}
@Override
- public void menuItemSelectedAlternative2(Menu menu, File chosenFile) {
- if (chosenFile.isFile()) {
- try {
- executeCommand("emacs", chosenFile.getCanonicalFile().getAbsolutePath());
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
+ public void menuItemSelectedAlternative2(File chosenFile) {
+ // TODO: define some middle mouse click functions
}
+
}