if (clientgui.doYesNoDialog("Abandon?", "Do you want to abandon this vehicle?")) {
if (clientgui.doYesNoDialog(Messages.getString("MovementDisplay.AbandonDialog.title"), Messages.getString("MovementDisplay.AbandonDialog.message"))) {
    public synchronized void actionPerformed(ActionEvent ev) {        final Entity ce = ce();                        // Are we ignoring events?        if ( this.isIgnoringEvents() ) {            return;        }        if ( statusBarActionPerformed(ev, client) )          return;                  if (!client.isMyTurn()) {            // odd...            return;        }        if (ev.getSource() == butDone) {            moveTo(cmd);        } else if (ev.getActionCommand().equals(MOVE_NEXT)) {            selectEntity(client.getNextEntityNum(cen));        } else if (ev.getActionCommand().equals(MOVE_CANCEL)) {       	            clearAllMoves();        } else if (ev.getSource() == butMore) {            buttonLayout++;            buttonLayout %= NUM_BUTTON_LAYOUTS;            setupButtonPanel();        } else if (ev.getActionCommand().equals(MOVE_UNJAM)) {            if (gear == MovementDisplay.GEAR_JUMP || gear == MovementDisplay.GEAR_CHARGE || gear == MovementDisplay.GEAR_DFA || cmd.getMpUsed() > ce.getWalkMP()) { // in the wrong gear                //clearAllMoves();                //gear = Compute.GEAR_LAND;                setUnjamEnabled(false);            }            else {              cmd.addStep(MovePath.STEP_UNJAM_RAC);              moveTo(cmd);            }        } else if (ev.getActionCommand().equals(MOVE_WALK)) {            if (gear == MovementDisplay.GEAR_JUMP) {                clearAllMoves();            }            gear = MovementDisplay.GEAR_LAND;        } else if (ev.getActionCommand().equals(MOVE_JUMP)) {            if (gear != MovementDisplay.GEAR_JUMP) {                clearAllMoves();            }            if (!cmd.isJumping()) {                cmd.addStep(MovePath.STEP_START_JUMP);            }            gear = MovementDisplay.GEAR_JUMP;        } else if (ev.getActionCommand().equals(MOVE_TURN)) {            gear = MovementDisplay.GEAR_TURN;        } else if (ev.getActionCommand().equals(MOVE_BACK_UP)) {            if (gear == MovementDisplay.GEAR_JUMP) {                clearAllMoves();            }            gear = MovementDisplay.GEAR_BACKUP;        } else if (ev.getActionCommand().equals(MOVE_CLEAR)) {       	            clearAllMoves();            if (!client.game.containsMinefield(ce.getPosition())) {                clientgui.doAlertDialog( "Can't clear minefield",                                      "No minefield in hex!" );                return;            }            // Does the entity has a minesweeper?            int clear = Minefield.CLEAR_NUMBER_INFANTRY;            int boom = Minefield.CLEAR_NUMBER_INFANTRY_ACCIDENT;            Enumeration equip = ce.getMisc();            while ( equip.hasMoreElements() ) {                Mounted mounted = (Mounted) equip.nextElement();                if ( mounted.getType()                     .hasFlag(MiscType.F_MINESWEEPER) ) {                    clear = Minefield.CLEAR_NUMBER_SWEEPER;                    boom = Minefield.CLEAR_NUMBER_SWEEPER_ACCIDENT;                    break;                }            }            StringBuffer buff = new StringBuffer();            buff.append( "The unit successfully clears the\nminefield on " )                .append( clear )                .append( "+. The minefield\nwill explode on " )                .append( boom )                .append( " or less." );            if ( clientgui.doYesNoDialog( "Clear the minefield?",                                       buff.toString() ) ) {                cmd.addStep(MovePath.STEP_CLEAR_MINEFIELD);                moveTo(cmd);            }        } else if (ev.getActionCommand().equals(MOVE_CHARGE)) {            if (gear != MovementDisplay.GEAR_LAND) {                clearAllMoves();            }            gear = MovementDisplay.GEAR_CHARGE;        } else if (ev.getActionCommand().equals(MOVE_DFA)) {            if (gear != MovementDisplay.GEAR_JUMP) {                clearAllMoves();            }            gear = MovementDisplay.GEAR_DFA;            if (!cmd.isJumping()) {                cmd.addStep(MovePath.STEP_START_JUMP);            }        } else if (ev.getActionCommand().equals(MOVE_GET_UP)) {            clearAllMoves();            if (cmd.getFinalProne()) {                cmd.addStep(MovePath.STEP_GET_UP);            }            clientgui.bv.drawMovementData(ce, cmd);            clientgui.bv.repaint();            butDone.setLabel("Move");        } else if (ev.getActionCommand().equals(MOVE_GO_PRONE)) {            gear = MovementDisplay.GEAR_LAND;            if (!cmd.getFinalProne()) {                cmd.addStep(MovePath.STEP_GO_PRONE);            }            clientgui.bv.drawMovementData(ce, cmd);            clientgui.bv.repaint();            butDone.setLabel("Move");        } else if (ev.getActionCommand().equals(MOVE_FLEE) && clientgui.doYesNoDialog("Escape?", "Do you want to flee?")) {            clearAllMoves();            cmd.addStep(MovePath.STEP_FLEE);            moveTo(cmd);        } else if (ev.getActionCommand().equals(MOVE_EJECT)) {            if (ce instanceof Tank) {                if (clientgui.doYesNoDialog("Abandon?", "Do you want to abandon this vehicle?")) {                    clearAllMoves();                    cmd.addStep(MovePath.STEP_EJECT);                    moveTo(cmd);                }            } else if (clientgui.doYesNoDialog("Eject?", "Do you want to abandon this mech?")) {                clearAllMoves();                cmd.addStep(MovePath.STEP_EJECT);                moveTo(cmd);            }        } else if ( ev.getActionCommand().equals(MOVE_LOAD) ) {            // Find the other friendly unit in our hex, add it            // to our local list of loaded units, and then stop.            Entity other = null;            Enumeration entities =                client.game.getEntities( ce.getPosition() );            while ( entities.hasMoreElements() ) {                other = (Entity)entities.nextElement();                if ( ce.getOwner() == other.getOwner() &&                     !ce.equals(other) ) {                    loadedUnits.addElement( other );                    break;                }                other = null;            }            // Handle not finding a unit to load.            if ( other != null ) {                cmd.addStep( MovePath.STEP_LOAD );                clientgui.bv.drawMovementData(ce, cmd);                gear = MovementDisplay.GEAR_LAND;            }        }        else if ( ev.getActionCommand().equals(MOVE_UNLOAD) ) {            // Ask the user if we're carrying multiple units.            Entity other = getUnloadedUnit();            // Player can cancel the unload.            if ( other != null ) {                cmd.addStep( MovePath.STEP_UNLOAD, other );                clientgui.bv.drawMovementData(ce, cmd);            }        }        updateProneButtons();        updateRACButton();        updateLoadButtons();    }