JAL-853 use service action attribute to index services in webservices menu and hardwi...
[jalview.git] / src / jalview / gui / JvSwingUtils.java
index f41e85a..437f430 100644 (file)
@@ -22,6 +22,7 @@ import java.awt.Font;
 import java.awt.event.ActionListener;
 
 import javax.swing.JButton;
+import javax.swing.JMenu;
 import javax.swing.SwingConstants;
 
 /**
@@ -68,4 +69,32 @@ public final class JvSwingUtils
     return button;
   }
 
+  /**
+   * find or add a submenu with the given title in the given menu
+   * 
+   * @param menu
+   * @param submenu
+   * @return the new or existing submenu
+   */
+  public static JMenu findOrCreateMenu(JMenu menu, String submenu)
+  {
+    JMenu submenuinstance = null;
+    for (int i = 0, iSize = menu.getMenuComponentCount(); i < iSize; i++)
+    {
+      if (menu.getMenuComponent(i) instanceof JMenu
+              && ((JMenu) menu.getMenuComponent(i)).getText().equals(
+                      submenu))
+      {
+        submenuinstance = (JMenu) menu.getMenuComponent(i);
+      }
+    }
+    if (submenuinstance == null)
+    {
+      submenuinstance = new JMenu(submenu);
+      menu.add(submenuinstance);
+    }
+    return submenuinstance;
+  
+  }
+
 }