public void draw(Graphics g) {
        //g.setColor(needsHighlight() ? selectColor : lightGrayColor);
        g.setColor(needsHighlight() ? selectColor : Color.GRAY);
        setBbox(x, y, x2, y2);
        if (x < x2 && y < y2) {
            g.fillRect(x, y, x2 - x, y2 - y);
        } else if (x > x2 && y < y2) {
            g.fillRect(x2, y, x - x2, y2 - y);
        } else if (x < x2 && y > y2) {
            g.fillRect(x, y2, x2 - x, y - y2);
        } else {
            g.fillRect(x2, y2, x - x2, y - y2);
        }
    }