package com.onaro.sanscreen.client; import java.util.HashMap; import java.util.Map; import javax.swing.Icon; import javax.swing.JMenu; import javax.swing.JMenuItem; import com.jidesoft.swing.JideSplitButton; import com.onaro.sanscreen.client.view.ActionFactory; public class MenuButtonShortcutManager extends ShortcutManager { private JideSplitButton button = null; /** * Map from the group id to the button for the group; */ private final Map groupIdToMenuMap; public MenuButtonShortcutManager(ActionFactory actionFactory) { super(actionFactory); groupIdToMenuMap = new HashMap(); } @Override protected void addShortcutComponent(ShortcutAction shortcutAction) { String groupId = shortcutAction.getGroupId(); JMenu menu = groupIdToMenuMap.get(groupId); JMenuItem item = new JMenuItem(shortcutAction); item.setName(shortcutAction.getId()); menu.add(item); } @Override protected void addShortcutGroupComponent(ShortcutGroupAction shortcutGroupAction) { String groupId = shortcutGroupAction.getGroupId(); JMenu menu = new JMenu(shortcutGroupAction); menu.setName(shortcutGroupAction.getGroupId()); groupIdToMenuMap.put(groupId, menu); getButton().add(menu); } public JideSplitButton getButton() { if (button == null) { button = new JideSplitButton(); button.setAlwaysDropdown(true); Icon icon = SANscreenClientPlugin.getDefault().getBranding().getLaunchMenuIcon(); button.setIcon(icon); button.setName("shortcuts.button"); //$NON-NLS-1$ } return button; } }