Example usage for com.google.gwt.user.client Window alert

List of usage examples for com.google.gwt.user.client Window alert

Introduction

In this page you can find the example usage for com.google.gwt.user.client Window alert.

Prototype

public static void alert(String msg) 

Source Link

Usage

From source file:com.fullmetalgalaxy.client.game.board.DlgJoinGame.java

License:Open Source License

@Override
public void onClick(ClickEvent p_event) {
    if (p_event.getSource() == m_btnCancel) {
        this.hide();
        return;/*w w w . j  av a 2s .co m*/
    } else if (p_event.getSource() == m_btnOk) {
        if (GameEngine.model().getGame().isPasswordProtected()
                && !m_txtPassword.getText().equals(GameEngine.model().getGame().getPassword())) {
            Window.alert(MAppBoard.s_messages.pleaseCheckGamePasword());
            return;
        }
        this.hide();

        if (!FmpConstant.getDefaultInitialHolds().equals(GameEngine.model().getGame().getInitialHolds())
                || !FmpConstant.getDefaultReserve(GameEngine.model().getGame().getMaxNumberOfPlayer())
                        .equals(GameEngine.model().getGame().getConstructReserve())) {
            // not default variant... display a little message to player
            DlgJoinDisplayVariant.instance().show();
            DlgJoinDisplayVariant.instance().center();
        } else {
            DlgJoinChooseColor.instance().show();
            DlgJoinChooseColor.instance().center();
        }
        return;
    }

}

From source file:com.fullmetalgalaxy.client.game.board.WgtBoardBase.java

License:Open Source License

private void onUp(UserAction userAction, int p_x, int p_y) {
    AnBoardPosition position = convertPixPositionToHexPosition(new AnPair(p_x, p_y));

    try {/* w  w  w. j av  a2  s.  c om*/
        EventBuilderMsg eventBuilderMsg = EventBuilderMsg.None;
        eventBuilderMsg = GameEngine.model().getActionBuilder().userBoardClick(position, userAction);
        switch (eventBuilderMsg) {
        case Updated:
            AppRoot.getEventBus().fireEvent(new ModelUpdateEvent(GameEngine.model()));
            break;
        case MustRun:
            GameEngine.model().runCurrentAction();
            break;
        default:
        }

    } catch (RpcFmpException ex) {
        if (ex.getLocalizedMessage() != null) {
            MAppMessagesStack.s_instance.showWarning(ex.getLocalizedMessage());
        }
        GameEngine.model().getActionBuilder().cancel();
        try {
            GameEngine.model().getActionBuilder().userBoardClick(position, UserAction.Primary);
        } catch (Throwable iniore) {
        }
        AppRoot.getEventBus().fireEvent(new ModelUpdateEvent(GameEngine.model()));
    } catch (Throwable ex) {
        Window.alert("Une erreur est survenu, la page va tre recharge \n" + ex.getMessage());
        ClientUtil.sendPM("" + AppMain.instance().getMyAccount().getId(), "5001", "js error", ex.getMessage());
        ClientUtil.reload();
    }
}

From source file:com.fullmetalgalaxy.client.game.context.WgtContextAction.java

License:Open Source License

