@Override
    public void draw(Graphics2D graphics, Shape clipShape) {
        gObj.draw(graphics, clipShape);
        graphics.setClip(clipShape);
        if (selected || interimSelected) {
            Rectangle r = getBoundingBox();
            if (selected) {
                // int padding = (lineThickness > 3) ? lineThickness : markPadding;
                int padding = markPadding;
                int thick = 3;
                int mx = r.x + lineThickness + padding;
                int my = r.y + lineThickness + padding;
                int mw = boxSize - 2 * lineThickness - 2 * padding;
                // int mh = boxSize - 2 * lineThickness - 2 * padding;
                mw = (mw <= 0) ? 1 : mw;
                // mh = (mh <= 0) ? 1 : mh;
                graphics.setColor(color);
                graphics.setStroke(new BasicStroke(thick));
                Rectangle mark = new Rectangle(mx, my, mw, mw);
                graphics.fill(mark);
                // graphics.fillOval(mx, my, mw, mh);
                // graphics.drawLine(mx, my, mx + mw, my + mh);
                // graphics.drawLine(mx + mw, my, mx, my + mh);
            }
            if (interimSelected) {
                Rectangle mask = new Rectangle(r.x, r.y, boxSize, boxSize);
                graphics.setColor(maskColor);
                graphics.fill(mask);
            }
        }
    }