X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Finstantlauncher%2Fmenu%2FMultiLevelMenu.java;h=700f842be5b77e2f222f02beb6daa62f42faa308;hb=9a575510e22502a2ac47345aac40457d4e295956;hp=9485528f1bfcfe70fd18e0d572f954e338f5dc03;hpb=7afbbed8e0cef27a47dd7599aadc5c2c814c7dea;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 9485528..700f842 100755 --- a/src/main/java/eu/svjatoslav/instantlauncher/menu/MultiLevelMenu.java +++ b/src/main/java/eu/svjatoslav/instantlauncher/menu/MultiLevelMenu.java @@ -20,7 +20,7 @@ public class MultiLevelMenu implements MenuListener { private final InstantLauncher instantLauncher; - private static final int VERTICAL_MENUS_COUNT = 5; + private static final int VERTICAL_MENUS_COUNT = 7; public static final Dimension CONTENT_PANEL_SIZE = new Dimension(1024, 900); @@ -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); - } } }