if (c instanceof JPopupMenu) {
c = (Container)((JPopupMenu)c).getInvoker();
}
if (c instanceof JMenu && menuCmd.getAction() instanceof MenuAwareTextAction) {
JMenu parentMenu = (JMenu)c;
parentMenu.addMenuListener(new MenuListener() {
public void menuCanceled(MenuEvent e) {}
public void menuDeselected(MenuEvent e) {}
public void menuSelected(MenuEvent e) {
boolean isEnabled = ((MenuAwareTextAction)menuCmd.getAction()).shouldBeEnabled();
menuCmd.setEnabled(isEnabled);