From 5a0ca8025d9f5de62bcbbfb12dbeb73f2597e20c Mon Sep 17 00:00:00 2001 From: magenoxx Date: Mon, 10 Jan 2011 01:34:32 +0300 Subject: [PATCH] [cl.viewer] bigCard update issue fix. --- .../src/main/java/mage/client/cards/BigCard.java | 4 ++++ .../client/plugins/adapters/MageActionCallback.java | 13 ++++++++----- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/Mage.Client/src/main/java/mage/client/cards/BigCard.java b/Mage.Client/src/main/java/mage/client/cards/BigCard.java index 769d3470410..71208e84a63 100644 --- a/Mage.Client/src/main/java/mage/client/cards/BigCard.java +++ b/Mage.Client/src/main/java/mage/client/cards/BigCard.java @@ -106,6 +106,10 @@ public class BigCard extends JComponent { return cardId; } + public void resetCardId() { + this.cardId = null; + } + private void drawText(java.util.List strings) { text.setText(""); StyledDocument doc = text.getStyledDocument(); diff --git a/Mage.Client/src/main/java/mage/client/plugins/adapters/MageActionCallback.java b/Mage.Client/src/main/java/mage/client/plugins/adapters/MageActionCallback.java index 0ce06d5225e..abfba04009b 100644 --- a/Mage.Client/src/main/java/mage/client/plugins/adapters/MageActionCallback.java +++ b/Mage.Client/src/main/java/mage/client/plugins/adapters/MageActionCallback.java @@ -40,9 +40,8 @@ public class MageActionCallback implements ActionCallback { protected static DefaultActionCallback defaultCallback = DefaultActionCallback.getInstance(); protected static Session session = MageFrame.getSession(); private CardView popupCard; - private Thread t; - private int state = 0; private JComponent cardInfoPane; + private volatile boolean state = false; public MageActionCallback() { } @@ -186,14 +185,17 @@ public class MageActionCallback implements ActionCallback { } MageCard card = (MageCard) data.component; - if (card.getOriginal().getId() != bigCard.getCardId()) { + if (!state || card.getOriginal().getId() != bigCard.getCardId()) { synchronized (MageActionCallback.class) { - if (card.getOriginal().getId() != bigCard.getCardId()) { + if (!state || card.getOriginal().getId() != bigCard.getCardId()) { + if (!state) { + bigCard.resetCardId(); + } + state = true; Image image = card.getImage(); if (image != null && image instanceof BufferedImage) { image = ImageHelper.getResizedImage((BufferedImage) image, bigCard.getWidth(), bigCard.getHeight()); bigCard.setCard(card.getOriginal().getId(), image, card.getOriginal().getRules(), card.isFoil()); - bigCard.showTextComponent(); if (card.getOriginal().isAbility()) { bigCard.showTextComponent(); } else { @@ -232,6 +234,7 @@ public class MageActionCallback implements ActionCallback { @Override public void mouseExited(MouseEvent e, final TransferData data) { hidePopup(); + this.state = false; ArrowBuilder.removeAllArrows(); }