@Override
public void onClick(ClickEvent p_event) {
    Object sender = p_event.getSource();
    try {//from  ww  w. j a  v a  2 s  . c o  m
        EventsPlayBuilder actionBuilder = GameEngine.model().getActionBuilder();
        if (sender == m_btnOk) {
            actionBuilder.userOk();
            GameEngine.model().runCurrentAction();
        } else if (sender == m_btnCancel) {
            actionBuilder.userCancel();
            AppRoot.getEventBus().fireEvent(new ModelUpdateEvent(GameEngine.model()));
        } else if (sender == m_btnRepairTurret) {
            EventBuilderMsg eventBuilderMsg = actionBuilder.userAction(GameLogType.EvtRepair);
            if (eventBuilderMsg == EventBuilderMsg.MustRun) {
                GameEngine.model().runSingleAction(actionBuilder.getSelectedAction());
            }
        } else if (sender == m_btnFire) {
            actionBuilder.userAction(GameLogType.EvtFire);
            if (((EbEvtFire) actionBuilder.getSelectedAction())
                    .getTokenTarget(GameEngine.model().getGame()) == null) {
                MAppMessagesStack.s_instance.showMessage(MAppBoard.s_messages.selectDestroyerTarget());
            } else {
                MAppMessagesStack.s_instance.showMessage(MAppBoard.s_messages.selectTwoDestroyers());
            }
        } else if (sender == m_btnControl) {
            actionBuilder.userAction(GameLogType.EvtControl);
            if (((EbEvtFire) actionBuilder.getSelectedAction())
                    .getTokenTarget(GameEngine.model().getGame()) == null) {
                MAppMessagesStack.s_instance.showMessage(MAppBoard.s_messages.selectDestroyerTarget());
            } else {
                MAppMessagesStack.s_instance.showMessage(MAppBoard.s_messages.selectTwoDestroyers());
            }
        } else if (sender == m_btnFireCoverOn) {
            GameEngine.model().setFireCoverDisplayed(true);
        } else if (sender == m_btnFireCoverOff) {
            GameEngine.model().setFireCoverDisplayed(false);
        } else if (sender == m_btnGridOn) {
            GameEngine.model().setGridDisplayed(true);
        } else if (sender == m_btnGridOff) {
            GameEngine.model().setGridDisplayed(false);
        } else if (sender == m_btnZoomIn) {
            GameEngine.model().setZoomDisplayed(EnuZoom.Medium);
        } else if (sender == m_btnZoomOut) {
            GameEngine.model().setZoomDisplayed(EnuZoom.Small);
        } else if (sender == m_btnRegister || sender == m_pnlRegister) {
            DlgJoinGame.instance().show();
            DlgJoinGame.instance().center();
        } else if (sender == m_btnPractice || sender == m_btnPracticeCancel) {
            if (GameEngine.model().getGame().getGameType() == GameType.MultiPlayer
                    || GameEngine.model().getGame().getGameType() == GameType.Initiation) {
                Window.alert(MAppBoard.s_messages.activateTrainningMode());
                m_actionIndexBeforePracticeMode = GameEngine.model().getGame().getLogs().size();
                GameEngine.model().getGame().setGameType(GameType.Practice);
                AppRoot.getEventBus().fireEvent(new ModelUpdateEvent(GameEngine.model()));
            } else {
                // Window.alert( MAppBoard.s_messages.deactivateTrainningMode() );
                // ClientUtil.reload();
                // cancel locally
                EbEvtCancel evtCancel = new EbEvtCancel();
                evtCancel.setGame(GameEngine.model().getGame());
                evtCancel.setFromActionIndex(GameEngine.model().getGame().getLogs().size()
                        + GameEngine.model().getGame().getAdditionalEventCount() + GameEngine.model()
                                .getMyRegistration().getTeam(GameEngine.model().getGame()).getMyEvents().size()
                        - 1);
                evtCancel.setToActionIndex(GameEngine.model().getGame().getAdditionalEventCount()
                        + m_actionIndexBeforePracticeMode);
                evtCancel.setAccountId(AppMain.instance().getMyAccount().getId());
                GameEngine.model().runSingleAction(evtCancel);
                GameEngine.model().getGame().setGameType(GameType.MultiPlayer);
                MAppMessagesStack.s_instance.removeMessage(m_pnlPractice);
                AppRoot.getEventBus().fireEvent(new ModelUpdateEvent(GameEngine.model()));
            }
        } else if (sender == m_btnPracticeOk) {
            // after playing offline, user want to commit his turn to server
            // put all actions to event builder
            GameEngine.model().getActionBuilder().clear();
            int iAction = m_actionIndexBeforePracticeMode;
            ArrayList<AnEventPlay> eventsBackup = new ArrayList<AnEventPlay>();
            while (GameEngine.model().getGame().getLogs().size() > iAction) {
                AnEvent event = GameEngine.model().getGame().getLogs().get(iAction);
                if (event instanceof AnEventPlay) {
                    eventsBackup.add((AnEventPlay) event);
                }
                iAction++;
            }
            // cancel locally
            EbEvtCancel evtCancel = new EbEvtCancel();
            evtCancel.setGame(GameEngine.model().getGame());
            evtCancel.setFromActionIndex(GameEngine.model().getGame().getLogs().size()
                    + GameEngine.model().getGame().getAdditionalEventCount() + GameEngine.model()
                            .getMyRegistration().getTeam(GameEngine.model().getGame()).getMyEvents().size()
                    - 1);
            evtCancel.setToActionIndex(m_actionIndexBeforePracticeMode);
            evtCancel.setAccountId(AppMain.instance().getMyAccount().getId());
            GameEngine.model().runSingleAction(evtCancel);
            // finally send actions to server
            GameEngine.model().getGame().setGameType(GameType.MultiPlayer);
            GameEngine.model().getActionBuilder().getActionList().addAll(eventsBackup);
            GameEngine.model().runCurrentAction();
            MAppMessagesStack.s_instance.removeMessage(m_pnlPractice);
        } else if (sender == m_btnEndTurn || sender == m_pnlEndTurn) {
            String msg = null;
            int oldPt = GameEngine.model().getMyRegistration().getPtAction();
            int newPt = GameEngine.model().getMyRegistration().getRoundedActionPt(GameEngine.model().getGame());
            if (oldPt == newPt) {
                msg = MAppBoard.s_messages.confirmEndTurn(oldPt);
            } else {
                msg = MAppBoard.s_messages.confirmEndTurnRoundedPA(oldPt, newPt);
            }
            if (Window.confirm(msg)) {
                EbEvtPlayerTurn action = new EbEvtPlayerTurn();
                action.setGame(GameEngine.model().getGame());
                action.setAccountId(AppMain.instance().getMyAccount().getId());
                GameEngine.model().runSingleAction(action);
            }
        } else if (sender == m_btnTakeOff) {
            if (Window.confirm(MAppBoard.s_messages
                    .confirmTakeOff(Messages.getTokenString(0, actionBuilder.getSelectedToken())))) {
                EbEvtTakeOff action = new EbEvtTakeOff();
                action.setGame(GameEngine.model().getGame());
                action.setRegistration(GameEngine.model().getMyRegistration());
                action.setToken(actionBuilder.getSelectedToken());
                GameEngine.model().runSingleAction(action);
            }
        } else if (sender == m_pnlLand) {
            // search for my freighter to land
            GameEngine.model().getActionBuilder().userTokenClick(
                    GameEngine.model().getGame().getFreighter(GameEngine.model().getMyRegistration()));
            AppRoot.getEventBus().fireEvent(new ModelUpdateEvent(GameEngine.model()));
        } else if (sender == m_pnlDeploy) {
            // search for any unit to deploy
            EbToken myFreighter = GameEngine.model().getGame()
                    .getFreighter(GameEngine.model().getMyRegistration());
            if (myFreighter.containToken()) {
                EbToken firstToken = myFreighter.getContains().iterator().next();
                GameEngine.model().getActionBuilder().userTokenClick(firstToken);
                AppRoot.getEventBus().fireEvent(new ModelUpdateEvent(GameEngine.model()));
            }
        } else if (sender == m_pnlTakeOff) {
            GameEngine.model().getActionBuilder().clear();
            // search for my freighter to take off
            for (EbToken token : GameEngine.model().getGame()
                    .getAllFreighter(GameEngine.model().getMyRegistration().getColor())) {
                if (token.getLocation() == Location.Board) {
                    GameEngine.model().getActionBuilder().userTokenClick(token);
                    break;
                }
            }
            AppRoot.getEventBus().fireEvent(new ModelUpdateEvent(GameEngine.model()));
        }
    } catch (RpcFmpException e) {
        MAppMessagesStack.s_instance.showWarning(e.getLocalizedMessage());
    }
}

