Package ghidra.app.util.viewer.field
Class IndentField
- java.lang.Object
-
- ghidra.app.util.viewer.field.IndentField
-
- All Implemented Interfaces:
Field,ListingField
public class IndentField extends java.lang.Object implements ListingField
Field responsible for drawing +/- symbols when over an aggregate datatype that can be opened or closed. Also adds extra spacing for each level of the sub-datatypes.
-
-
Constructor Summary
Constructors Constructor Description IndentField(FieldFactory factory, ProxyObj proxy, int indentLevel, java.awt.FontMetrics metrics, int x, int width, boolean isLast)Constructor
-
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 field.java.lang.ObjectgetClickedObject(FieldLocation fieldLocation)Returns the object that was clicked on a Field for the given FieldLocation.intgetCol(int row, int x)Returns the cursor column position for the given x coordinate on the given row.java.awt.RectanglegetCursorBounds(int row, int col)Returns a bounding rectangle for the cursor at the given position.FieldFactorygetFieldFactory()Returns the FieldFactory that generated this field.FieldFormatModelgetFieldModel()Returns the FieldModel that contains the FieldFactory that generated this field.intgetHeight()Returns the height of this field when populated with the given data.intgetHeightAbove()Returns the heightAbove the imaginary alignment line used to align fields on the same row.intgetHeightBelow()Returns the heightBelow the imaginary alignment line used to align fields on the same row.intgetNumCols(int row)Returns the number of columns in the given row.intgetNumRows()Returns the number of rows in this fieldintgetPreferredWidth()The minimum required width to paint the contents of this fieldProxyObjgetProxy()Returns the object associated with this field instance.intgetRow(int y)Returns the row containing the given y coordinate.intgetScrollableUnitIncrement(int topOfScreen, int direction, int max)Returns the amount to scroll to the next or previous lineintgetStartX()Returns the horizontal position of this field.intgetStartY()Returns the vertical position of this field.java.lang.StringgetText()Returns a string containing all the text in the field.java.lang.StringgetTextWithLineSeparators()Returns a string containing all the text in the field with extra linefeedsintgetWidth()Returns the current width of this field.intgetX(int row, int col)Returns the x coordinate for the given cursor position.intgetY(int row)Returns the y coordinate for the given row.booleanisPrimary()Returns true if this field is "primary" (the most important) field; used to determine the "primary" line in the layout.booleanisValid(int row, int col)Returns true if the given row and column represent a valid location for this field with the given data;voidpaint(javax.swing.JComponent c, java.awt.Graphics g, PaintContext context, FieldBackgroundColorManager map, RowColLocation cursorLoc, int rowHeight)Paints this field.voidrowHeightChanged(int newHeightAbove, int newHeightBelow)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 column.voidsetStartY(int startY)Sets the starting vertical position of this field.voidsetYPos(int yPos, int heightAbove, int heightBelow)Sets the overall y position for this field.RowColLocationtextOffsetToScreenLocation(int textOffset)Returns the row, column position for an offset into the string returned by getText().
-
-
-
Constructor Detail
-
IndentField
public IndentField(FieldFactory factory, ProxyObj proxy, int indentLevel, java.awt.FontMetrics metrics, int x, int width, boolean isLast)
Constructor- Parameters:
factory- the factory that generated this field.proxy- the object associated with this field instance.indentLevel- the level of the datatype object.metrics- the FontMetrics to used to render the field.x- the x position of the field.width- the width of the field.isLast- true if the object is the last subcomponent at its level.
-
-
Method Detail
-
getFieldFactory
public FieldFactory getFieldFactory()
Returns the FieldFactory that generated this field.- Specified by:
getFieldFactoryin interfaceListingField
-
getFieldModel
public FieldFormatModel getFieldModel()
Returns the FieldModel that contains the FieldFactory that generated this field.- Specified by:
getFieldModelin interfaceListingField
-
getProxy
public ProxyObj getProxy()
Returns the object associated with this field instance.- Specified by:
getProxyin interfaceListingField
-
getHeightAbove
public int getHeightAbove()
Returns the heightAbove the imaginary alignment line used to align fields on the same row.- Specified by:
getHeightAbovein interfaceField- Specified by:
getHeightAbovein interfaceListingField
-
getHeightBelow
public int getHeightBelow()
Returns the heightBelow the imaginary alignment line used to align fields on the same row.- Specified by:
getHeightBelowin interfaceField- Specified by:
getHeightBelowin interfaceListingField
-
setYPos
public void setYPos(int yPos, int heightAbove, int heightBelow)Sets the overall y position for this field.- Parameters:
yPos- the y coordinated of the layout row that it is in.heightAbove- the heightAbove the alignment line for the entire layout row.heightBelow- the heighBelow the alignment line for the entire layout col.
-
getWidth
public int getWidth()
Returns 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
-
getHeight
public int getHeight()
Returns the height of this field when populated with the given data.
-
getStartX
public int getStartX()
Returns the horizontal position of this field.
-
getStartY
public int getStartY()
Returns the vertical position of this field.
-
setStartY
public void setStartY(int startY)
Sets the starting vertical position of this field.- Parameters:
startY- the starting vertical position.
-
paint
public void paint(javax.swing.JComponent c, java.awt.Graphics g, PaintContext context, FieldBackgroundColorManager map, RowColLocation cursorLoc, int rowHeight)Description copied from interface:FieldPaints this field.- Specified by:
paintin interfaceFieldg- the graphics context.context- common paint parametersmap- 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- See Also:
docking.widgets.fieldpanel.field.Field#paint(java.awt.Graphics, docking.widgets.fieldpanel.internal.PaintContext, boolean, docking.widgets.fieldpanel.support.RowColLocation)
-
contains
public boolean contains(int x, int y)Description copied from interface:FieldReturns true if the given point is in this field.- Specified by:
containsin interfaceField- Parameters:
x- the horizontal coordinate of the point.y- the relatve y position in this layout- See Also:
Field.contains(int, int)
-
getNumRows
public int getNumRows()
Description copied from interface:FieldReturns the number of rows in this field- Specified by:
getNumRowsin interfaceField- See Also:
Field.getNumRows()
-
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.- See Also:
Field.getNumCols(int)
-
getX
public int getX(int row, int col)Description copied from interface:FieldReturns the x coordinate for the given cursor position.- Specified by:
getXin interfaceField- Parameters:
row- the text row of interest.col- the character column.- See Also:
Field.getX(int, int)
-
getY
public int getY(int row)
Description copied from interface:FieldReturns the y coordinate for the given row.- Specified by:
getYin interfaceField- Parameters:
row- the text row of interest.- See Also:
Field.getY(int)
-
getRow
public int getRow(int y)
Description copied from interface:FieldReturns the row containing the given y coordinate.- Specified by:
getRowin interfaceField- Parameters:
y- vertical pixel coordinate relative to the top of the screen.- See Also:
Field.getRow(int)
-
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.- Specified by:
getColin interfaceField- Parameters:
row- the text row to find the column on.x- the horizontal pixel coordinate for which to find the character position.- See Also:
Field.getCol(int, int)
-
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;- Specified by:
isValidin interfaceField- Parameters:
row- the text row.col- the character position.- See Also:
Field.isValid(int, int)
-
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 row.col- the character postion.- See Also:
Field.getCursorBounds(int, int)
-
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 pos 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)- See Also:
Field.getScrollableUnitIncrement(int, int, int)
-
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.- Specified by:
isPrimaryin interfaceField- See Also:
Field.isPrimary()
-
rowHeightChanged
public void rowHeightChanged(int newHeightAbove, int newHeightBelow)Description copied from interface:Fieldnotifies field that the rowHeight changed- Specified by:
rowHeightChangedin interfaceField- Parameters:
newHeightAbove- the height above the baselinenewHeightBelow- the height below the baseline.- See Also:
Field.rowHeightChanged(int, int)
-
getText
public java.lang.String getText()
Description copied from interface:FieldReturns a string containing all the text in the field.- Specified by:
getTextin interfaceField- See Also:
Field.getText()
-
getTextWithLineSeparators
public java.lang.String getTextWithLineSeparators()
Description copied from interface:FieldReturns a string containing all the text in the field with extra linefeeds- Specified by:
getTextWithLineSeparatorsin interfaceField- Returns:
-
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.
- See Also:
Field.textOffsetToScreenLocation(int)
-
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 row.col- the column.- See Also:
Field.screenLocationToTextOffset(int, int)
-
getClickedObject
public java.lang.Object getClickedObject(FieldLocation fieldLocation)
Description copied from interface:ListingFieldReturns the object that was clicked on a Field for the given FieldLocation. This may be the field itself or a lower-level entity, such as a FieldElement.- Specified by:
getClickedObjectin interfaceListingField- Parameters:
fieldLocation- The location that was clicked.- Returns:
- the object that was clicked
- See Also:
ListingField.getClickedObject(FieldLocation)
-
-