Package docking.widgets.fieldpanel.field
Class ReverseClippingTextField
- java.lang.Object
-
- docking.widgets.fieldpanel.field.ReverseClippingTextField
-
public class ReverseClippingTextField extends java.lang.Object implements TextField
Field for showing multiple strings, each with its own attributes in a field, on a single line, clipping the beginning of the text as needed to fit within the field's width. Has the extra methods for mapping column positions to strings and positions in those strings.
-
-
Constructor Summary
Constructors Constructor Description ReverseClippingTextField(int startX, int width, FieldElement textElement, HighlightFactory hlFactory)Constructs a new ReverseClippingTextField that allows the cursor beyond the end of the line.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleancontains(int x, int y)Returns true if the given point is in this fieldRowColLocationdataToScreenLocation(int dataRow, int dataColumn)Translates a data row and column into a screen row and column.intgetCol(int row, int x)Returns the cursor column position for the given x coordinate on the given rowjava.awt.RectanglegetCursorBounds(int row, int col)Returns a bounding rectangle for the cursor at the given positionFieldElementgetFieldElement(int screenRow, int screenColumn)Returns the FieldElement at the given screen location.intgetHeight()Returns the height of this field when populated with the given dataintgetHeightAbove()Returns the height above the baseLineintgetHeightBelow()Returns the height below the baseLineintgetNumCols(int row)Returns the number of columns in the given rowintgetNumDataRows()Returns the number of data model rows represented by this field.intgetNumRows()Returns the number of rows in this fieldintgetPreferredWidth()The minimum required width to paint the contents of this fieldintgetRow(int y)Returns the row containing the given y coordinateintgetScrollableUnitIncrement(int topOfScreen, int direction, int max)Returns the amount to scroll to the next or previous lineintgetStartX()Returns the horizontal position of this fieldjava.lang.StringgetText()Returns a string containing all the text in the fieldjava.lang.StringgetTextWithLineSeparators()Returns a string containing all the text in the field with extra newlinesintgetWidth()Returns the current width of this fieldintgetX(int row, int col)Returns the x coordinate for the given cursor positionintgetY(int row)Returns the y coordinate for the given rowbooleanisClipped()Returns true if the text is clipped (truncated)booleanisPrimary()Returns true if this field is "primary" (the most important) field; used to determine the "primary" line in the layoutbooleanisValid(int row, int col)Returns true if the given row and column represent a valid location for this field with the given datavoidpaint(javax.swing.JComponent c, java.awt.Graphics g, PaintContext context, java.awt.Rectangle clip, FieldBackgroundColorManager colorManager, RowColLocation cursorLoc, int rowHeight)Paints this fieldprotected voidpaintCursor(java.awt.Graphics g, java.awt.Color cursorColor, RowColLocation cursorLoc)protected voidpaintHighlights(java.awt.Graphics g, Highlight[] highlights)protected voidpaintSelection(java.awt.Graphics g, FieldBackgroundColorManager colorManager, int rowHeight)voidrowHeightChanged(int heightAbove, int heightBelow)notifies field that the rowHeight changedintscreenLocationToTextOffset(int row, int col)Returns the text offset in the overall field text string for the given row and columnRowColLocationscreenToDataLocation(int screenRow, int screenColumn)Converts a single column value into a MultiStringLocation which specifies a string index and a column position within that string.voidsetPrimary(boolean b)Sets this field to be primary such that its row is primaryRowColLocationtextOffsetToScreenLocation(int textOffset)Returns the row, column position for an offset into the string returned by getText()
-
-
-
Constructor Detail
-
ReverseClippingTextField
public ReverseClippingTextField(int startX, int width, FieldElement textElement, HighlightFactory hlFactory)Constructs a new ReverseClippingTextField that allows the cursor beyond the end of the line. This is just a pass through constructor that makes the call:this(startX, width, new AttributedString[] { textElement }, hlFactory, true);- Parameters:
startX- The x position of the fieldwidth- The width of the fieldtextElement- The AttributedStrings to display in the field.hlFactory- The HighlightFactory object used to paint highlights.
-
-
Method Detail
-
contains
public boolean contains(int x, int y)Description copied from interface:FieldReturns true if the given point is in this field
-
getCol
public int getCol(int row, int x)Description copied from interface:FieldReturns the cursor column position for the given x coordinate on the given row
-
getCursorBounds
public java.awt.Rectangle getCursorBounds(int row, int col)Description copied from interface:FieldReturns a bounding rectangle for the cursor at the given position- Specified by:
getCursorBoundsin interfaceField- Parameters:
row- the text rowcol- the character position- Returns:
- the rectangle
-
getHeight
public int getHeight()
Description copied from interface:FieldReturns the height of this field when populated with the given data
-
getNumCols
public int getNumCols(int row)
Description copied from interface:FieldReturns the number of columns in the given row- Specified by:
getNumColsin interfaceField- 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:FieldReturns 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:
getNumDataRowsin interfaceField- Returns:
- the number of data rows
-
getNumRows
public int getNumRows()
Description copied from interface:FieldReturns the number of rows in this field- Specified by:
getNumRowsin interfaceField- Returns:
- the number of rows in this field
-
getRow
public int getRow(int y)
Description copied from interface:FieldReturns the row containing the given y coordinate
-
getScrollableUnitIncrement
public int getScrollableUnitIncrement(int topOfScreen, int direction, int max)Description copied from interface:FieldReturns the amount to scroll to the next or previous line- Specified by:
getScrollableUnitIncrementin interfaceField- Parameters:
topOfScreen- the current y position of the top of the screendirection- 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:FieldReturns the horizontal position of this field
-
getWidth
public int getWidth()
Description copied from interface:FieldReturns the current width of this field
-
getPreferredWidth
public int getPreferredWidth()
Description copied from interface:FieldThe minimum required width to paint the contents of this field- Specified by:
getPreferredWidthin interfaceField- Returns:
- the minimum required width to paint the contents of this field
-
getX
public int getX(int row, int col)Description copied from interface:FieldReturns the x coordinate for the given cursor position
-
getY
public int getY(int row)
Description copied from interface:FieldReturns the y coordinate for the given row
-
isPrimary
public boolean isPrimary()
Description copied from interface:FieldReturns true if this field is "primary" (the most important) field; used to determine the "primary" line in the layout
-
setPrimary
public void setPrimary(boolean b)
Description copied from interface:TextFieldSets this field to be primary such that its row is primary- Specified by:
setPrimaryin interfaceTextField- 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:FieldReturns true if the given row and column represent a valid location for this field with the given data
-
paint
public void paint(javax.swing.JComponent c, java.awt.Graphics g, PaintContext context, java.awt.Rectangle clip, FieldBackgroundColorManager colorManager, RowColLocation cursorLoc, int rowHeight)Description copied from interface:FieldPaints this field- Specified by:
paintin interfaceField- Parameters:
c- the component to paint ontog- the graphics contextcontext- common paint parametersclip- the clipping region to paint intocolorManager- contains background color information for the fieldcursorLoc- the row,column cursor location within the field or null if the field does not contain the cursorrowHeight- the number of pixels in each row of text in the field
-
paintSelection
protected void paintSelection(java.awt.Graphics g, FieldBackgroundColorManager colorManager, int rowHeight)
-
paintHighlights
protected void paintHighlights(java.awt.Graphics g, Highlight[] highlights)
-
paintCursor
protected void paintCursor(java.awt.Graphics g, java.awt.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:
screenToDataLocationin interfaceTextField- 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:TextFieldTranslates a data row and column into a screen row and column.- Specified by:
dataToScreenLocationin interfaceTextField- Parameters:
dataRow- row as defined by the factorydataColumn- the character offset into the dataRow- Returns:
- row and column in the screen coordinate system; a
DefaultRowColLocationif this field does not contain the given column
-
isClipped
public boolean isClipped()
Returns true if the text is clipped (truncated)
-
getHeightAbove
public int getHeightAbove()
Description copied from interface:FieldReturns the height above the baseLine- Specified by:
getHeightAbovein interfaceField- Returns:
- the height above
-
getHeightBelow
public int getHeightBelow()
Description copied from interface:FieldReturns the height below the baseLine- Specified by:
getHeightBelowin interfaceField- Returns:
- the height below
-
rowHeightChanged
public void rowHeightChanged(int heightAbove, int heightBelow)Description copied from interface:Fieldnotifies field that the rowHeight changed- Specified by:
rowHeightChangedin interfaceField- Parameters:
heightAbove- the height above the baselineheightBelow- the height below the baseline
-
getText
public java.lang.String getText()
Description copied from interface:FieldReturns a string containing all the text in the field
-
getTextWithLineSeparators
public java.lang.String getTextWithLineSeparators()
Description copied from interface:FieldReturns a string containing all the text in the field with extra newlines- Specified by:
getTextWithLineSeparatorsin interfaceField- Returns:
- a string containing all the text in the field with extra newlines
-
textOffsetToScreenLocation
public RowColLocation textOffsetToScreenLocation(int textOffset)
Description copied from interface:FieldReturns the row, column position for an offset into the string returned by getText()- Specified by:
textOffsetToScreenLocationin interfaceField- 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:FieldReturns the text offset in the overall field text string for the given row and column- Specified by:
screenLocationToTextOffsetin interfaceField- Parameters:
row- the rowcol- the column- Returns:
- the offset
-
getFieldElement
public FieldElement getFieldElement(int screenRow, int screenColumn)
Description copied from interface:TextFieldReturns the FieldElement at the given screen location.- Specified by:
getFieldElementin interfaceTextField- Parameters:
screenRow- the row on the screenscreenColumn- the column on the screen- Returns:
- the FieldElement at the given screen location.
-
-