package com.niklim.clicktrace.view.control.menu; import java.awt.event.ActionListener; import javax.swing.ImageIcon; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import com.google.inject.Inject; import com.google.inject.Singleton; import com.niklim.clicktrace.Icons; import com.niklim.clicktrace.view.OperationsShortcutEnum; @Singleton public class MenuBar { JMenuBar menubar; @Inject private FileMenu fileMenu; @Inject private SessionMenu sessionMenu; @Inject private ScreenShotMenu screenShotMenu; @Inject private ToolsMenu toolsMenu; @Inject public void init() { menubar = new JMenuBar(); menubar.add(fileMenu.getMenu()); menubar.add(sessionMenu.getMenu()); menubar.add(screenShotMenu.getMenu()); menubar.add(toolsMenu.getMenu()); } public static JMenuItem createMenuItem(String label, OperationsShortcutEnum shortcut, ActionListener actionListener) { JMenuItem item = new JMenuItem(label); item.addActionListener(actionListener); if (shortcut != null) { item.setToolTipText(shortcut.text); } return item; } public static JMenuItem createMenuItem(String label, String iconName, OperationsShortcutEnum shortcut, ActionListener listener) { JMenuItem item = new JMenuItem(label, new ImageIcon(Icons.createIconImage(iconName, label))); item.addActionListener(listener); if (shortcut != null) { item.setToolTipText(shortcut.text); } return item; } public JMenuBar getMenuBar() { return menubar; } public void sessionStateChanged() { sessionMenu.sessionStateChanged(); screenShotMenu.sessionStateChanged(); toolsMenu.sessionStateChanged(); } }