From source file:com.fullmetalgalaxy.client.game.GameEngine.java

License:Open Source License

protected void receiveModelUpdate(ModelFmpUpdate p_result) {
    if (p_result == null || getGame() == null) {
        // this shouldn't occur anymore !
        return;/*from w  w  w. j av a 2 s  . com*/
    }

    try {
        if ((getGame().getGameType() == GameType.MultiPlayer || getGame().getGameType() == GameType.Initiation)
                && getGame().getVersion() >= p_result.getToVersion()) {
            // assume we can discard this update !
            return;
        }

        if (getGame().getVersion() < p_result.getFromVersion()
                || (getGame().getVersion() != p_result.getFromVersion()
                        && getGame().getVersion() < p_result.getToVersion())) {
            Window.alert("Error: receive incoherant model update (" + p_result.getFromVersion() + " expected "
                    + getGame().getVersion() + "). reload page");
            ClientUtil.reload();
            return;
        }

        if (p_result.getClientID() == m_lastModelUpdateClientID) {
            // this update correspond to the last action request
            // and we receive response from channel before RCP !
            AppMain.instance().stopLoading();
            getActionBuilder().clear();
        }

        if (p_result.getAccountId() == AppMain.instance().getMyAccount().getId()) {
            getActionBuilder().clear();
        }
        getGame().setVersion(p_result.getToVersion());

        // handle game events first
        //
        boolean isNewPlayerTurn = false;
        List<AnEvent> events = p_result.getGameEvents();
        for (AnEvent event : events) {
            // if we receive and end turn event after an hidden parallel time step
            // we need to unexec my private event logs
            if (event instanceof EbEvtPlayerTurn && getGame().getCurrentPlayerIds().size() == 1) {
                isNewPlayerTurn = true;
                if (getGame().isTimeStepParallelHidden(getGame().getCurrentTimeStep())
                        && getMyRegistration() != null
                        && !getMyRegistration().getTeam(getGame()).getMyEvents().isEmpty()) {
                    for (int i = getMyRegistration().getTeam(getGame()).getMyEvents().size() - 1; i >= 0; i--) {
                        getMyRegistration().getTeam(getGame()).getMyEvents().get(i).unexec(getGame());
                    }
                }
            }

            if (event.getType() == GameLogType.EvtCancel) {
                ((EbEvtCancel) event).execCancel(getGame());
            } else if (event instanceof AnEventUser && event.canBeParallelHidden()
                    && getGame().isTimeStepParallelHidden(getGame().getCurrentTimeStep())
                    && ((AnEventUser) event).getMyRegistration(getGame()) != null) {
                EbTeam myTeam = ((AnEventUser) event).getMyRegistration(getGame()).getTeam(getGame());
                myTeam.addMyEvent(event);
                if (myTeam == getMyRegistration().getTeam(getGame())) {
                    event.exec(getGame());
                    getGame().updateLastTokenUpdate(null);
                    AppRoot.getEventBus().fireEvent(new GameActionEvent(event));
                }
            } else {
                event.exec(getGame());
                getGame().addEvent(event);
                getGame().updateLastTokenUpdate(null);
                AppRoot.getEventBus().fireEvent(new GameActionEvent(event));
            }

        }

        // assume that if we receive an update, something has changed !
        AppRoot.getEventBus().fireEvent(new ModelUpdateEvent(GameEngine.model()));

        if (isNewPlayerTurn && getMyRegistration() != null && (getGame().getCurrentPlayerIds().size() == 0
                || getGame().getCurrentPlayerIds().contains(getMyRegistration().getId()))) {
            Window.alert(MAppBoard.s_messages.yourTurnToPlay());
        }
    } catch (Throwable e) {
        // no i18n
        RpcUtil.logError("error ", e);
        Window.alert("unexpected error : " + e);
    }
}

