package com.revolsys.swing.menu;
import java.awt.Component;
import java.awt.event.MouseEvent;
import javax.swing.JMenuItem;
import javax.swing.JPopupMenu;
import com.revolsys.swing.action.RunnableAction;
public class BaseJPopupMenu extends JPopupMenu {
private static final long serialVersionUID = 1L;
public BaseJPopupMenu() {
}
public BaseJPopupMenu(final String name) {
super(name);
}
public JMenuItem addMenuItem(final String title, final Runnable runnable) {
return addMenuItem(title, null, runnable);
}
public JMenuItem addMenuItem(final String title, final String iconName, final Runnable runnable) {
final JMenuItem menuItem = RunnableAction.newMenuItem(title, iconName, runnable);
add(menuItem);
return menuItem;
}
public void showMenu(final Component component, final int x, final int y) {
MenuFactory.showMenu(this, component, x, y);
}
public boolean showMenu(final MouseEvent e) {
if (e.isPopupTrigger() && !e.isConsumed()) {
final Component component = e.getComponent();
final int x = e.getX();
final int y = e.getY();
showMenu(component, x + 5, y);
return true;
} else {
return false;
}
}
}