ur_rna.RNAstructureUI.menus

## Class MainMenu

- java.lang.Object
- - java.awt.Component
  - - java.awt.Container
    - - javax.swing.JComponent
      - - javax.swing.AbstractButton
        - - javax.swing.JMenuItem
          - - javax.swing.JMenu
            - - ur_rna.Utilities.swing.MergeMenu
              - - ur_rna.RNAstructureUI.menus.MainMenu

- All Implemented Interfaces:
    java.awt.event.ActionListener, java.awt.image.ImageObserver, java.awt.ItemSelectable, java.awt.MenuContainer, java.io.Serializable, java.lang.Cloneable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.MenuElement, javax.swing.SwingConstants, IMenuItem, IMergeItem
  Direct Known Subclasses:
    AnnotationMenu, ConstraintsMenu, DotsMenu, FileMenu, HelpMenu, ImageDialog.PrintMenu, NucleicAcidMenu, OligoWalkWindow.OligoWalkResultsMenu, PlotMenu, PredictMenu, SequenceDisplayWindow.EditMenu, SequenceDisplayWindow.SpeakMenu, StructureMenu

      public class MainMenu
      extends MergeMenu
      implements java.awt.event.ActionListener

  A MainMenu is essentially an MergeMenu that is designed to be subclassed and to handle the actions of its child menu items by attaching itself as an ActionListener to all child menu items.
  See Also:
    Serialized Form

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class javax.swing.JMenu

      `javax.swing.JMenu.AccessibleJMenu, javax.swing.JMenu.WinListener`

    - ### Nested classes/interfaces inherited from class javax.swing.JMenuItem

      `javax.swing.JMenuItem.AccessibleJMenuItem`

    - ### Nested classes/interfaces inherited from class javax.swing.AbstractButton

      `javax.swing.AbstractButton.AccessibleAbstractButton, javax.swing.AbstractButton.ButtonChangeListener`

    - ### Nested classes/interfaces inherited from class javax.swing.JComponent

      `javax.swing.JComponent.AccessibleJComponent`

    - ### Nested classes/interfaces inherited from class java.awt.Container

      `java.awt.Container.AccessibleAWTContainer`

    - ### Nested classes/interfaces inherited from class java.awt.Component

      `java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy`

    - ### Nested classes/interfaces inherited from interface ur_rna.Utilities.swing.IMergeItem

      `IMergeItem.Proxy`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private AppMainFrame` | `mainFrame`
    `private java.awt.event.ActionListener` | `menuListener` The ActionLister that will be used to delegate ActionEvents produced by the menu items.
    `private static long` | `serialVersionUID`

    - ### Fields inherited from class ur_rna.Utilities.swing.MergeMenu

      `subItemMergePos`

    - ### Fields inherited from class javax.swing.JMenu

      `popupListener`

    - ### Fields inherited from class javax.swing.AbstractButton

      `actionListener, BORDER_PAINTED_CHANGED_PROPERTY, changeEvent, changeListener, CONTENT_AREA_FILLED_CHANGED_PROPERTY, DISABLED_ICON_CHANGED_PROPERTY, DISABLED_SELECTED_ICON_CHANGED_PROPERTY, FOCUS_PAINTED_CHANGED_PROPERTY, HORIZONTAL_ALIGNMENT_CHANGED_PROPERTY, HORIZONTAL_TEXT_POSITION_CHANGED_PROPERTY, ICON_CHANGED_PROPERTY, itemListener, MARGIN_CHANGED_PROPERTY, MNEMONIC_CHANGED_PROPERTY, model, MODEL_CHANGED_PROPERTY, PRESSED_ICON_CHANGED_PROPERTY, ROLLOVER_ENABLED_CHANGED_PROPERTY, ROLLOVER_ICON_CHANGED_PROPERTY, ROLLOVER_SELECTED_ICON_CHANGED_PROPERTY, SELECTED_ICON_CHANGED_PROPERTY, TEXT_CHANGED_PROPERTY, VERTICAL_ALIGNMENT_CHANGED_PROPERTY, VERTICAL_TEXT_POSITION_CHANGED_PROPERTY`

    - ### Fields inherited from class javax.swing.JComponent

      `listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW`

    - ### Fields inherited from class java.awt.Component

      `accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT`

    - ### Fields inherited from interface ur_rna.Utilities.swing.IMergeItem

      `MergePosDefault, MergePosInitial, MergePosInvalid, MergePosMax, MergePosMin`

    - ### Fields inherited from interface javax.swing.SwingConstants

      `BOTTOM, CENTER, EAST, HORIZONTAL, LEADING, LEFT, NEXT, NORTH, NORTH_EAST, NORTH_WEST, PREVIOUS, RIGHT, SOUTH, SOUTH_EAST, SOUTH_WEST, TOP, TRAILING, VERTICAL, WEST`

    - ### Fields inherited from interface java.awt.image.ImageObserver

      `ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `MainMenu(java.lang.String title)`
    `MainMenu(java.lang.String title, java.awt.event.ActionListener menuListener)`
    `MainMenu(java.lang.String title, int mergePos)`
    `MainMenu(java.lang.String title, int mergePos, java.awt.event.ActionListener menuListener)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `actionPerformed(java.awt.event.ActionEvent ev)`
    `CheckMergeItem` | `addCheckItem(java.lang.String text, java.lang.String tooltip)` Add a check box menu item with tooltip text.
    `CheckMergeItem` | `addCheckItem(java.lang.String text, java.lang.String tooltip, boolean checked)`
    `MergeItem` | `addItem(java.lang.String text, java.lang.String tooltip)` Add a plain text menu item with tooltip text.
    `MergeItem` | `addItem(java.lang.String text, java.lang.String tooltip, char shortcutKey)` Add a menu item with tooltip text and a key stroke which can activate it.
    `MergeItem` | `addItem(java.lang.String text, java.lang.String tooltip, char shortcutKey, java.lang.String actionCommand)` Add a plain text menu item with tooltip text.
    `MergeItem` | `addItem(java.lang.String text, java.lang.String tooltip, javax.swing.KeyStroke key)` Add a plain text menu item with tooltip text and a key stroke which can activate it.
    `MergeItem` | `addItem(java.lang.String text, java.lang.String tooltip, javax.swing.KeyStroke keyStroke, java.lang.String actionCommand)` Add a menu item with tooltip text.
    `MergeItem` | `addItem(java.lang.String text, java.lang.String tooltip, java.lang.String shortcutKey)` Add a plain text menu item with tooltip text.
    `MergeItem` | `addItem(java.lang.String text, java.lang.String tooltip, java.lang.String shortcutKey, java.lang.String actionCommand)` Add a plain text menu item with tooltip text.
    `protected CheckMergeItem` | `createCheckItem(java.lang.String text, java.lang.String tooltip)`
    `protected MergeItem` | `createMenuItem(java.lang.String text, java.lang.String tooltip, java.lang.String actionCommand, javax.swing.KeyStroke keyStroke)`
    `protected void` | `initItem(javax.swing.JMenuItem item, java.lang.String text, java.lang.String tooltip, java.lang.String actionCommand, javax.swing.KeyStroke keyStroke)` Perform initial setup of the JMenuItem
    `protected void` | `onMenuAction(java.lang.String command, java.awt.event.ActionEvent ev)` Do any actions specific to this menu.

    - ### Methods inherited from class ur_rna.Utilities.swing.MergeMenu

      `add, add, add, add, addAll, addCheck, addSeparator, addSeparator, getMergePos, getSubItemMergePos, insertMergeGap, insertMergeGap, setMergePos, setSubItemMergePos, setSubItemsEnabled, setSubItemsVisible, setText`

    - ### Methods inherited from class javax.swing.JMenu

      `add, add, add, addMenuListener, applyComponentOrientation, createActionChangeListener, createActionComponent, createWinListener, doClick, fireMenuCanceled, fireMenuDeselected, fireMenuSelected, getAccessibleContext, getComponent, getDelay, getItem, getItemCount, getMenuComponent, getMenuComponentCount, getMenuComponents, getMenuListeners, getPopupMenu, getPopupMenuOrigin, getSubElements, getUIClassID, insert, insert, insert, insertSeparator, isMenuComponent, isPopupMenuVisible, isSelected, isTearOff, isTopLevelMenu, menuSelectionChanged, paramString, processKeyEvent, remove, remove, remove, removeAll, removeMenuListener, setAccelerator, setComponentOrientation, setDelay, setMenuLocation, setModel, setPopupMenuVisible, setSelected, updateUI`

    - ### Methods inherited from class javax.swing.JMenuItem

      `actionPropertyChanged, addMenuDragMouseListener, addMenuKeyListener, configurePropertiesFromAction, fireMenuDragMouseDragged, fireMenuDragMouseEntered, fireMenuDragMouseExited, fireMenuDragMouseReleased, fireMenuKeyPressed, fireMenuKeyReleased, fireMenuKeyTyped, getAccelerator, getMenuDragMouseListeners, getMenuKeyListeners, init, isArmed, processKeyEvent, processMenuDragMouseEvent, processMenuKeyEvent, processMouseEvent, removeMenuDragMouseListener, removeMenuKeyListener, setArmed, setEnabled, setUI`

    - ### Methods inherited from class javax.swing.AbstractButton

      `addActionListener, addChangeListener, addImpl, addItemListener, checkHorizontalKey, checkVerticalKey, createActionListener, createActionPropertyChangeListener, createChangeListener, createItemListener, doClick, fireActionPerformed, fireItemStateChanged, fireStateChanged, getAction, getActionCommand, getActionListeners, getChangeListeners, getDisabledIcon, getDisabledSelectedIcon, getDisplayedMnemonicIndex, getHideActionText, getHorizontalAlignment, getHorizontalTextPosition, getIcon, getIconTextGap, getItemListeners, getLabel, getMargin, getMnemonic, getModel, getMultiClickThreshhold, getPressedIcon, getRolloverIcon, getRolloverSelectedIcon, getSelectedIcon, getSelectedObjects, getText, getUI, getVerticalAlignment, getVerticalTextPosition, imageUpdate, isBorderPainted, isContentAreaFilled, isFocusPainted, isRolloverEnabled, paintBorder, removeActionListener, removeChangeListener, removeItemListener, removeNotify, setAction, setActionCommand, setBorderPainted, setContentAreaFilled, setDisabledIcon, setDisabledSelectedIcon, setDisplayedMnemonicIndex, setFocusPainted, setHideActionText, setHorizontalAlignment, setHorizontalTextPosition, setIcon, setIconTextGap, setLabel, setLayout, setMargin, setMnemonic, setMnemonic, setMultiClickThreshhold, setPressedIcon, setRolloverEnabled, setRolloverIcon, setRolloverSelectedIcon, setSelectedIcon, setUI, setVerticalAlignment, setVerticalTextPosition`

    - ### Methods inherited from class javax.swing.JComponent

      `addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update`

    - ### Methods inherited from class java.awt.Container

      `add, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, transferFocusDownCycle, validate, validateTree`

    - ### Methods inherited from class java.awt.Component

      `action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, resize, resize, setBounds, setBounds, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface ur_rna.Utilities.swing.IMergeItem

      `asMergeItem, asMergeItems, compareByMergePos, compareByMergePos, fixInvalid, getComponent, getMergeName, getMergeName, getMergePos, getValidMergePos, mergeEnd, mergeStart, setInitialMergePos, setMergePos`

    - ### Methods inherited from interface ur_rna.Utilities.swing.IMenuItem

      `findByAction, findByName, findByTreePath, from, getComponent, getContainer, getItemName, getMenuItem, getMenuItems, getMenus, hasSubItems`

    - ### Methods inherited from interface javax.swing.MenuElement

      `processKeyEvent, processMouseEvent`