From source file:com.fullmetalgalaxy.client.game.GameEngine.java

License:Open Source License

/**
 * rpc call to run the current action.//from   w  ww .j a  va2s  .  c o m
 * Clear the current action.
 */
public void runSingleAction(AnEvent p_action) {
    if (m_lastModelUpdateClientID != 0) {
        // no i18n as HMI is lock, so it shouldn't occur
        Window.alert("An action is already send to server... wait for server response.");
        return;
    }
    AppMain.instance().startLoading();
    m_lastModelUpdateClientID = Random.nextInt();
    ModelFmpUpdate modelUpdate = new ModelFmpUpdate(getGame());
    modelUpdate.setClientID(m_lastModelUpdateClientID);

    try {
        if (!GameEngine.model().isLogged() && (getGame().getGameType() == GameType.MultiPlayer
                || getGame().getGameType() == GameType.Initiation)) {
            // no i18n as HMI won't allow that. so unusual
            throw new RpcFmpException("You must be logged to do this action");
        }
        // do not check player is logged to let him join action
        // action.check();
        if (getGame().getGameType() == GameType.MultiPlayer || getGame().getGameType() == GameType.Initiation) {
            AppMain.instance().scheduleCheckChannelTimer();
            modelUpdate.setFromPageId(AppMain.instance().getPageId());
            modelUpdate.setFromPseudo(AppMain.instance().getMyAccount().getPseudo());
            modelUpdate.setGameEvents(new ArrayList<AnEvent>());
            modelUpdate.getGameEvents().add(p_action);
            AppMain.getRpcService().runModelUpdate(modelUpdate, m_callbackEvents);
        } else {
            LocalGame.runEvent(p_action, m_callbackEvents, this);
        }
    } catch (RpcFmpException ex) {
        Window.alert(ex.getLocalizedMessage());
        m_lastModelUpdateClientID = 0;
        AppMain.instance().stopLoading();
        getActionBuilder().cancel();
        AppRoot.getEventBus().fireEvent(new ModelUpdateEvent(GameEngine.model()));
    } catch (Throwable p_caught) {
        Window.alert("Unknown error on client: " + p_caught);
        m_lastModelUpdateClientID = 0;
        AppMain.instance().stopLoading();
        getActionBuilder().cancel();
    }
}

