package com.horstmann.violet.application.menu;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.MenuElement;
public class MenuUtils
{
public static void alterMenuBar(JMenuBar menuBar)
{
MenuElement[] subMenuElements = menuBar.getSubElements();
List<MenuElement> menuEntryStack = new ArrayList<MenuElement>();
if (subMenuElements.length > 0)
{
menuEntryStack.addAll(Arrays.asList(subMenuElements));
}
while (!menuEntryStack.isEmpty())
{
MenuElement menuElement = menuEntryStack.get(0);
if (menuElement instanceof JMenuItem)
{
final JMenuItem menuItem = (JMenuItem) menuElement;
menuItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.out.println(menuItem.getName());
}
});
}
MenuElement[] subElements = menuElement.getSubElements();
if (subElements.length > 0)
{
menuEntryStack.addAll(Arrays.asList(subElements));
}
menuEntryStack.remove(0);
}
}
}