@Override
	public ProgramLocation getProgramLocation(int fieldRow, int fieldColumn,
			ListingField listingField) {
		ProxyObj<?> proxy = listingField.getProxy();

		if (proxy instanceof FunctionProxy) {
			FunctionProxy functionProxy = (FunctionProxy) proxy;

			if (!(listingField instanceof ListingTextField)) {
				return null;
			}

			ListingTextField btf = (ListingTextField) listingField;
			FieldElement fe = btf.getFieldElement(fieldRow, fieldColumn);
			if (!(fe instanceof FunctionSignatureFieldElement)) {
				return null;
			}
			FunctionSignatureFieldElement fieldElement = (FunctionSignatureFieldElement) fe;
			int offset = fieldElement.getOffsetInFieldElement(fieldColumn);
			if (offset == -1) {
				return null;
			}
			RowColLocation rowCol = fieldElement.getDataLocationForCharacterIndex(offset);
			return fieldElement.getProgramLocation(functionProxy, listingField.getText(),
				rowCol.row(), rowCol.col());
		}

		return null;
	}
Constructor
@param model the model that the field belongs to.
@param hlProvider the HightLightProvider.
@param displayOptions the Options for display properties.
@param fieldOptions the Options for field specific properties.
Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/field/FunctionSignatureFieldFactory.java