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 each `CodeUnit` that marks the start of a memory block. The label will appear as part of the PLATE group in the field map.

- ## Field Summary

  ### Fields inherited from class ghidra.app.util.viewer.field.FieldFactory

  `BASE_LISTING_FONT_ID, baseFont, colorOptionName, enabled, FONT_OPTION_NAME, hlProvider, model, name, startX, style, styleOptionName, width`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `MemoryBlockStartFieldFactory()`
  Constructor

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `acceptsType(int category, Class<?> proxyObjectClass)`
  Used to specify which format models this field can belong to.
  `protected List<AttributedString>`
  `createBlockStartText(CodeUnit cu)`
  `ListingField`
  `getField(ProxyObj<?> proxy, int varWidth)`
  Generates a Field based on the given information.
  `FieldLocation`
  `getFieldLocation(ListingField listingField, BigInteger index, int fieldNum, ProgramLocation programLoc)`
  Overridden to ensure that we only place block comments on the first `CodeUnit` of the block.
  `ProgramLocation`
  `getProgramLocation(int row, int col, ListingField bf)`
  Overridden to ensure that we return a `MemoryBlockStartFieldLocation` instance.
  `FieldFactory`
  `newInstance(FieldFormatModel formatModel, ListingHighlightProvider 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, getFieldModel, getFieldName, getFieldText, getMetrics, getMetrics, getStartX, getWidth, hasSamePath, initDisplayOptions, initFieldOptions, isEnabled, servicesChanged, setEnabled, setStartX, setWidth, simplifyTemplates, supportsLocation`

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

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

- ## Constructor Details

  - ### MemoryBlockStartFieldFactory

    public MemoryBlockStartFieldFactory()
    Constructor

- ## Method Details

  - ### 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 class `FieldFactory`
    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.

  - ### getProgramLocation

    public ProgramLocation getProgramLocation(int row, int col, ListingField bf)
    Overridden to ensure that we return a `MemoryBlockStartFieldLocation` instance.
    Specified by:
      `getProgramLocation` in class `FieldFactory`
    Parameters:
      `row` - the row within this field
      `col` - the col on the given row within this field.
      `bf` - the ListingField containing the cursor.
    Returns:
      the location.
    See Also:
      - `FieldFactory.getProgramLocation(int, int, ghidra.app.util.viewer.field.ListingField)`

  - ### getFieldLocation

    public FieldLocation getFieldLocation(ListingField listingField, BigInteger index, int fieldNum, ProgramLocation programLoc)
    Overridden to ensure that we only place block comments on the first `CodeUnit` of the block.
    Specified by:
      `getFieldLocation` in class `FieldFactory`
    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.
    Returns:
      the location.
    See Also:
      - `FieldFactory.getFieldLocation(ghidra.app.util.viewer.field.ListingField, BigInteger, int, ghidra.program.util.ProgramLocation)`

  - ### acceptsType

    public boolean acceptsType(int category, Class<?> proxyObjectClass)
    Description copied from class: `FieldFactory`
    Used to specify which format models this field can belong to.
    Specified by:
      `acceptsType` in class `FieldFactory`
    Parameters:
      `category` - the category for this field
      `proxyObjectClass` - 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, ListingHighlightProvider 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 class `FieldFactory`
    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.
    Returns:
      the factory

  - ### createBlockStartText

    protected List<AttributedString> createBlockStartText(CodeUnit cu)