Package ghidra.app.util.viewer.field
Class XRefFieldFactory
java.lang.Object
ghidra.app.util.viewer.field.FieldFactory
ghidra.app.util.viewer.field.XRefFieldFactory
- All Implemented Interfaces:
ExtensionPoint
- Direct Known Subclasses:
VariableXRefFieldFactory,XRefHeaderFieldFactory
Cross-reference Field Factory
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Stringprotected booleanprotected booleanprotected booleanprotected booleanstatic final Stringprotected booleanprotected Stringprotected intprotected XRefFieldFactory.SORT_CHOICEprotected Comparator<Reference> protected booleanFields 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
ConstructorsModifierConstructorDescriptionXRefFieldFactory(FieldFormatModel model, ListingHighlightProvider hlProvider, Options displayOptions, ToolOptions fieldOptions) ConstructorprotectedXRefFieldFactory(String name) protectedXRefFieldFactory(String name, FieldFormatModel model, ListingHighlightProvider hlProvider, Options displayOptions, ToolOptions fieldOptions) Constructs a new XRefFieldFactory based on the provider and model. -
Method Summary
Modifier and TypeMethodDescriptionbooleanacceptsType(int category, Class<?> proxyObjectClass) Used to specify which format models this field can belong to.protected FieldLocationcreateFieldLocation(int xrefPos, int xrefIndex, ListingTextField field, BigInteger index, int fieldNum) protected AttributedStringcreateRefTypeAttributedString(Reference reference, AttributedString referenceString) voidfieldOptionsChanged(Options options, String optionName, Object oldValue, Object newValue) Notifications that the field options changed.protected StringgetBlockName(Program pgm, Address addr) Generates a Field based on the given information.getFieldLocation(ListingField bf, BigInteger index, int fieldNum, ProgramLocation loc) Return a FieldLocation that corresponds to the given index, fieldNum, and ProgramLocation IF and ONLY IF the given programLocation is the type generated by this class'sFieldFactory.getFieldLocation(ListingField, BigInteger, int, ProgramLocation).protected Stringprotected ProgramgetProgram(Object obj) getProgramLocation(int row, int col, ListingField listingField) Returns the Program location for the given object, row, col, and groupPathprotected AddressgetXRefLocation(Object obj) Get an address location for this object.newInstance(FieldFormatModel formatModel, ListingHighlightProvider provider, ToolOptions toolOptions, 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, getFieldModel, getFieldName, getFieldText, getMetrics, getMetrics, getStartX, getWidth, hasSamePath, initDisplayOptions, initFieldOptions, isEnabled, servicesChanged, setEnabled, setStartX, setWidth, simplifyTemplates, supportsLocation
-
Field Details
-
FIELD_NAME
- See Also:
-
sortChoice
-
delim
-
displayBlockName
protected boolean displayBlockName -
groupByFunction
protected boolean groupByFunction -
maxXRefs
protected int maxXRefs -
displayRefType
protected boolean displayRefType -
typeComparator
-
displayLocalNamespace
protected boolean displayLocalNamespace -
displayNonLocalNamespace
protected boolean displayNonLocalNamespace -
useLocalPrefixOverride
protected boolean useLocalPrefixOverride -
localPrefixText
-
-
Constructor Details
-
XRefFieldFactory
public XRefFieldFactory() -
XRefFieldFactory
-
XRefFieldFactory
public XRefFieldFactory(FieldFormatModel model, ListingHighlightProvider hlProvider, Options displayOptions, ToolOptions fieldOptions) Constructor- Parameters:
model- the model that the field belongs to.hlProvider- the HightLightProvider.displayOptions- the Options for display properties.fieldOptions- the Options for field specific properties.
-
XRefFieldFactory
protected XRefFieldFactory(String name, FieldFormatModel model, ListingHighlightProvider hlProvider, Options displayOptions, ToolOptions fieldOptions) Constructs a new XRefFieldFactory based on the provider and model.- Parameters:
name- the owner of this field factorymodel- the model that the field belongs to.hlProvider- the HightLightProvider.displayOptions- the Options for display properties.fieldOptions- the Options for field specific properties.
-
-
Method Details
-
fieldOptionsChanged
public void fieldOptionsChanged(Options options, String optionName, Object oldValue, Object newValue) Description copied from class:FieldFactoryNotifications that the field options changed.- Overrides:
fieldOptionsChangedin classFieldFactory- Parameters:
options- the Field Options object that changed.optionName- the name of the property that changed.oldValue- the old value of the property.newValue- the new value of the property.
-
getField
Description copied from class:FieldFactoryGenerates a Field based on the given information.- Specified by:
getFieldin 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.
-
createRefTypeAttributedString
protected AttributedString createRefTypeAttributedString(Reference reference, AttributedString referenceString) -
getPrefix
-
getFieldLocation
public FieldLocation getFieldLocation(ListingField bf, BigInteger index, int fieldNum, ProgramLocation loc) Description copied from class:FieldFactoryReturn a FieldLocation that corresponds to the given index, fieldNum, and ProgramLocation IF and ONLY IF the given programLocation is the type generated by this class'sFieldFactory.getFieldLocation(ListingField, BigInteger, int, ProgramLocation). Each FieldFactory should generate and process a unique ProgramLocation class.- Specified by:
getFieldLocationin classFieldFactory- Parameters:
bf- 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.loc- the ProgramLocation to be converted into a FieldLocation.- Returns:
- the location.
-
createFieldLocation
protected FieldLocation createFieldLocation(int xrefPos, int xrefIndex, ListingTextField field, BigInteger index, int fieldNum) -
getProgramLocation
Description copied from class:FieldFactoryReturns the Program location for the given object, row, col, and groupPath- Specified by:
getProgramLocationin classFieldFactory- Parameters:
row- the row within this fieldcol- the col on the given row within this field.listingField- the ListingField containing the cursor.- Returns:
- the location.
-
getBlockName
-
getXRefLocation
Get an address location for this object.- Parameters:
obj- object to get location from- Returns:
- the address
-
getProgram
-
acceptsType
Description copied from class:FieldFactoryUsed to specify which format models this field can belong to.- Specified by:
acceptsTypein 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.
-
newInstance
public FieldFactory newInstance(FieldFormatModel formatModel, ListingHighlightProvider provider, ToolOptions toolOptions, ToolOptions fieldOptions) Description copied from class:FieldFactoryReturns a new instance of this FieldFactory that can be used to generate fields instead of being used as a prototype.- Specified by:
newInstancein classFieldFactory- Parameters:
formatModel- the model that the field belongs to.provider- the HightLightProvider.toolOptions- the Options for display properties.fieldOptions- the Options for field specific properties.- Returns:
- the factory
-