@Override
	protected void paintComponent(Graphics g) {
		super.paintComponent(g);

		Graphics2D g2d = DrawingTools.setupGraphics(g);

		Integer radius = DEFAULT_RADIUS;
		switch (mark.getType()) {
		case normal:
			radius = NORMAL_RADIUS;
			g2d.setColor(NORMAL_COLOR);
			break;
		case boat:
			radius = BOAT_RADIUS;
			g2d.setColor(BOAT_COLOR);
			break;
		case city:
			radius = CITY_RADIUS;
			g2d.setColor(RING_COLOR);
			g2d.fillOval((SIZE / 2) - radius,
					(SIZE / 2) - radius,
					2 * radius, 2 * radius);
			radius = CITY_RADIUS - 2;
			g2d.setColor(CITY_COLOR);
			break;
		case start:
			radius = START_RADIUS;
			g2d.setColor(START_COLOR);
			break;
		default:
			g2d.setColor(DEFAULT_COLOR);
			break;
		}

		g2d.fillOval((SIZE / 2) - radius,
				(SIZE / 2) - radius,
				2 * radius, 2 * radius);

		if (mark.isSelected()) {
			g2d.setStroke(new BasicStroke(3));
			g2d.setColor(SELECT_COLOR);
			g2d.drawOval(0, 0, SIZE, SIZE);
		}
	}