@Override
	public int screenLocationToTextOffset(int row, int col) {

		if (row >= numRows) {
			return getText().length();
		}

		int extraSpace = rowSeparator.length();
		int len = 0;
		List<FieldRow> rows = getAllRows(row);
		int n = rows.size() - 1;
		for (int i = 0; i < n; i++) {
			FieldRow fieldRow = rows.get(i);
			len += fieldRow.field.getText().length() + extraSpace;
		}

		FieldRow lastRow = rows.get(n);
		int relativeRow = lastRow.getRelativeRow(row);
		len += lastRow.field.screenLocationToTextOffset(relativeRow, col);
		return len;
	}
A {@link TextField} that takes in other TextFields.

<P>This class allows clients to create custom text layout behavior by combining individual
TextFields that dictate layout behavior.  As an example, consider this rendering:
<pre>
	1)  This is some text...
	2)	This
		is
		more
		text
</pre>
In this example, 1) is a row of text inside of a {@link ClippingTextField}.  Row 2) is a
multi-line text rendering specified in a single {@link FlowLayoutTextField}, using a
narrow width to trigger the field to place each element on its own line.
Ghidra/Framework/Docking/src/main/java/docking/widgets/fieldpanel/field/CompositeVerticalLayoutTextField.java