fixed issue 206 - game over message is no longer modal

This commit is contained in:
BetaSteward 2011-09-01 10:54:25 -04:00
parent 2e97eb38fd
commit 77ed081e70
3 changed files with 16 additions and 9 deletions

View file

@ -60,7 +60,7 @@ public class FeedbackPanel extends javax.swing.JPanel {
private final static Logger logger = Logger.getLogger(FeedbackPanel.class);
public enum FeedbackMode {
INFORM, QUESTION, CONFIRM, CANCEL, SELECT
INFORM, QUESTION, CONFIRM, CANCEL, SELECT, END
}
private boolean selected = false;
@ -117,6 +117,12 @@ public class FeedbackPanel extends javax.swing.JPanel {
this.btnRight.setText("Done");
this.helper.setState("", false, "Done", true);
break;
case END:
this.btnLeft.setVisible(false);
this.btnRight.setVisible(true);
this.btnRight.setText("OK");
this.helper.setState("", false, "Done", true);
break;
}
this.btnSpecial.setVisible(special);
this.btnSpecial.setText("Special");
@ -352,6 +358,8 @@ public class FeedbackPanel extends javax.swing.JPanel {
}
if (mode == FeedbackMode.SELECT && (evt.getModifiers() & ActionEvent.CTRL_MASK) == ActionEvent.CTRL_MASK) {
session.sendPlayerInteger(gameId, 0);
} else if (mode == FeedbackMode.END) {
MageFrame.getGame(gameId).hideGame();
} else {
session.sendPlayerBoolean(gameId, false);
}

View file

@ -214,6 +214,7 @@ public class GamePanel extends javax.swing.JPanel {
this.playerId = null;
session = MageFrame.getSession();
MageFrame.addGame(gameId, this);
this.feedbackPanel.init(gameId);
this.feedbackPanel.clear();
this.btnConcede.setVisible(false);
this.btnSwitchHands.setVisible(false);
@ -467,10 +468,10 @@ public class GamePanel extends javax.swing.JPanel {
this.feedbackPanel.getFeedback(FeedbackMode.INFORM, information, false, gameView.getSpecial(), null);
}
public void modalMessage(String message) {
JOptionPane.showMessageDialog(this, message, "", JOptionPane.INFORMATION_MESSAGE);
}
public void endMessage(String message) {
this.feedbackPanel.getFeedback(FeedbackMode.END, message, false, false, null);
}
public int modalQuestion(String message, String title) {
return JOptionPane.showConfirmDialog(this, message, title, JOptionPane.YES_NO_OPTION);
}

View file

@ -117,8 +117,7 @@ public class CallbackClientImpl implements CallbackClient {
else if (callback.getMethod().equals("replayDone")) {
GamePanel panel = frame.getGame(callback.getObjectId());
if (panel != null) {
panel.modalMessage((String) callback.getData());
panel.hideGame();
panel.endMessage((String) callback.getData());
}
}
else if (callback.getMethod().equals("replayUpdate")) {
@ -136,8 +135,7 @@ public class CallbackClientImpl implements CallbackClient {
else if (callback.getMethod().equals("gameOver")) {
GamePanel panel = frame.getGame(callback.getObjectId());
if (panel != null) {
panel.modalMessage((String) callback.getData());
panel.hideGame();
panel.endMessage((String) callback.getData());
}
}
else if (callback.getMethod().equals("gameError")) {