ur_rna.RNAstructureUI.windows

## Class OligoWalkWindow

- java.lang.Object
- - java.awt.Component
  - - java.awt.Container
    - - javax.swing.JComponent
      - - javax.swing.JInternalFrame
        - - ur_rna.RNAstructureUI.windows.InternalWindow
          - - ur_rna.RNAstructureUI.windows.ModuleWindow
            - - ur_rna.RNAstructureUI.windows.OligoWalkWindow

- All Implemented Interfaces:
    java.awt.event.ActionListener, java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.swing.RootPaneContainer, javax.swing.WindowConstants

      public class OligoWalkWindow
      extends ModuleWindow

  A class that handles creation of windows for the OligoWalk module. The OligoWalk module creates two linked windows, an input window and an output (results) window. The two windows share a back end calculator. This module is only used with RNA.
  Note also that this class violates the usual 500 line class length coding standard limit. This is because both the input window and the results window contain objects unique to themselves, and the results window, which is more complex than the input window, relies on the same data structure as the input window.
  See Also:
    Serialized Form

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `(package private) class` | `OligoWalkWindow.BarButton` An inner class that encapsulates a bar button.
    `class` | `OligoWalkWindow.OligoSelectionDialog` An inner class which creates a dialog that selects a particular oligo to move to in the results window.
    `(package private) class` | `OligoWalkWindow.OligoWalkResultsMenu` An inner class that handles creation of the oligo graph menu for the OligoWalk results window.
    `class` | `OligoWalkWindow.SpinnerPanel` An class that creates a panel containing a single spinner with a label.
    `class` | `OligoWalkWindow.StringComboBox` An inner class that creates a combo box holding a string list.

    - ### Nested classes/interfaces inherited from class ur_rna.RNAstructureUI.windows.InternalWindow

      `InternalWindow.CommandInfo`

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

      `javax.swing.JInternalFrame.AccessibleJInternalFrame, javax.swing.JInternalFrame.JDesktopIcon`

    - ### 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`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `private boolean` | `isInputWindow` A boolean that tells whether this window is an input window or not.
    `private javax.swing.JPanel` | `panelInput`
    `private javax.swing.JPanel` | `panelResults` The box that holds the results.
    `private static long` | `serialVersionUID`

    - ### Fields inherited from class ur_rna.RNAstructureUI.windows.ModuleWindow

      `isRNA, lastUpdate, log, mainCalcThread, progressIndicator, protectedExamplesDir, self, startButton`

    - ### Fields inherited from class ur_rna.RNAstructureUI.windows.InternalWindow

      `backend, changeListener, frameListener, warnings`

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

      `closable, CONTENT_PANE_PROPERTY, desktopIcon, FRAME_ICON_PROPERTY, frameIcon, GLASS_PANE_PROPERTY, iconable, IS_CLOSED_PROPERTY, IS_ICON_PROPERTY, IS_MAXIMUM_PROPERTY, IS_SELECTED_PROPERTY, isClosed, isIcon, isMaximum, isSelected, LAYERED_PANE_PROPERTY, maximizable, MENU_BAR_PROPERTY, resizable, ROOT_PANE_PROPERTY, rootPane, rootPaneCheckingEnabled, title, TITLE_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 javax.swing.WindowConstants

      `DISPOSE_ON_CLOSE, DO_NOTHING_ON_CLOSE, EXIT_ON_CLOSE, HIDE_ON_CLOSE`

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

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

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `OligoWalkWindow()` Constructor.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `private void` | `buildResultsWindow(java.lang.String file, int target, int start, int stop)` Build the results window for this OligoWalk calculation.
    `protected MergeMenu[]` | `createCustomMenus()` Override to create one or more custom menus that should be added to the main frame whenever this internal frame is active.
    `private void` | `createInputPanel()` Create the panel which holds input controls.
    `private void` | `createResultsPanel()` Create the panel which holds results data.
    `protected void` | `makeInputControls()` Make any input controls necessary to get data from this window for a calculation.
    `protected void` | `processCommand(InternalWindow.CommandInfo ci)` Perform an action specific to this window.
    `protected boolean` | `runMainCalculation()` Run the module calculation in the back end.
    `private void` | `setOligoData(int index)` Set the data for a particular oligo.

    - ### Methods inherited from class ur_rna.RNAstructureUI.windows.ModuleWindow

      `calcWasCanceled, cancelMainCalculation, close, closeProgress, closeProgress, combineFileNames, displayCalcError, drawStructures, getInputControl, getInputControl, getOutputFile, getOutputFile, makeStartButton, placeComponent, promptDraw, promptDraw, runOnUiThread, setAnchorCenter, setAnchorNorth, setFillCenter, setFillHorizontal, setGrid, setInsets, setPad, showDrawProgress, showDrawProgress, showProgress, showProgress, showProgress, showProgress, updateCalcProgress, verifyBackendResult`

    - ### Methods inherited from class ur_rna.RNAstructureUI.windows.InternalWindow

      `actionPerformed, frameActivated, frameClosed, frameClosing, getCustomMenus, invokeCommand, invokeCommand, invokeCommand, isActiveFrame, notifyUpdated, onFocusGained, propertyChanged, setCaption, setCustomMenus, showWindow`

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

      `addImpl, addInternalFrameListener, createRootPane, dispose, doDefaultCloseAction, fireInternalFrameEvent, getAccessibleContext, getContentPane, getDefaultCloseOperation, getDesktopIcon, getDesktopPane, getFocusCycleRootAncestor, getFocusOwner, getFrameIcon, getGlassPane, getInternalFrameListeners, getJMenuBar, getLastCursor, getLayer, getLayeredPane, getMenuBar, getMostRecentFocusOwner, getNormalBounds, getRootPane, getTitle, getUI, getUIClassID, getWarningString, hide, isClosable, isClosed, isFocusCycleRoot, isIcon, isIconifiable, isMaximizable, isMaximum, isResizable, isRootPaneCheckingEnabled, isSelected, moveToBack, moveToFront, pack, paintComponent, paramString, remove, removeInternalFrameListener, reshape, restoreSubcomponentFocus, setClosable, setClosed, setContentPane, setCursor, setDefaultCloseOperation, setDesktopIcon, setFocusCycleRoot, setFrameIcon, setGlassPane, setIcon, setIconifiable, setJMenuBar, setLayer, setLayer, setLayeredPane, setLayout, setMaximizable, setMaximum, setMenuBar, setNormalBounds, setResizable, setRootPane, setRootPaneCheckingEnabled, setSelected, setTitle, setUI, show, toBack, toFront, updateUI`

    - ### 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, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, 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, add, add, addContainerListener, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, removeAll, removeContainerListener, setComponentZOrder, 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, 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, imageUpdate, 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, setComponentOrientation, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle`

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

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

