@Override
	public ProgramLocation getProgramLocation(int row, int col, ListingField listingField) {
		if (!(listingField instanceof ListingTextField)) {
			return null;
		}
		Data data = (Data) listingField.getProxy().getObject();
		ListingTextField btf = (ListingTextField) listingField;
		RowColLocation loc = btf.screenToDataLocation(row, col);
		int arrayIndex = data.getComponentIndex() + loc.row();

		Data arrayElement = data.getParent().getComponent(arrayIndex);
		Program program = data.getProgram();
		return new ArrayElementFieldLocation(program, arrayElement.getMinAddress(),
			arrayElement.getComponentPath(), getDisplayValue(arrayElement, false), loc.row(),
			loc.col());
	}
Constructor
@param model the model that the field belongs to.
@param hlProvider the HightLightStringProvider.
@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/ArrayValuesFieldFactory.java