public void draw(Graphics2D g2, float x, float y) {
if (lp == null) {
for (int i = 0, n = 0; i < fComponents.length; i++, n += 2) {
int vi = fComponentVisualOrder==null? i : fComponentVisualOrder[i];
TextLineComponent tlc = fComponents[vi];
tlc.draw(g2, locs[n] + x, locs[n+1] + y);
}
} else {
AffineTransform oldTx = g2.getTransform();
Point2D.Float pt = new Point2D.Float();
for (int i = 0, n = 0; i < fComponents.length; i++, n += 2) {