From source file:com.fullmetalgalaxy.client.game.GameEngine.java

License:Open Source License

/**
 * rpc call to run the current action.//from   w ww.j  av a  2 s.c  o m
 * Clear the current action.
 */
public void runCurrentAction() {
    if (m_lastModelUpdateClientID != 0) {
        Window.alert("Une action a dj t envoy au serveur... sans rponse pour l'instant");
        return;
    }
    AppMain.instance().startLoading();
    m_lastModelUpdateClientID = Random.nextInt();
    ModelFmpUpdate modelUpdate = new ModelFmpUpdate(getGame());
    modelUpdate.setClientID(m_lastModelUpdateClientID);

    try {
        if (!GameEngine.model().isJoined()) {
            // no i18n ?
            throw new RpcFmpException("you didn't join this game.");
        }
        // action.check();
        getActionBuilder().unexec();
        if (getGame().getGameType() == GameType.MultiPlayer || getGame().getGameType() == GameType.Initiation) {
            AppMain.instance().scheduleCheckChannelTimer();
            // then send request
            modelUpdate.setFromPageId(AppMain.instance().getPageId());
            modelUpdate.setFromPseudo(AppMain.instance().getMyAccount().getPseudo());
            modelUpdate.setGameEvents(new ArrayList<AnEvent>());
            modelUpdate.getGameEvents().addAll(getActionBuilder().getActionList());
            AppMain.getRpcService().runModelUpdate(modelUpdate, m_callbackEvents);
        } else {
            LocalGame.runAction(getActionBuilder().getActionList(), m_callbackEvents, this);
        }
    } catch (RpcFmpException ex) {
        Window.alert(ex.getLocalizedMessage());
        m_lastModelUpdateClientID = 0;
        AppMain.instance().stopLoading();
        getActionBuilder().cancel();
    } catch (Throwable p_caught) {
        Window.alert("Unknown error on client: " + p_caught);
        m_lastModelUpdateClientID = 0;
        AppMain.instance().stopLoading();
        getActionBuilder().cancel();
        AppRoot.getEventBus().fireEvent(new ModelUpdateEvent(GameEngine.model()));
    }
}

From source file:com.fullmetalgalaxy.client.game.GameEngine.java

License:Open Source License

/**
 * in time line mode, play several events backward
 * @param p_actionCount//  w  ww.  j  av  a2s  .c o  m
 */