- - ### Field Detail

    - #### mainFrame

          private final AppMainFrame mainFrame

    - #### menuListener

          private final java.awt.event.ActionListener menuListener

      The ActionLister that will be used to delegate ActionEvents produced by the menu items. The default is null, which indicates that menu events are handled internally (i.e. in a sub-class)

    - #### serialVersionUID

          private static final long serialVersionUID

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### MainMenu

          public MainMenu(java.lang.String title)

    - #### MainMenu

          public MainMenu(java.lang.String title,
                          java.awt.event.ActionListener menuListener)

    - #### MainMenu

          public MainMenu(java.lang.String title,
                          int mergePos)

    - #### MainMenu

          public MainMenu(java.lang.String title,
                          int mergePos,
                          java.awt.event.ActionListener menuListener)

  - ### Method Detail

    - #### actionPerformed

          public void actionPerformed(java.awt.event.ActionEvent ev)

      Specified by:
        `actionPerformed` in interface `java.awt.event.ActionListener`

    - #### addCheckItem

          public CheckMergeItem addCheckItem(java.lang.String text,
                                             java.lang.String tooltip)

      Add a check box menu item with tooltip text.
      Parameters:
        `text` - The menu item text.
        `tooltip` - The tooltip text.

    - #### addCheckItem

          public CheckMergeItem addCheckItem(java.lang.String text,
                                             java.lang.String tooltip,
                                             boolean checked)

    - #### addItem

          public MergeItem addItem(java.lang.String text,
                                   java.lang.String tooltip)

      Add a plain text menu item with tooltip text.
      Parameters:
        `text` - The menu item text.
        `tooltip` - The tooltip text.

    - #### addItem

          public MergeItem addItem(java.lang.String text,
                                   java.lang.String tooltip,
                                   char shortcutKey)

      Add a menu item with tooltip text and a key stroke which can activate it.
      Parameters:
        `text` - The menu item text.
        `tooltip` - The tooltip text.
        `shortcutKey` - The key stroke.

    - #### addItem

          public MergeItem addItem(java.lang.String text,
                                   java.lang.String tooltip,
                                   char shortcutKey,
                                   java.lang.String actionCommand)

      Add a plain text menu item with tooltip text.
      Parameters:
        `text` - The menu item text.
        `tooltip` - The tooltip text.

    - #### addItem

          public MergeItem addItem(java.lang.String text,
                                   java.lang.String tooltip,
                                   javax.swing.KeyStroke key)

      Add a plain text menu item with tooltip text and a key stroke which can activate it.
      Parameters:
        `text` - The menu item text.
        `tooltip` - The tooltip text.
        `key` - The key stroke.

    - #### addItem

          public MergeItem addItem(java.lang.String text,
                                   java.lang.String tooltip,
                                   javax.swing.KeyStroke keyStroke,
                                   java.lang.String actionCommand)

      Add a menu item with tooltip text.
      Parameters:
        `text` - The menu item text.
        `tooltip` - The tooltip text.
        `actionCommand` - A string specifying the action identifier

    - #### addItem

          public MergeItem addItem(java.lang.String text,
                                   java.lang.String tooltip,
                                   java.lang.String shortcutKey)

      Add a plain text menu item with tooltip text.
      Parameters:
        `text` - The menu item text.
        `tooltip` - The tooltip text.

    - #### addItem

          public MergeItem addItem(java.lang.String text,
                                   java.lang.String tooltip,
                                   java.lang.String shortcutKey,
                                   java.lang.String actionCommand)

      Add a plain text menu item with tooltip text.
      Parameters:
        `text` - The menu item text.
        `tooltip` - The tooltip text.

    - #### createCheckItem

          protected CheckMergeItem createCheckItem(java.lang.String text,
                                                   java.lang.String tooltip)

    - #### createMenuItem

          protected MergeItem createMenuItem(java.lang.String text,
                                             java.lang.String tooltip,
                                             java.lang.String actionCommand,
                                             javax.swing.KeyStroke keyStroke)

    - #### initItem

          protected void initItem(javax.swing.JMenuItem item,
                                  java.lang.String text,
                                  java.lang.String tooltip,
                                  java.lang.String actionCommand,
                                  javax.swing.KeyStroke keyStroke)

      Perform initial setup of the JMenuItem
      Parameters:
        `item` - The JMenuItem to initialize.
        `text` - The text for the item, which can contain an ampersand (&) in front of the mnemonic character.
        `tooltip` - Descriptive text for the item.
        `actionCommand` - The command this will invoke when clicked.
        `keyStroke` - An accelerator shortcut key.

    - #### onMenuAction

          protected void onMenuAction(java.lang.String command,
                                      java.awt.event.ActionEvent ev)

      Do any actions specific to this menu.
      Parameters:
        `command` - The command that signifies a particular action.
        `ev` -