X-Git-Url: http://www2.svjatoslav.eu/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Feu%2Fsvjatoslav%2Finstantlauncher%2Fmenu%2FMenu.java;h=916f8efa1b23ac4bcf4359f30ac6a05959351eae;hb=93f468855f39e69c8964786a7d5339eb52ddc021;hp=a99c7c026850f2afdfd1ac93652c019f2a75595d;hpb=7afbbed8e0cef27a47dd7599aadc5c2c814c7dea;p=instantlauncher.git diff --git a/src/main/java/eu/svjatoslav/instantlauncher/menu/Menu.java b/src/main/java/eu/svjatoslav/instantlauncher/menu/Menu.java index a99c7c0..916f8ef 100755 --- a/src/main/java/eu/svjatoslav/instantlauncher/menu/Menu.java +++ b/src/main/java/eu/svjatoslav/instantlauncher/menu/Menu.java @@ -22,228 +22,223 @@ import eu.svjatoslav.instantlauncher.Utils; public class Menu { - public static final Color BUTTON_BG_DIRECTORY = new Color(0, 0, 60); - public static final Color BUTTON_BG_DIRECTORY_SELECTED = new Color(0, 0, 100); + public static class ButtonMouseListener implements MouseListener { + + JButton parentButton; + Menu parentMenu; + File file; + + public ButtonMouseListener(final JButton button, final Menu parentMenu, final File file) { + parentButton = button; + this.parentMenu = parentMenu; + this.file = file; + } + + @Override + public void mouseClicked(final MouseEvent e) { + try { + + if (e.getButton() == 1) + parentMenu.menuItemSelected(file); + if (e.getButton() == 2) + parentMenu.menuItemSelectedAlternative2(file); + if (e.getButton() == 3) + parentMenu.menuItemSelectedAlternative(file); + } catch (final Exception ex) { + new ExceptionDialog(ex); + } + } + + @Override + public void mouseEntered(final MouseEvent e) { + try { + if (parentButton != parentMenu.getSelectedButton()) { + + if (parentMenu.getSelectedButton() != null) + parentMenu.getSelectedButton().setBackground(getFileColor(parentMenu.getSelectedFile(), false)); + + parentMenu.setSelected(parentButton, file); + parentButton.setBackground(getFileColor(file, true)); + + parentMenu.menuItemHighlighted(file); + } + } catch (final Exception ex) { + new ExceptionDialog(ex); + } + } + + @Override + public void mouseExited(final MouseEvent e) { + } + + @Override + public void mousePressed(final MouseEvent e) { + } + + @Override + public void mouseReleased(final MouseEvent e) { + } - public static final Color BUTTON_BG_LINK = new Color(60, 60, 0); - public static final Color BUTTON_BG_LINK_SELECTED = new Color(100, 100, 0); + } - public static final Color BUTTON_BG_EXECUTABLE_FILE = new Color(60, 0, 0); - public static final Color BUTTON_BG_EXECUTABLE_FILE_SELECTED = new Color(100, 0, 0); + public static final Color BUTTON_BG_DIRECTORY = new Color(0, 0, 60); + + public static final Color BUTTON_BG_DIRECTORY_SELECTED = new Color(0, 0, 100); + public static final Color BUTTON_BG_LINK = new Color(60, 60, 0); + + public static final Color BUTTON_BG_LINK_SELECTED = new Color(100, 100, 0); + public static final Color BUTTON_BG_EXECUTABLE_FILE = new Color(60, 0, 0); + + public static final Color BUTTON_BG_EXECUTABLE_FILE_SELECTED = new Color(100, 0, 0); + public static final Color BUTTON_BG_NONEXECUTABLE_FILE = new Color(0, 60, 0); + + public static final Color BUTTON_BG_NONEXECUTABLE_FILE_SELECTED = new Color(0, 100, 0); + public static final Dimension SIZE_BUTTON = new Dimension(200, 30); + + public static final Dimension SIZE_MENU_PANEL = new Dimension(210, 900); + + /** + *
+ * Assign specific colors to: + * Directory + * Executable file + * Non executable file + *+ */ + public static Color getFileColor(final File file, final boolean selected) { + if (file.isDirectory()) + if (selected) + return BUTTON_BG_DIRECTORY_SELECTED; + else + return BUTTON_BG_DIRECTORY; + + if (file.isFile()) + if (file.canExecute()) { + if (selected) + return BUTTON_BG_EXECUTABLE_FILE_SELECTED; + else + return BUTTON_BG_EXECUTABLE_FILE; + } else if (selected) + return BUTTON_BG_NONEXECUTABLE_FILE_SELECTED; + else + return BUTTON_BG_NONEXECUTABLE_FILE; + + if (selected) + return BUTTON_BG_LINK_SELECTED; + else + return BUTTON_BG_LINK; + } + + private JPanel menuPanel; + + public JButton selectedButton; + + public File selectedFile;; + + private final Set
- * Assign specific colors to: - * Directory - * Executable file - * Non executable file - *- */ - public static Color getFileColor(final File file, final boolean selected) { - if (file.isDirectory()) { - if (selected) { - return BUTTON_BG_DIRECTORY_SELECTED; - } else { - return BUTTON_BG_DIRECTORY; - } - } - - if (file.isFile()) { - if (file.canExecute()) { - if (selected) { - return BUTTON_BG_EXECUTABLE_FILE_SELECTED; - } else { - return BUTTON_BG_EXECUTABLE_FILE; - } - } else { - if (selected) { - return BUTTON_BG_NONEXECUTABLE_FILE_SELECTED; - } else { - return BUTTON_BG_NONEXECUTABLE_FILE; - } - } - } - - if (selected) { - return BUTTON_BG_LINK_SELECTED; - } else { - return BUTTON_BG_LINK; - } - } - - public static class ButtonMouseListener implements MouseListener { - - JButton parentButton; - Menu parentMenu; - File file; - - public ButtonMouseListener(final JButton button, final Menu parentMenu, final File file) { - parentButton = button; - this.parentMenu = parentMenu; - this.file = file; - } - - @Override - public void mouseClicked(final MouseEvent e) { - try { - - if (e.getButton() == 1) { - parentMenu.notifyEventListeners(file); - } - if (e.getButton() == 3) { - parentMenu.notifyAlternativeEventListeners(file); - } - } catch (final Exception ex) { - new ExceptionDialog(ex); - } - } - - @Override - public void mouseEntered(final MouseEvent e) { - try { - if (parentButton != parentMenu.getSelectedButton()) { - - if (parentMenu.getSelectedButton() != null) { - parentMenu.getSelectedButton().setBackground(getFileColor(parentMenu.getSelectedFile(), false)); - } - - parentMenu.setSelected(parentButton, file); - parentButton.setBackground(getFileColor(file, true)); - - if (file.isDirectory()) { - parentMenu.notifyEventListeners(file); - } - } - } catch (final Exception ex) { - new ExceptionDialog(ex); - } - } - - @Override - public void mouseExited(final MouseEvent e) { - } - - @Override - public void mousePressed(final MouseEvent e) { - } - - @Override - public void mouseReleased(final MouseEvent e) { - } - - } + public void menuItemSelectedAlternative2(final File chosenFile) { + for (final MenuListener menuListener : menuListeners) + menuListener.menuItemSelectedAlternative2(this, chosenFile); + } + + public void setSelected(final JButton selectedButton, final File selectedFile) { + this.selectedButton = selectedButton; + this.selectedFile = selectedFile; + } } \ No newline at end of file