Package docking.widgets

# Class ScrollableTextArea

java.lang.Object
java.awt.Component
java.awt.Container
javax.swing.JComponent
javax.swing.JScrollPane
docking.widgets.ScrollableTextArea

All Implemented Interfaces:
  `ImageObserver`, `MenuContainer`, `Serializable`, `Accessible`, `ScrollPaneConstants`

public class ScrollableTextArea extends JScrollPane
A JScrollPane wrapper for a text area that can be told to scroll to bottom

See Also:
  - Serialized Form

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class javax.swing.JScrollPane

  `JScrollPane.AccessibleJScrollPane, JScrollPane.ScrollBar`

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

  `JComponent.AccessibleJComponent`

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

  `Container.AccessibleAWTContainer`

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

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

- ## Field Summary

  ### Fields inherited from class javax.swing.JScrollPane

  `columnHeader, horizontalScrollBar, horizontalScrollBarPolicy, lowerLeft, lowerRight, rowHeader, upperLeft, upperRight, verticalScrollBar, verticalScrollBarPolicy, viewport`

  ### 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 java.awt.image.ImageObserver

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

  ### Fields inherited from interface javax.swing.ScrollPaneConstants

  `COLUMN_HEADER, HORIZONTAL_SCROLLBAR, HORIZONTAL_SCROLLBAR_ALWAYS, HORIZONTAL_SCROLLBAR_AS_NEEDED, HORIZONTAL_SCROLLBAR_NEVER, HORIZONTAL_SCROLLBAR_POLICY, LOWER_LEADING_CORNER, LOWER_LEFT_CORNER, LOWER_RIGHT_CORNER, LOWER_TRAILING_CORNER, ROW_HEADER, UPPER_LEADING_CORNER, UPPER_LEFT_CORNER, UPPER_RIGHT_CORNER, UPPER_TRAILING_CORNER, VERTICAL_SCROLLBAR, VERTICAL_SCROLLBAR_ALWAYS, VERTICAL_SCROLLBAR_AS_NEEDED, VERTICAL_SCROLLBAR_NEVER, VERTICAL_SCROLLBAR_POLICY, VIEWPORT`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ScrollableTextArea()`
  Constructs a scrollable JTextArea, where a default model is set, the initial string is null, and rows/columns are set to 0.
  `ScrollableTextArea(int rows, int columns)`
  Constructs a new empty TextArea with the specified number of rows and columns.
  `ScrollableTextArea(String text)`
  Constructs a scrollable JextArea with the specified text displayed.
  `ScrollableTextArea(String text, int rows, int columns)`
  Constructs a scrollable JTextArea with the specified text and number of rows and columns.
  `ScrollableTextArea(Document doc)`
  Constructs a scrollable JTextArea with the given document model, and defaults for all of the other arguments (null, 0, 0).
  `ScrollableTextArea(Document doc, String text, int rows, int columns)`
  Constructs a scrollable JTextArea with the specified number of rows and columns, and the given model.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `append(String text)`
  Appends the text to the text area maintained in this scroll pane
  `int`
  `getLineCount()`
  Returns the number of lines current set in the text area
  `Dimension`
  `getPreferredSize()`
  `int`
  `getTabSize()`
  Returns the tab size set in the text area
  `String`
  `getText()`
  Returns the text contained within the text area
  `int`
  `getTextAreaHeight()`
  Returns the total area height of the text area (row height * line count)
  `int`
  `getTextVisibleHeight()`
  Returns the visible height of the text area
  `void`
  `insert(String text, int position)`
  Inserts the string at the specified position
  `void`
  `replaceRange(String text, int start, int end)`
  replaces the range of text specified
  `void`
  `scrollToBottom()`
  forces the scroll pane to scroll to bottom of text area
  `void`
  `scrollToTop()`
  Scroll the pane to the top of the text area.
  `void`
  `setCaretPosition(int position)`
  `void`
  `setEditable(boolean editable)`
  Sets the ability to edit the text area content
  `void`
  `setTabSize(int tabSize)`
  Sets the number of characters to expand tabs to.
  `void`
  `setText(String text)`
  set the text in the text area

  ### Methods inherited from class javax.swing.JScrollPane

  `createHorizontalScrollBar, createVerticalScrollBar, createViewport, getAccessibleContext, getColumnHeader, getCorner, getHorizontalScrollBar, getHorizontalScrollBarPolicy, getRowHeader, getUI, getUIClassID, getVerticalScrollBar, getVerticalScrollBarPolicy, getViewport, getViewportBorder, getViewportBorderBounds, isValidateRoot, isWheelScrollingEnabled, paramString, setColumnHeader, setColumnHeaderView, setComponentOrientation, setCorner, setHorizontalScrollBar, setHorizontalScrollBarPolicy, setLayout, setRowHeader, setRowHeaderView, setUI, setVerticalScrollBar, setVerticalScrollBarPolicy, setViewport, setViewportBorder, setViewportView, setWheelScrollingEnabled, 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, 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, paint, paintBorder, paintChildren, paintComponent, 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, reshape, 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, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, 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, remove, remove, removeAll, 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, 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, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, 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`

- ## Constructor Details

  - ### ScrollableTextArea

    public ScrollableTextArea()
    Constructs a scrollable JTextArea, where a default model is set, the initial string is null, and rows/columns are set to 0.

  - ### ScrollableTextArea

    public ScrollableTextArea(String text)
    Constructs a scrollable JextArea with the specified text displayed. A default model is created and rows/columns are set to 0.
    Parameters:
      `text` - the initial text.

  - ### ScrollableTextArea

    public ScrollableTextArea(int rows, int columns)
    Constructs a new empty TextArea with the specified number of rows and columns. A default model is created, and the initial string is null.
    Parameters:
      `rows` - the number of visible rows.
      `columns` - the number of visible columns.

  - ### ScrollableTextArea

    public ScrollableTextArea(String text, int rows, int columns)
    Constructs a scrollable JTextArea with the specified text and number of rows and columns. A default model is created.
    Parameters:
      `text` - initial text.
      `rows` - the number of visible rows.
      `columns` - the number of visible columns.

  - ### ScrollableTextArea

    public ScrollableTextArea(Document doc)
    Constructs a scrollable JTextArea with the given document model, and defaults for all of the other arguments (null, 0, 0).
    Parameters:
      `doc` - - the model to use

  - ### ScrollableTextArea

    public ScrollableTextArea(Document doc, String text, int rows, int columns)
    Constructs a scrollable JTextArea with the specified number of rows and columns, and the given model. All of the constructors feed through this constructor.
    Parameters:
      `doc` - - the model to use
      `text` - initial text.
      `rows` - the number of visible rows.
      `columns` - the number of visible columns.

- ## Method Details

  - ### append

    public void append(String text)
    Appends the text to the text area maintained in this scroll pane
    Parameters:
      `text` - the text to append.

  - ### getLineCount

    public int getLineCount()
    Returns the number of lines current set in the text area
    Returns:
      the count

  - ### getTabSize

    public int getTabSize()
    Returns the tab size set in the text area
    Returns:
      the size

  - ### getTextAreaHeight

    public int getTextAreaHeight()
    Returns the total area height of the text area (row height * line count)
    Returns:
      the height

  - ### getTextVisibleHeight

    public int getTextVisibleHeight()
    Returns the visible height of the text area
    Returns:
      the height

  - ### insert

    public void insert(String text, int position)
    Inserts the string at the specified position
    Parameters:
      `text` - the text to insert.
      `position` - the character postition at which to insert the text.

  - ### replaceRange

    public void replaceRange(String text, int start, int end)
    replaces the range of text specified
    Parameters:
      `text` - the new text that will replace the old text.
      `start` - the starting character postition of the text to replace.
      `end` - the ending character position of the text to replace.

  - ### setCaretPosition

    public void setCaretPosition(int position)

  - ### getPreferredSize

    public Dimension getPreferredSize()
    Overrides:
      `getPreferredSize` in class `JComponent`

  - ### scrollToBottom

    public void scrollToBottom()
    forces the scroll pane to scroll to bottom of text area

  - ### scrollToTop

    public void scrollToTop()
    Scroll the pane to the top of the text area.

  - ### setTabSize

    public void setTabSize(int tabSize)
    Sets the number of characters to expand tabs to. This will be multiplied by the maximum advance for variable width fonts. A PropertyChange event ("tabSize") is fired when tab size changes.
    Parameters:
      `tabSize` - the new tab size.

  - ### setText

    public void setText(String text)
    set the text in the text area
    Parameters:
      `text` - the text to set.

  - ### getText

    public String getText()
    Returns the text contained within the text area
    Returns:
      the text

  - ### setEditable

    public void setEditable(boolean editable)
    Sets the ability to edit the text area content
    Parameters:
      `editable` - true to edit, false to not allow edit.