public void timeBack(int p_actionCount) {
    if (p_actionCount > m_currentActionIndex) {
        GameEngine.model().loadAdditionalEvents();
        return;
    }

    List<AnEvent> logs = getGame().getLogs();
    while ((m_currentActionIndex > 0) && (p_actionCount > 0)) {
        m_currentActionIndex--;

        AnEvent action = null;
        if (m_currentActionIndex >= logs.size() && getMyRegistration() != null) {
            action = getMyRegistration().getTeam(getGame()).getMyEvents()
                    .get(m_currentActionIndex - logs.size());
        } else {
            action = logs.get(m_currentActionIndex);
        }

        if (action != null && !(action instanceof EbAdmin) && !(action instanceof EbGameJoin)
                && !(action instanceof EbEvtCancel)) {
            // unexec action
            try {
                action.unexec(getGame());
            } catch (RpcFmpException e) {
                RpcUtil.logError("error ", e);
                Window.alert("unexpected error : " + e);
                AppRoot.getEventBus().fireEvent(new ModelUpdateEvent(GameEngine.model()));
                return;
            }
            // don't count automatic action as one action to play
            if (!action.isAuto()) {
                p_actionCount--;
            }
            // if previous action is EvtConstruct, then unexec too
            action = null;
            if (m_currentActionIndex >= logs.size() + 1 && getMyRegistration() != null) {
                action = getMyRegistration().getTeam(getGame()).getMyEvents()
                        .get(m_currentActionIndex - logs.size() - 1);
            } else if (m_currentActionIndex > 0) {
                action = logs.get(m_currentActionIndex - 1);
            }
            if (action != null && action.getType() == GameLogType.EvtConstruct) {
                p_actionCount++;
            }
        }
    }
    AppRoot.getEventBus().fireEvent(new ModelUpdateEvent(GameEngine.model()));
}

From source file:com.fullmetalgalaxy.client.game.GameEngine.java

License:Open Source License

/**
 * in time mode, play several events/*w  w  w  . j a  v a 2  s . co  m*/
 * @param p_actionCount
 */
public void timePlay(int p_actionCount) {
    List<AnEvent> logs = getGame().getLogs();
    boolean execAnimation = p_actionCount == 1;
    int totalEventCount = logs.size();
    if (GameEngine.model().getMyRegistration() != null) {
        totalEventCount += GameEngine.model().getMyRegistration().getTeam(getGame()).getMyEvents().size();
    }
    while ((m_currentActionIndex < totalEventCount) && (p_actionCount > 0)) {
        AnEvent action = null;
        if (m_currentActionIndex >= logs.size() && getMyRegistration() != null) {
            action = getMyRegistration().getTeam(getGame()).getMyEvents()
                    .get(m_currentActionIndex - logs.size());
        } else {
            action = logs.get(m_currentActionIndex);
        }

        if (!(action instanceof EbAdmin) && !(action instanceof EbGameJoin)
                && !(action instanceof EbEvtCancel)) {
            // exec action
            try {
                action.exec(getGame());
            } catch (RpcFmpException e) {
                logger.severe(e.getMessage());
                Window.alert("unexpected error : " + e);
                return;
            }
            // don't count automatic action as one action to play
            if (!action.isAuto() && action.getType() != GameLogType.EvtConstruct) {
                p_actionCount--;
            }
            // if next action is automatic, then exec too
            if (m_currentActionIndex < logs.size() - 1 && logs.get(m_currentActionIndex + 1).isAuto()) {
                p_actionCount++;
            }
            if (!(action instanceof EbEvtMessage) && execAnimation) {
                AppRoot.getEventBus().fireEvent(new GameActionEvent(action));
            }
        }
        m_currentActionIndex++;
    }
    AppRoot.getEventBus().fireEvent(new ModelUpdateEvent(GameEngine.model()));
}

From source file:com.fullmetalgalaxy.client.game.GameEngine.java

License:Open Source License

/**
 * in time mode, play events up to the given one
 * @param p_actionCount//w  w w .  ja v  a2s.co m
 */
