package org.tomighty.ui.menu;
import com.google.inject.Injector;
import org.tomighty.i18n.Messages;
import javax.inject.Inject;
import javax.swing.*;
import java.awt.event.ActionListener;
public class PopupMenuFactory {
@Inject private Injector injector;
@Inject private Messages messages;
public JPopupMenu create(Action[] items) {
JPopupMenu menu = new JPopupMenu();
if(items != null && items.length > 0) {
for(Action action : items) {
injector.injectMembers(action);
JMenuItem item = new JMenuItem(action);
menu.add(item);
}
menu.addSeparator();
}
JMenu pluginsMenu = new JMenu(messages.get("Plugins"));
pluginsMenu.add(menuItem("Manage", injector.getInstance(ShowPluginManager.class)));
menu.add(menuItem("Options", injector.getInstance(ShowOptions.class)));
menu.add(pluginsMenu);
menu.add(menuItem("About", injector.getInstance(ShowAboutWindow.class)));
menu.addSeparator();
menu.add(menuItem("Close", new Exit()));
return menu;
}
private JMenuItem menuItem(String text, ActionListener listener) {
JMenuItem item = new JMenuItem(messages.get(text));
item.addActionListener(listener);
return item;
}
}