+ Rectangle2D r = fm.getStringBounds(MapInfoConstants.ATTRIBUTION, g2d);
+
+ double yOffsetFromBottom = getMapInfoNextY(g2d);
+ double frameMaxX = controlBounds.getMaxX();
+ double frameMaxY = controlBounds.getMaxY() - yOffsetFromBottom;
+ int frameWidth = (int) Math.ceil(r.getWidth()) + MapInfoConstants.TEXT_HORIZONTAL_MARGIN * 2;
+ int frameHeight = (int) Math.ceil(r.getHeight()) + MapInfoConstants.TEXT_VERTICAL_MARGIN * 2;
+
+ Composite oc = g2d.getComposite();
+ g2d.setComposite(MapInfoConstants.INFO_COMPOSITE);
+ g2d.setStroke(MapInfoConstants.INFO_STROKE);
+
+ g2d.setColor(MapInfoConstants.TEXT_BG_COLOR);
+ rect.setFrameFromDiagonal(frameMaxX - frameWidth, frameMaxY - frameHeight, frameMaxX, frameMaxY);
+ g2d.fill(rect);