@Override
	public int getRow(int y) {

		// our start y value is our baseline - the heigh above the baseline
		int startY = -heightAbove;
		if (y < startY) {
			return 0;
		}

		int ySoFar = startY;

		for (FieldRow fieldRow : fieldRows) {
			int fieldHeight = fieldRow.field.getHeight();
			int bottom = fieldHeight + ySoFar;
			if (bottom > y) {
				int relativeY = y - ySoFar;
				int relativeRow = fieldRow.field.getRow(relativeY);
				int displayRow = fieldRow.fromRelativeRow(relativeRow);
				return displayRow;
			}
			ySoFar += fieldHeight;
		}
		return getNumRows() - 1;
	}
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