package points;

import java.awt.Color;
import java.awt.FontMetrics;
import java.awt.Graphics;

// public class RoundNamedPoint implements DrawableNamedPoint {
public class RoundNamedPoint implements NamedPoint, Drawable {
  private String name;
  private int px;
  private int py;
  public RoundNamedPoint(String s, int x, int y) {
    name = s;
    px = x;
    py = y;
  }
  public String toString() {
    return name + " (" + px + ',' + py + ')';
  }
  public String getName() {
    return '('+name+')';
  }
  public int getX() {
    return px;
  }
  public int getY() {
    return py;
  }
  public void paint(Graphics g) {
    int x = getX();
    int y = getY();
    FontMetrics m = g.getFontMetrics();
    int rad = m.getAscent();
    int len = m.stringWidth(name);
    g.setColor(Color.lightGray);
    g.fillOval(x - len / 2 - rad, y - rad, len + 2 * rad, 2 * rad);
    g.setColor(Color.black);
    g.drawOval(x - len / 2 - rad, y - rad, len + 2 * rad, 2 * rad);
    g.drawString(name, x - len / 2, y + (m.getAscent() - m.getDescent()) / 2);
  }
}

