public void mouseClicked(MouseEvent me)
    {
        if ((me.getModifiers() & MouseEvent.ALT_MASK) != 0)
            return;
        addUndo();
        int x = me.getX()
            / (getTileSize() * getZoom() + (isDrawGridLines() ? 1 : 0));
        int y = me.getY()
            / (getTileSize() * getZoom() + (isDrawGridLines() ? 1 : 0));
        if (me.getButton() == MouseEvent.BUTTON1)
        {
            if ((me.getModifiers() & MouseEvent.SHIFT_MASK) != 0)
            {
                leftShiftClickAction(x, y);
            }
            else if (!((me.getModifiers() & MouseEvent.CTRL_MASK) != 0))
            {
                leftClickAction(x, y);
            }
        }
        else if (me.getButton() == MouseEvent.BUTTON3)
        {
            rightClickAction(x, y);
        }
        this.fireActionPerformed(new ActionEvent(this,
            ActionEvent.ACTION_PERFORMED, this.getActionCommand()));
    }