Package docking.widgets.fieldpanel.field

# Class ClippingTextField

java.lang.Object
docking.widgets.fieldpanel.field.ClippingTextField

All Implemented Interfaces:
  `Field`, `TextField`

public class ClippingTextField extends Object implements TextField
Field for showing multiple strings, each with its own attributes in a field, on a single line, clipping as needed to fit within the field's width. Has the extra methods for mapping column positions to strings and positions in those strings.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected int`
  `startX`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ClippingTextField(int startX, int width, FieldElement textElement, int numDataRows, FieldHighlightFactory hlFactory)`
  Constructs a new ClippingTextField that allows the cursor beyond the end of the line.
  `ClippingTextField(int startX, int width, FieldElement textElement, FieldHighlightFactory hlFactory)`
  Constructs a new ClippingTextField that allows the cursor beyond the end of the line.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `contains(int x, int y)`
  Returns true if the given point is in this field
  `RowColLocation`
  `dataToScreenLocation(int dataRow, int dataColumn)`
  Translates a data row and column into a screen row and column.
  `Object`
  `getClickedObject(FieldLocation fieldLocation)`
  `int`
  `getCol(int row, int x)`
  Returns the cursor column position for the given x coordinate on the given row
  `Rectangle`
  `getCursorBounds(int row, int col)`
  Returns a bounding rectangle for the cursor at the given position
  `FieldElement`
  `getFieldElement(int screenRow, int screenColumn)`
  Returns the FieldElement at the given screen location.
  `int`
  `getHeight()`
  Returns the height of this field when populated with the given data
  `int`
  `getHeightAbove()`
  Returns the height above the baseLine
  `int`
  `getHeightBelow()`
  Returns the height below the baseLine
  `int`
  `getNumCols(int row)`
  Returns the number of columns in the given row
  `int`
  `getNumDataRows()`
  Returns the number of data model rows represented by this field.
  `int`
  `getNumRows()`
  Returns the number of rows in this field
  `int`
  `getPreferredWidth()`
  The minimum required width to paint the contents of this field
  `int`
  `getRow(int y)`
  Returns the row containing the given y coordinate
  `int`
  `getScrollableUnitIncrement(int topOfScreen, int direction, int max)`
  Returns the amount to scroll to the next or previous line
  `int`
  `getStartX()`
  Returns the horizontal position of this field
  `String`
  `getText()`
  Returns a string containing all the text in the field
  `String`
  `getTextWithLineSeparators()`
  Returns a string containing all the text in the field with extra newlines
  `int`
  `getWidth()`
  Returns the current width of this field
  `int`
  `getX(int row, int col)`
  Returns the x coordinate for the given cursor position
  `int`
  `getY(int row)`
  Returns the y coordinate for the given row
  `boolean`
  `isClipped()`
  Returns true if the text is clipped (truncated)
  `boolean`
  `isPrimary()`
  Returns true if this field is "primary" (the most important) field; used to determine the "primary" line in the layout
  `boolean`
  `isValid(int row, int col)`
  Returns true if the given row and column represent a valid location for this field with the given data
  `void`
  `paint(JComponent c, Graphics g, PaintContext context, Rectangle clip, FieldBackgroundColorManager colorManager, RowColLocation cursorLoc, int rowHeight)`
  Paints this field
  `protected void`
  `paintCursor(Graphics g, Color cursorColor, RowColLocation cursorLoc)`
  `protected void`
  `paintHighlights(Graphics g, Highlight[] highlights)`
  `protected void`
  `paintSelection(Graphics g, FieldBackgroundColorManager colorManager, int row, int rowHeight)`
  `void`
  `rowHeightChanged(int heightAbove, int heightBelow)`
  notifies field that the rowHeight changed
  `int`
  `screenLocationToTextOffset(int row, int col)`
  Returns the text offset in the overall field text string for the given row and column
  `RowColLocation`
  `screenToDataLocation(int screenRow, int screenColumn)`
  Converts a single column value into a MultiStringLocation which specifies a string index and a column position within that string.
  `void`
  `setPrimary(boolean b)`
  Sets this field to be primary such that its row is primary
  `RowColLocation`
  `textOffsetToScreenLocation(int textOffset)`
  Returns the row, column position for an offset into the string returned by getText()
  `String`
  `toString()`

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

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

- ## Field Details

  - ### startX

    protected int startX

- ## Constructor Details

  - ### ClippingTextField

    public ClippingTextField(int startX, int width, FieldElement textElement, FieldHighlightFactory hlFactory)
    Constructs a new ClippingTextField that allows the cursor beyond the end of the line.
    Parameters:
      `startX` - The x position of the field
      `width` - The width of the field
      `textElement` - The AttributedStrings to display in the field.
      `hlFactory` - The HighlightFactory object used to paint highlights.

  - ### ClippingTextField

    public ClippingTextField(int startX, int width, FieldElement textElement, int numDataRows, FieldHighlightFactory hlFactory)
    Constructs a new ClippingTextField that allows the cursor beyond the end of the line.

    This constructor allows clients to specify the number of data rows that have been converted into a single screen row.

    Parameters:
      `startX` - The x position of the field
      `width` - The width of the field
      `textElement` - The AttributedStrings to display in the field.
      `numDataRows` - the number of data rows represented by this single screen row field
      `hlFactory` - The HighlightFactory object used to paint highlights.

- ## Method Details

  - ### contains

    public boolean contains(int x, int y)
    Description copied from interface: `Field`
    Returns true if the given point is in this field
    Specified by:
      `contains` in interface `Field`
    Parameters:
      `x` - the horizontal coordinate of the point
      `y` - the relative y position in this layout
    Returns:
      true if the given point is in this field

  - ### getCol

    public int getCol(int row, int x)
    Description copied from interface: `Field`
    Returns the cursor column position for the given x coordinate on the given row
    Specified by:
      `getCol` in interface `Field`
    Parameters:
      `row` - the text row to find the column on
      `x` - the horizontal pixel coordinate for which to find the character position
    Returns:
      the column

  - ### getCursorBounds

    public Rectangle getCursorBounds(int row, int col)
    Description copied from interface: `Field`
    Returns a bounding rectangle for the cursor at the given position
    Specified by:
      `getCursorBounds` in interface `Field`
    Parameters:
      `row` - the text row
      `col` - the character position
    Returns:
      the rectangle

  - ### getHeight

    public int getHeight()
    Description copied from interface: `Field`
    Returns the height of this field when populated with the given data
    Specified by:
      `getHeight` in interface `Field`
    Returns:
      the height

  - ### getNumCols

    public int getNumCols(int row)
    Description copied from interface: `Field`
    Returns the number of columns in the given row
    Specified by:
      `getNumCols` in interface `Field`
    Parameters:
      `row` - the row from which to get the number of columns; this is the screen row
    Returns:
      the number of columns

  - ### getNumDataRows

    public int getNumDataRows()
    Description copied from interface: `Field`
    Returns the number of data model rows represented by this field. Some fields may change the row count by wrapping or truncating. The value returned here will be the original data row count before any transformations were applied.
    Specified by:
      `getNumDataRows` in interface `Field`
    Returns:
      the number of data rows

  - ### getNumRows

    public int getNumRows()
    Description copied from interface: `Field`
    Returns the number of rows in this field
    Specified by:
      `getNumRows` in interface `Field`
    Returns:
      the number of rows in this field

  - ### getRow

    public int getRow(int y)
    Description copied from interface: `Field`
    Returns the row containing the given y coordinate
    Specified by:
      `getRow` in interface `Field`
    Parameters:
      `y` - vertical pixel coordinate relative to the top of the screen
    Returns:
      the row

  - ### getScrollableUnitIncrement

    public int getScrollableUnitIncrement(int topOfScreen, int direction, int max)
    Description copied from interface: `Field`
    Returns the amount to scroll to the next or previous line
    Specified by:
      `getScrollableUnitIncrement` in interface `Field`
    Parameters:
      `topOfScreen` - the current y position of the top of the screen
      `direction` - the direction of the scroll (1 down, -1 up)
      `max` - the maximum amount to scroll for the entire row - will be positive for down, and negative for up)
    Returns:
      the scroll amount

  - ### getStartX

    public int getStartX()
    Description copied from interface: `Field`
    Returns the horizontal position of this field
    Specified by:
      `getStartX` in interface `Field`
    Returns:
      the position

  - ### getWidth

    public int getWidth()
    Description copied from interface: `Field`
    Returns the current width of this field
    Specified by:
      `getWidth` in interface `Field`
    Returns:
      the current width of this field

  - ### getPreferredWidth

    public int getPreferredWidth()
    Description copied from interface: `Field`
    The minimum required width to paint the contents of this field
    Specified by:
      `getPreferredWidth` in interface `Field`
    Returns:
      the minimum required width to paint the contents of this field

  - ### getX

    public int getX(int row, int col)
    Description copied from interface: `Field`
    Returns the x coordinate for the given cursor position
    Specified by:
      `getX` in interface `Field`
    Parameters:
      `row` - the text row of interest
      `col` - the character column
    Returns:
      the x value

  - ### getY

    public int getY(int row)
    Description copied from interface: `Field`
    Returns the y coordinate for the given row
    Specified by:
      `getY` in interface `Field`
    Parameters:
      `row` - the text row of interest
    Returns:
      the y value

  - ### isPrimary

    public boolean isPrimary()
    Description copied from interface: `Field`
    Returns true if this field is "primary" (the most important) field; used to determine the "primary" line in the layout
    Specified by:
      `isPrimary` in interface `Field`
    Returns:
      true if this field is "primary"

  - ### setPrimary

    public void setPrimary(boolean b)
    Description copied from interface: `TextField`
    Sets this field to be primary such that its row is primary
    Specified by:
      `setPrimary` in interface `TextField`
    Parameters:
      `b` - this field to be primary such that its row is primary

  - ### isValid

    public boolean isValid(int row, int col)
    Description copied from interface: `Field`
    Returns true if the given row and column represent a valid location for this field with the given data
    Specified by:
      `isValid` in interface `Field`
    Parameters:
      `row` - the text row
      `col` - the character position
    Returns:
      true if valid

  - ### paint

    public void paint(JComponent c, Graphics g, PaintContext context, Rectangle clip, FieldBackgroundColorManager colorManager, RowColLocation cursorLoc, int rowHeight)
    Description copied from interface: `Field`
    Paints this field
    Specified by:
      `paint` in interface `Field`
    Parameters:
      `c` - the component to paint onto
      `g` - the graphics context
      `context` - common paint parameters
      `clip` - the clipping region to paint into
      `colorManager` - contains background color information for the field
      `cursorLoc` - the row,column cursor location within the field or null if the field does not contain the cursor
      `rowHeight` - the number of pixels in each row of text in the field

  - ### paintSelection

    protected void paintSelection(Graphics g, FieldBackgroundColorManager colorManager, int row, int rowHeight)

  - ### paintHighlights

    protected void paintHighlights(Graphics g, Highlight[] highlights)

  - ### paintCursor

    protected void paintCursor(Graphics g, Color cursorColor, RowColLocation cursorLoc)

  - ### screenToDataLocation

    public RowColLocation screenToDataLocation(int screenRow, int screenColumn)
    Converts a single column value into a MultiStringLocation which specifies a string index and a column position within that string.
    Specified by:
      `screenToDataLocation` in interface `TextField`
    Parameters:
      `screenColumn` - the overall column position in the total String.
      `screenRow` - the row in the displayed field text.
    Returns:
      MultiStringLocation the MultiStringLocation corresponding to the given column.

  - ### dataToScreenLocation

    public RowColLocation dataToScreenLocation(int dataRow, int dataColumn)
    Description copied from interface: `TextField`
    Translates a data row and column into a screen row and column.
    Specified by:
      `dataToScreenLocation` in interface `TextField`
    Parameters:
      `dataRow` - row as defined by the factory
      `dataColumn` - the character offset into the dataRow
    Returns:
      row and column in the screen coordinate system; a `DefaultRowColLocation` if this field does not contain the given column

  - ### isClipped

    public boolean isClipped()
    Returns true if the text is clipped (truncated)
    Specified by:
      `isClipped` in interface `TextField`
    Returns:
      true if the field is not displaying all the text information

  - ### getHeightAbove

    public int getHeightAbove()
    Description copied from interface: `Field`
    Returns the height above the baseLine
    Specified by:
      `getHeightAbove` in interface `Field`
    Returns:
      the height above

  - ### getHeightBelow

    public int getHeightBelow()
    Description copied from interface: `Field`
    Returns the height below the baseLine
    Specified by:
      `getHeightBelow` in interface `Field`
    Returns:
      the height below

  - ### rowHeightChanged

    public void rowHeightChanged(int heightAbove, int heightBelow)
    Description copied from interface: `Field`
    notifies field that the rowHeight changed
    Specified by:
      `rowHeightChanged` in interface `Field`
    Parameters:
      `heightAbove` - the height above the baseline
      `heightBelow` - the height below the baseline

  - ### getText

    public String getText()
    Description copied from interface: `Field`
    Returns a string containing all the text in the field
    Specified by:
      `getText` in interface `Field`
    Returns:
      the string

  - ### getTextWithLineSeparators

    public String getTextWithLineSeparators()
    Description copied from interface: `Field`
    Returns a string containing all the text in the field with extra newlines
    Specified by:
      `getTextWithLineSeparators` in interface `Field`
    Returns:
      a string containing all the text in the field with extra newlines

  - ### textOffsetToScreenLocation

    public RowColLocation textOffsetToScreenLocation(int textOffset)
    Description copied from interface: `Field`
    Returns the row, column position for an offset into the string returned by getText()
    Specified by:
      `textOffsetToScreenLocation` in interface `Field`
    Parameters:
      `textOffset` - the offset into the entire text string for this field
    Returns:
      a RowColLocation that contains the row,column location in the field for a position in the overall field text

  - ### screenLocationToTextOffset

    public int screenLocationToTextOffset(int row, int col)
    Description copied from interface: `Field`
    Returns the text offset in the overall field text string for the given row and column
    Specified by:
      `screenLocationToTextOffset` in interface `Field`
    Parameters:
      `row` - the row
      `col` - the column
    Returns:
      the offset

  - ### getClickedObject

    public Object getClickedObject(FieldLocation fieldLocation)

  - ### getFieldElement

    public FieldElement getFieldElement(int screenRow, int screenColumn)
    Description copied from interface: `TextField`
    Returns the FieldElement at the given screen location.
    Specified by:
      `getFieldElement` in interface `TextField`
    Parameters:
      `screenRow` - the row on the screen
      `screenColumn` - the column on the screen
    Returns:
      the FieldElement at the given screen location.

  - ### toString

    public String toString()
    Overrides:
      `toString` in class `Object`