Package ghidra.app.util.viewer.field
Class MemoryBlockStartFieldFactory
- java.lang.Object
-
- ghidra.app.util.viewer.field.FieldFactory
-
- ghidra.app.util.viewer.field.MemoryBlockStartFieldFactory
-
- All Implemented Interfaces:
ExtensionPoint
public class MemoryBlockStartFieldFactory extends FieldFactory
Generates a text label on eachCodeUnit
that marks the start of a memory block. The label will will appear as part of the PLATE group in the field map.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface ghidra.util.classfinder.ExtensionPoint
ExtensionPoint.Exclude, ExtensionPoint.Util
-
-
Field Summary
-
Fields inherited from class ghidra.app.util.viewer.field.FieldFactory
baseFont, color, colorOptionName, DEFAULT_FIELD_FONT, displayOptions, enabled, FONT_OPTION_NAME, hlProvider, model, name, startX, style, styleOptionName, underlineColor, width
-
-
Constructor Summary
Constructors Constructor Description MemoryBlockStartFieldFactory()
Constructor
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
acceptsType(int category, java.lang.Class<?> proxyObjectClass)
Used to specify which format models this field can belong to.protected java.util.List<AttributedString>
createBlockStartText(CodeUnit cu)
Creates a comment to be show at the beginning of each block that shows the following: - block name - block type - block start/end address (size) - block commentListingField
getField(ProxyObj<?> proxy, int varWidth)
Generates a Field based on the given information.FieldLocation
getFieldLocation(ListingField listingField, java.math.BigInteger index, int fieldNum, ProgramLocation programLoc)
Overridden to ensure that we only place block comments on the firstCodeUnit
of the block.ProgramLocation
getProgramLocation(int row, int col, ListingField bf)
Overridden to ensure that we return aMemoryBlockStartFieldLocation
instance.FieldFactory
newInstance(FieldFormatModel formatModel, HighlightProvider provider, ToolOptions displayOptions, ToolOptions fieldOptions)
Returns a new instance of this FieldFactory that can be used to generate fields instead of being used as a prototype.-
Methods inherited from class ghidra.app.util.viewer.field.FieldFactory
displayOptionsChanged, fieldOptionsChanged, getDefaultColor, getFieldModel, getFieldName, getFieldText, getMetrics, getMetrics, getStartX, getWidth, hasSamePath, initDisplayOptions, isEnabled, optionsChanged, servicesChanged, setEnabled, setStartX, setWidth
-
-
-
-
Method Detail
-
getField
public ListingField getField(ProxyObj<?> proxy, int varWidth)
Description copied from class:FieldFactory
Generates a Field based on the given information.- Specified by:
getField
in classFieldFactory
- Parameters:
proxy
- The object that the generated field will report some information about.varWidth
- the additional distance along the x axis to place the generated field.- Returns:
- the newly generated FactoryField that shows some property or information about the given object.
- See Also:
FieldFactory.getField(ProxyObj, int)
-
getProgramLocation
public ProgramLocation getProgramLocation(int row, int col, ListingField bf)
Overridden to ensure that we return aMemoryBlockStartFieldLocation
instance.- Specified by:
getProgramLocation
in classFieldFactory
- Parameters:
row
- the row within this fieldcol
- the col on the given row within this field.bf
- the ListingField containing the cursor.- See Also:
FieldFactory.getProgramLocation(int, int, ghidra.app.util.viewer.field.ListingField)
-
getFieldLocation
public FieldLocation getFieldLocation(ListingField listingField, java.math.BigInteger index, int fieldNum, ProgramLocation programLoc)
Overridden to ensure that we only place block comments on the firstCodeUnit
of the block.- Specified by:
getFieldLocation
in classFieldFactory
- Parameters:
listingField
- the ListingField at the current cursor.index
- the line index (corresponds to an address)fieldNum
- the index of field within the layout to try and get a FieldLocation.programLoc
- the ProgramLocation to be converted into a FieldLocation.- See Also:
FieldFactory.getFieldLocation(ghidra.app.util.viewer.field.ListingField, BigInteger, int, ghidra.program.util.ProgramLocation)
-
acceptsType
public boolean acceptsType(int category, java.lang.Class<?> proxyObjectClass)
Description copied from class:FieldFactory
Used to specify which format models this field can belong to.- Specified by:
acceptsType
in classFieldFactory
- Parameters:
category
- the category for this fieldproxyObjectClass
- the type of proxy object used by this field- Returns:
- true if this class accepts the given category.
- See Also:
FieldFactory.acceptsType(int, java.lang.Class)
-
newInstance
public FieldFactory newInstance(FieldFormatModel formatModel, HighlightProvider provider, ToolOptions displayOptions, ToolOptions fieldOptions)
Description copied from class:FieldFactory
Returns a new instance of this FieldFactory that can be used to generate fields instead of being used as a prototype.- Specified by:
newInstance
in classFieldFactory
- Parameters:
formatModel
- the model that the field belongs to.provider
- the HightLightProvider.displayOptions
- the Options for display properties.fieldOptions
- the Options for field specific properties.
-
createBlockStartText
protected java.util.List<AttributedString> createBlockStartText(CodeUnit cu)
Creates a comment to be show at the beginning of each block that shows the following: - block name - block type - block start/end address (size) - block comment- Parameters:
cu
-
-
-