@Override
    public void draw(Graphics2D g) {
        if (active()) {
            Canvas canvas = GUI.player.graph.canvas;
            radius = 50. * Math.sqrt(1.0 / canvas.zoom);
            x = (radius * canvas.zoom + 10 - canvas.offX) / canvas.zoom;
            y = (radius * canvas.zoom + 10 - canvas.offY) / canvas.zoom;

            Shape shape = new Ellipse2D.Double(x - radius, y - radius, 2 * radius, 2 * radius);
            if (getInitial() != 0) {
                shape = new Rectangle2D.Double(x - radius, y - radius, 2 * radius, 2 * radius);
            }
            g.setColor(color);
            g.fill(shape);
            g.setColor(Canvas.contrastColor(color, Constrast.borderbw));
            g.draw(shape);
            g.setColor(Canvas.contrastColor(color, Constrast.textbw));

            g.setFont(new Font(Font.DIALOG, Font.PLAIN, (int) (13 * Math.sqrt(1.0 / canvas.zoom))));
            /*String caption = Canvas.shorten(g, ((Integer) ID).toString(), (int) (radius * 2),
                    Preference.begin);*/
            String[] captions = { "Choose", "random", "at start",
                    "(Mode: " + GUI.player.model.settings.getInit().toString() + ")" };
            for (int i = 0; i < captions.length; ++i) {
                g.drawString(captions[i],
                        (float) (x - g.getFontMetrics().stringWidth(captions[i]) / 2), (float) (y
                                + g.getFontMetrics().getAscent() / 2 + (i - 2)
                                * g.getFontMetrics().getHeight()));
            }
        }
    }