@Override
    public void paintHandlers(final Graphics2D g) {
        final ElementHandlers handlers = getComponent().getHandlers();
        if (handlers == null)
            return;

        final AffineTransform oldTransform = g.getTransform();

        g.translate(handlers.getX(), handlers.getY());

        g.setPaint(handlers.getLineColor());
        g.setStroke(handlers.getLineStroke());
        g.draw(handlers.getShape());

        g.setTransform(oldTransform);

        if (handlers.getNw() != null)
            paintHandler(g, handlers.getNw());
        if (handlers.getNe() != null)
            paintHandler(g, handlers.getNe());
        if (handlers.getSe() != null)
            paintHandler(g, handlers.getSe());
        if (handlers.getSw() != null)
            paintHandler(g, handlers.getSw());
        if (handlers.getN() != null)
            paintHandler(g, handlers.getN());
        if (handlers.getE() != null)
            paintHandler(g, handlers.getE());
        if (handlers.getS() != null)
            paintHandler(g, handlers.getS());
        if (handlers.getW() != null)
            paintHandler(g, handlers.getW());

    }