ur_rna.RNAstructureUI.windows

## Class SequenceDisplayWindow

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

- 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 SequenceDisplayWindow
      extends InternalWindow

  A class responsible for displaying a window that allows a user to examine raw sequence data.
  See Also:
    Serialized Form

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `private class` | `SequenceDisplayWindow.EditMenu` An inner class that creates a sequence editing menu.
    `private class` | `SequenceDisplayWindow.SoundPlayer`
    `private class` | `SequenceDisplayWindow.SpeakMenu` An inner class that creates a sequence speaking menu.

    - ### 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 SequenceDisplayWindow.SoundPlayer` | `_speakPlayer`
    `private java.util.HashMap<java.lang.Character,java.io.InputStream>` | `_speakStreams`
    `private static java.lang.String` | `allowedChars`
    `private javax.swing.JTextArea` | `commentBox`
    `private java.awt.Font` | `defaultFont`
    `private boolean` | `edited` A boolean, true if the sequence has been edited, false if not.
    `private static java.lang.String` | `ignoreChars`
    `private java.io.InputStream` | `invalidSoundClip`
    `private javax.swing.JTextPane` | `sequenceBox`
    `private javax.swing.text.StyledDocument` | `sequenceDoc`
    `private static long` | `serialVersionUID`
    `private javax.swing.JButton` | `speakButton` The button which can be clicked to start or stop speaking.
    `private boolean` | `speakingFullSequence`
    `(package private) SequenceDisplayWindow.SpeakMenu` | `speakMenu`
    `private int` | `speakPosition` The position at which speaking is occurring.
    `private javax.swing.Timer` | `speakTimer` The timer that aids in speaking nucleotides in rhythm.
    `private boolean` | `speakWhileTyping` A boolean, true if speaking while typing is active, false if not.
    `private static java.lang.String` | `standardBases`
    `private javax.swing.text.Style` | `styleIgnoredChar`
    `private javax.swing.text.Style` | `styleInvalidChar`
    `private javax.swing.text.Style` | `styleStandardBase`
    `private javax.swing.Timer` | `styleTimer` The timer that updates syntax highlighting
    `private javax.swing.text.Style` | `styleUnpairedBase`
    `private javax.swing.text.Style` | `styleUnspecifiedBase`
    `private javax.swing.JTextArea` | `titleBox` The array of text areas in this window.
    `private static java.lang.String` | `unpairedBases`
    `private static java.lang.String` | `unspecifiedBases`
    `private boolean` | `userAcceptedInvalidSequence`

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

      `backend, changeListener, frameListener, log, 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
    `SequenceDisplayWindow()` Default Constructor.
    `SequenceDisplayWindow(java.lang.String file)` File Constructor.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `private javax.swing.JPanel` | `buildButtonPanel()` Make the button panel at the bottom of the window.
    `private javax.swing.JPanel` | `buildTextBoxPanel(int height, java.lang.String text, javax.swing.text.JTextComponent textBox, java.lang.String name)` Build a text input region for this window.
    `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 javax.swing.text.StyledDocument` | `CreateStyledDocument()`
    `private java.lang.String` | `formatSequence(java.lang.String text)` Format the sequence in the text area.
    `private void` | `formatSequenceBox()`
    `private javax.swing.text.Style` | `getCharStyle(char c)`
    `private boolean` | `isIgnoredSeqChar(char c)`
    `private boolean` | `isInvalidSeqChar(char c)`
    `private boolean` | `isUnpairedSeqChar(char c)`
    `private boolean` | `isUnspecifiedSeqChar(char c)`
    `private java.io.InputStream` | `loadClip(java.lang.String name)`
    `private void` | `loadSpeakClips()`
    `(package private) void` | `markEdited(boolean edited)`
    `protected void` | `processCommand(InternalWindow.CommandInfo ci)` Perform an action specific to this window.
    `java.lang.String` | `saveSequence()` Save a sequence.
    `java.lang.String` | `saveSequence(java.lang.String file)` Save a sequence.
    `private void` | `setCharStyle(int offset, javax.swing.text.Style s)`
    `private void` | `setSequenceText(java.lang.String text)`
    `void` | `setSpeakWhileTyping(boolean isSpeaking)` Set whether or not the window should be speaking while typing.
    `void` | `showWindow()` View the window.
    `private void` | `speakFullSequence(boolean speak)`
    `private void` | `speakSeqChar(char base)` Play a sound clip, depending on the nucleotide.
    `private void` | `UpdateSyntaxStyles()`
    `private void` | `UpdateSyntaxStyles(int offset, int length)`
    `private boolean` | `verifySequence()`

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

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

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

    - #### _speakPlayer

          private SequenceDisplayWindow.SoundPlayer _speakPlayer

    - #### _speakStreams

          private java.util.HashMap<java.lang.Character,java.io.InputStream> _speakStreams

    - #### allowedChars

          private static final java.lang.String allowedChars

      See Also:
        Constant Field Values

    - #### commentBox

          private javax.swing.JTextArea commentBox

    - #### defaultFont

          private java.awt.Font defaultFont

    - #### edited

          private boolean edited

      A boolean, true if the sequence has been edited, false if not.

    - #### ignoreChars

          private static final java.lang.String ignoreChars

      See Also:
        Constant Field Values

    - #### invalidSoundClip

          private java.io.InputStream invalidSoundClip

    - #### sequenceBox

          private javax.swing.JTextPane sequenceBox

    - #### sequenceDoc

          private javax.swing.text.StyledDocument sequenceDoc

    - #### serialVersionUID

          private static final long serialVersionUID

      See Also:
        Constant Field Values

    - #### speakButton

          private javax.swing.JButton speakButton

      The button which can be clicked to start or stop speaking.

    - #### speakingFullSequence

          private boolean speakingFullSequence

    - #### speakMenu

          SequenceDisplayWindow.SpeakMenu speakMenu

    - #### speakPosition

          private int speakPosition

      The position at which speaking is occurring.

    - #### speakTimer

          private javax.swing.Timer speakTimer

      The timer that aids in speaking nucleotides in rhythm.

    - #### speakWhileTyping

          private boolean speakWhileTyping

      A boolean, true if speaking while typing is active, false if not.

    - #### standardBases

          private static final java.lang.String standardBases

      See Also:
        Constant Field Values

    - #### styleIgnoredChar

          private javax.swing.text.Style styleIgnoredChar

    - #### styleInvalidChar

          private javax.swing.text.Style styleInvalidChar

    - #### styleStandardBase

          private javax.swing.text.Style styleStandardBase

    - #### styleTimer

          private javax.swing.Timer styleTimer

      The timer that updates syntax highlighting

    - #### styleUnpairedBase

          private javax.swing.text.Style styleUnpairedBase

    - #### styleUnspecifiedBase

          private javax.swing.text.Style styleUnspecifiedBase

    - #### titleBox

          private javax.swing.JTextArea titleBox

      The array of text areas in this window.

    - #### unpairedBases

          private static final java.lang.String unpairedBases

      See Also:
        Constant Field Values

    - #### unspecifiedBases

          private static final java.lang.String unspecifiedBases

      See Also:
        Constant Field Values

    - #### userAcceptedInvalidSequence

          private boolean userAcceptedInvalidSequence

  - ### Constructor Detail

    - #### SequenceDisplayWindow

          public SequenceDisplayWindow()

      Default Constructor. This constructor is used when a blank display window is opened.

    - #### SequenceDisplayWindow

          public SequenceDisplayWindow(java.lang.String file)

      File Constructor. This constructor is used when a sequence file is specified.
      Parameters:
        `file` - The sequence file to open.

  - ### Method Detail

    - #### buildButtonPanel

          private javax.swing.JPanel buildButtonPanel()

      Make the button panel at the bottom of the window.
      Returns:
        The button panel.

    - #### buildTextBoxPanel

          private javax.swing.JPanel buildTextBoxPanel(int height,
                                                       java.lang.String text,
                                                       javax.swing.text.JTextComponent textBox,
                                                       java.lang.String name)

      Build a text input region for this window. Each region is a panel consisting of a label and a text component.
      Parameters:
        `height` - The height of the input region.
        `text` - The label text.
      Returns:
        The input region panel.

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

    - #### CreateStyledDocument

          private javax.swing.text.StyledDocument CreateStyledDocument()

    - #### formatSequence

          private java.lang.String formatSequence(java.lang.String text)

      Format the sequence in the text area.

    - #### formatSequenceBox

          private void formatSequenceBox()

    - #### getCharStyle

          private javax.swing.text.Style getCharStyle(char c)

    - #### isIgnoredSeqChar

          private boolean isIgnoredSeqChar(char c)

    - #### isInvalidSeqChar

          private boolean isInvalidSeqChar(char c)

    - #### isUnpairedSeqChar

          private boolean isUnpairedSeqChar(char c)

    - #### isUnspecifiedSeqChar

          private boolean isUnspecifiedSeqChar(char c)

    - #### loadClip

          private java.io.InputStream loadClip(java.lang.String name)

    - #### loadSpeakClips

          private void loadSpeakClips()

    - #### markEdited

          void markEdited(boolean edited)

    - #### processCommand

          protected void processCommand(InternalWindow.CommandInfo ci)

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

    - #### saveSequence

          public java.lang.String saveSequence()

      Save a sequence.
      Returns:
        The file that was saved.

    - #### saveSequence

          public java.lang.String saveSequence(java.lang.String file)

      Save a sequence.
      Parameters:
        `file` - The file name to save the sequence with.
      Returns:
        The file that was saved.

    - #### setCharStyle

          private void setCharStyle(int offset,
                                    javax.swing.text.Style s)

    - #### setSequenceText

          private void setSequenceText(java.lang.String text)

    - #### setSpeakWhileTyping

          public void setSpeakWhileTyping(boolean isSpeaking)

      Set whether or not the window should be speaking while typing.
      Parameters:
        `isSpeaking` - True if speaking, false if not.

    - #### showWindow

          public void showWindow()

      View the window.
      Overrides:
        `showWindow` in class `InternalWindow`

    - #### speakFullSequence

          private void speakFullSequence(boolean speak)

    - #### speakSeqChar

          private void speakSeqChar(char base)

      Play a sound clip, depending on the nucleotide.
      Parameters:
        `base` - The nucleotide to play.

    - #### UpdateSyntaxStyles

          private void UpdateSyntaxStyles()

    - #### UpdateSyntaxStyles

          private void UpdateSyntaxStyles(int offset,
                                          int length)

    - #### verifySequence

          private boolean verifySequence()