public void timePlay(AnEvent p_event) {
    if (!isTimeLineMode() || p_event == null || p_event.getIdGame() != getGame().getId()) {
        logger.warning("time play command but wrong mode or wrong params");
        return;
    }
    AnEvent currentEvent = getCurrentAction();
    boolean timeForward = false;
    if (currentEvent != null && currentEvent.getLastUpdate().getTime() < p_event.getLastUpdate().getTime()) {
        timeForward = true;
    }
    try {
        while (currentEvent != p_event) {
            // we assume playing event in same way during the whole method
            // this insure us not going in endless loop
            if (timeForward) {
                currentEvent.exec(getGame());
                m_currentActionIndex++;
                currentEvent = getCurrentAction();
            } else {
                m_currentActionIndex--;
                currentEvent = getCurrentAction();
                if (!(currentEvent instanceof EbAdmin) && !(currentEvent instanceof EbGameJoin)
                        && !(currentEvent instanceof EbEvtCancel)) {
                    currentEvent.unexec(getGame());
                }
            }
            if (m_currentActionIndex < 0 || m_currentActionIndex >= getGame().getLogs().size()) {
                logger.severe("time play command but given event wasn't found");
                AppRoot.getEventBus().fireEvent(new ModelUpdateEvent(GameEngine.model()));
                return;
            }
        }
    } catch (RpcFmpException e) {
        logger.severe(e.getMessage());
        Window.alert("unexpected error : " + e);
    }
    AppRoot.getEventBus().fireEvent(new ModelUpdateEvent(GameEngine.model()));
}

From source file:com.fullmetalgalaxy.client.game.tabmenu.WgtGameTimeMode.java

License:Open Source License

@Override
public void onClick(ClickEvent p_event) {
    Object sender = p_event.getSource();
    if (sender == m_btnOk) {
        if (GameEngine.model().getCurrentAction() == null) {
            // user click ok to cancel action
            // but action selected was then last one: no cancel
            GameEngine.model().setTimeLineMode(false);
            return;
        }//w w  w. jav a2s.  c  o  m

        if (GameEngine.model().getLastTurnPlayed() != GameEngine.model().getGame().getCurrentTimeStep()
                || (GameEngine.model().getMyRegistration() != null && !GameEngine.model().getGame()
                        .getCurrentPlayerIds().contains(GameEngine.model().getMyRegistration().getId()))) {
            if (!AppMain.instance().iAmAdmin()) {
                // no i18n: this dialog shouldn't appear
                Window.alert("Only admin can cancel such action");
                return;
            }
            // admin is going to perform admin action, show confirm dialog
            // it may also a training game
            // TODO i18n
            if (!Window.confirm("Perform admin cancel ?")) {
                return;
            }
        }

        // just in case another action was in preparation
        EventsPlayBuilder actionBuilder = GameEngine.model().getActionBuilder();
        actionBuilder.clear();
        EbEvtCancel evtCancel = new EbEvtCancel();
        evtCancel.setGame(GameEngine.model().getGame());
        int fromIndex = GameEngine.model().getGame().getLogs().size() - 1;
        fromIndex += GameEngine.model().getGame().getAdditionalEventCount();
        if (GameEngine.model().getMyRegistration() != null) {
            fromIndex += GameEngine.model().getMyRegistration().getTeam(GameEngine.model().getGame())
                    .getMyEvents().size();
        }
        evtCancel.setFromActionIndex(fromIndex);
        evtCancel.setToActionIndex(GameEngine.model().getGame().getAdditionalEventCount()
                + GameEngine.model().getCurrentActionIndex());
        evtCancel.setAccountId(AppMain.instance().getMyAccount().getId());
        // this action is required to send the last game version to server
        GameEngine.model().setTimeLineMode(false);
        GameEngine.model().runSingleAction(evtCancel);
    } else if (sender == m_btnForward) {
        GameEngine.model().timePlay(1);
    } else if (sender == m_btnFastPlay) {
        GameEngine.model().timePlay(10);
    } else if (sender == m_btnBack) {
        GameEngine.model().timeBack(1);
    } else if (sender == m_btnFastBack) {
        GameEngine.model().timeBack(10);
    } else if (sender == m_btnPlay) {
        GameEngine.model().startPlayAnimation();
    } else if (sender == m_btnPause) {
        GameEngine.model().stopPlayAnimation();
    }
}