20 package net.sf.gridarta.gui.utils;
22 import java.awt.Component;
23 import javax.swing.AbstractButton;
24 import javax.swing.JMenu;
25 import javax.swing.JMenuBar;
26 import javax.swing.JMenuItem;
27 import javax.swing.JSeparator;
28 import javax.swing.MenuElement;
30 import net.
sf.japi.swing.action.ActionBuilder;
31 import net.
sf.japi.swing.action.ActionBuilderFactory;
32 import org.jetbrains.annotations.NotNull;
33 import org.jetbrains.annotations.Nullable;
45 private static final ActionBuilder
ACTION_BUILDER = ActionBuilderFactory.getInstance().getActionBuilder(
"net.sf.gridarta");
59 if (menuElement instanceof AbstractButton) {
60 ((AbstractButton) menuElement).setAction(
null);
63 for (
final MenuElement child : menuElement.getSubElements()) {
72 public static void removeAll(@NotNull
final JMenu menu) {
73 for (
final MenuElement child : menu.getSubElements()) {
85 final Component menuItem = menu.getMenuComponent(0);
86 if (menuItem ==
null || menuItem instanceof JSeparator) {
90 if (menuItem instanceof MenuElement) {
102 final int menuComponentCount = menu.getMenuComponentCount();
103 if (menuComponentCount <= 0) {
106 final Component menuItem = menu.getMenuComponent(menuComponentCount - 1);
107 if (menuItem ==
null || menuItem instanceof JSeparator) {
110 menu.remove(menuComponentCount - 1);
111 if (menuItem instanceof MenuElement) {
124 public static JMenu
getMenu(@NotNull
final JMenuBar menuBar, @NotNull
final String
name) {
126 return menuItem instanceof JMenu ? (JMenu) menuItem :
null;
136 public static JMenu
findMenu(@NotNull
final MenuElement menuElement, @NotNull
final String key) {
137 for (
final MenuElement subMenuElement : menuElement.getSubElements()) {
138 if (subMenuElement instanceof JMenu) {
139 final JMenu subMenu = (JMenu) subMenuElement;
144 final JMenu ret =
findMenu(subMenu, key);