From 77ed081e70e008a711d6466cb446e1af0913372b Mon Sep 17 00:00:00 2001 From: BetaSteward Date: Thu, 1 Sep 2011 10:54:25 -0400 Subject: [PATCH] fixed issue 206 - game over message is no longer modal --- .../src/main/java/mage/client/game/FeedbackPanel.java | 10 +++++++++- .../src/main/java/mage/client/game/GamePanel.java | 9 +++++---- .../java/mage/client/remote/CallbackClientImpl.java | 6 ++---- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/Mage.Client/src/main/java/mage/client/game/FeedbackPanel.java b/Mage.Client/src/main/java/mage/client/game/FeedbackPanel.java index b23a4ee5bdb..52113451fb4 100644 --- a/Mage.Client/src/main/java/mage/client/game/FeedbackPanel.java +++ b/Mage.Client/src/main/java/mage/client/game/FeedbackPanel.java @@ -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); } diff --git a/Mage.Client/src/main/java/mage/client/game/GamePanel.java b/Mage.Client/src/main/java/mage/client/game/GamePanel.java index 5c3222fe31a..be5776bea15 100644 --- a/Mage.Client/src/main/java/mage/client/game/GamePanel.java +++ b/Mage.Client/src/main/java/mage/client/game/GamePanel.java @@ -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); } diff --git a/Mage.Client/src/main/java/mage/client/remote/CallbackClientImpl.java b/Mage.Client/src/main/java/mage/client/remote/CallbackClientImpl.java index ac2411c51ca..3510ab5381d 100644 --- a/Mage.Client/src/main/java/mage/client/remote/CallbackClientImpl.java +++ b/Mage.Client/src/main/java/mage/client/remote/CallbackClientImpl.java @@ -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")) {