X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Finstantlauncher%2Fmenu%2FMultiLevelMenu.java;h=700f842be5b77e2f222f02beb6daa62f42faa308;hb=8e3d8292673f5fc9c0611f419d7425c8fe151ca8;hp=308f5ba847f4002753d57fdde3d90775d9d80516;hpb=85626a6118fa2f5d358cb26ab136e341768e5c47;p=instantlauncher.git diff --git a/src/main/java/eu/svjatoslav/instantlauncher/menu/MultiLevelMenu.java b/src/main/java/eu/svjatoslav/instantlauncher/menu/MultiLevelMenu.java index 308f5ba..700f842 100755 --- a/src/main/java/eu/svjatoslav/instantlauncher/menu/MultiLevelMenu.java +++ b/src/main/java/eu/svjatoslav/instantlauncher/menu/MultiLevelMenu.java @@ -93,7 +93,7 @@ public class MultiLevelMenu implements MenuListener { } @Override - public void menuItemSelected(final Menu menu, final File chosenFile) { + public void menuItemHighlighted(final Menu menu, final File chosenFile) { if (chosenFile.isDirectory()) { final int menuIndex = getMenuIndex(menu); @@ -107,9 +107,12 @@ public class MultiLevelMenu implements MenuListener { } } - if (chosenFile.isFile()) { + } - if (chosenFile.canExecute()) { + @Override + public void menuItemSelected(final Menu menu, final File chosenFile) { + if (chosenFile.isFile()) + if (chosenFile.canExecute()) try { // Execute a command without arguments final String command = chosenFile.getAbsolutePath(); @@ -122,18 +125,12 @@ public class MultiLevelMenu implements MenuListener { } catch (final IOException e) { new ExceptionDialog(e); } - - } else { + else { final boolean fileOpened = FileAssociationManager.openFile(chosenFile); - if (fileOpened) { + if (fileOpened) InstantLauncher.exitProgram(); - } } - } - } - @Override - public void menuItemSelectedAlternative(final Menu menu, final File chosenFile) { if (chosenFile.isDirectory()) { // Execute a command without arguments final String directoryPath = chosenFile.getAbsolutePath(); @@ -149,8 +146,27 @@ public class MultiLevelMenu implements MenuListener { } catch (final IOException e) { new ExceptionDialog(e); } - } else { + } + } + + @Override + public void menuItemSelectedAlternative(final Menu menu, final File chosenFile) { + if (chosenFile.isFile()) chosenFile.setExecutable(!chosenFile.canExecute()); + else { + // Execute a command without arguments + final String[] c = new String[2]; + + c[0] = "gnome-terminal"; + c[1] = "--working-directory=" + chosenFile.getAbsolutePath(); + + try { + Runtime.getRuntime().exec(c); + InstantLauncher.exitProgram(); + + } catch (final IOException e) { + new ExceptionDialog(e); + } } } @@ -161,9 +177,8 @@ public class MultiLevelMenu implements MenuListener { jPanel.removeAll(); } - while (menus.size() > fromIndex) { + while (menus.size() > fromIndex) menus.remove(fromIndex); - } } }