- - ### Field Detail

    - #### isInputWindow

          private boolean isInputWindow

      A boolean that tells whether this window is an input window or not.

    - #### panelInput

          private javax.swing.JPanel panelInput

    - #### panelResults

          private javax.swing.JPanel panelResults

      The box that holds the results.

    - #### serialVersionUID

          private static final long serialVersionUID

      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### OligoWalkWindow

          public OligoWalkWindow()

      Constructor.
      Note that since this module is unique to RNA, the nucleic acid type is hard-coded as RNA.

  - ### Method Detail

    - #### buildResultsWindow

          private void buildResultsWindow(java.lang.String file,
                                          int target,
                                          int start,
                                          int stop)

      Build the results window for this OligoWalk calculation.
      Parameters:
        `file` - The report file written for this calculation.
        `target` - The length of the entire target.
        `start` - The start index where hybridization can occur.
        `stop` - The stop index where hybridization can occur.

    - #### createCustomMenus

          protected MergeMenu[] createCustomMenus()

      Description copied from class: `InternalWindow`
      Override to create one or more custom menus that should be added to the main frame whenever this internal frame is active.
      Overrides:
        `createCustomMenus` in class `InternalWindow`
      Returns:
        an array of MergeMenu menus, or null if this window does not require any custom menus.

    - #### createInputPanel

          private void createInputPanel()

      Create the panel which holds input controls.

    - #### createResultsPanel

          private void createResultsPanel()

      Create the panel which holds results data.
      The panel created by this method only builds the general layout of the results window; it doesn't include real results.

    - #### makeInputControls

          protected void makeInputControls()

      Make any input controls necessary to get data from this window for a calculation.
      Note that this version of the function does NOT use the placeComponent method, because it builds on a panel rather than the content pane.
      Unlike other derived classes of ModuleWindow, it holds two panels, an input panel and a results panel, each of which are visible when needed.
      Specified by:
        `makeInputControls` in class `ModuleWindow`

    - #### processCommand

          protected void processCommand(InternalWindow.CommandInfo ci)

      Description copied from class: `ModuleWindow`
      Perform an action specific to this window.
      Overrides:
        `processCommand` in class `ModuleWindow`
      Parameters:
        `ci` - Information about the command.

    - #### runMainCalculation

          protected boolean runMainCalculation()

      Description copied from class: `ModuleWindow`
      Run the module calculation in the back end.
      Data must be pulled from the module window before the back end calculation is run, so this data capture should be done in this method.
      Specified by:
        `runMainCalculation` in class `ModuleWindow`

    - #### setOligoData

          private void setOligoData(int index)

      Set the data for a particular oligo.
      Parameters:
        `index` - The index of the oligo to set.