diff --git a/Mage.Client/pom.xml b/Mage.Client/pom.xml
index 42d38003753..aa5782dc7bc 100644
--- a/Mage.Client/pom.xml
+++ b/Mage.Client/pom.xml
@@ -52,6 +52,11 @@
google-collections
1.0
+
+ org.swinglabs
+ swingx
+ 1.6.1
+
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 bd74a319dd7..ccd9800c602 100644
--- a/Mage.Client/src/main/java/mage/client/cards/BigCard.java
+++ b/Mage.Client/src/main/java/mage/client/cards/BigCard.java
@@ -34,15 +34,24 @@
package mage.client.cards;
+import static mage.constants.Constants.CONTENT_MAX_XOFFSET;
+import static mage.constants.Constants.FRAME_MAX_HEIGHT;
+import static mage.constants.Constants.FRAME_MAX_WIDTH;
+import static mage.constants.Constants.TEXT_MAX_HEIGHT;
+import static mage.constants.Constants.TEXT_MAX_WIDTH;
+import static mage.constants.Constants.TEXT_MAX_YOFFSET;
+
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Rectangle;
import java.util.List;
import java.util.UUID;
+
import javax.swing.text.BadLocationException;
import javax.swing.text.StyledDocument;
-import static mage.constants.Constants.*;
+
+import org.jdesktop.swingx.JXPanel;
/**
*
@@ -52,6 +61,7 @@ public class BigCard extends javax.swing.JPanel {
protected Image bigImage;
protected UUID cardId;
+ protected JXPanel panel;
public BigCard() {
initComponents();
@@ -59,6 +69,7 @@ public class BigCard extends javax.swing.JPanel {
public void setCard(UUID cardId, Image image, List strings) {
if (this.cardId == null || !this.cardId.equals(cardId)) {
+ if (this.panel != null) remove(this.panel);
this.cardId = cardId;
bigImage = image;
this.repaint();
@@ -101,6 +112,16 @@ public class BigCard extends javax.swing.JPanel {
this.scrollPane.setVisible(true);
}
+ public void addJXPanel(UUID cardId, JXPanel jxPanel) {
+ bigImage = null;
+ synchronized (this) {
+ if (this.panel != null) remove(this.panel);
+ this.panel = jxPanel;
+ add(jxPanel);
+ }
+ this.repaint();
+ }
+
/** This method is called from within the constructor to
* initialize the form.
diff --git a/Mage.Client/src/main/java/mage/client/plugins/adapters/MageMouseMotionAdapter.java b/Mage.Client/src/main/java/mage/client/plugins/adapters/MageMouseMotionAdapter.java
index 5fa66ace333..c3bb5711a50 100644
--- a/Mage.Client/src/main/java/mage/client/plugins/adapters/MageMouseMotionAdapter.java
+++ b/Mage.Client/src/main/java/mage/client/plugins/adapters/MageMouseMotionAdapter.java
@@ -10,6 +10,9 @@ import mage.cards.MagePermanent;
import mage.client.cards.BigCard;
import mage.client.plugins.impl.Plugins;
import mage.client.util.ImageHelper;
+import mage.client.util.gui.GuiDisplayUtil;
+
+import org.jdesktop.swingx.JXPanel;
public class MageMouseMotionAdapter extends MouseMotionAdapter {
@@ -35,7 +38,12 @@ public class MageMouseMotionAdapter extends MouseMotionAdapter {
bigCard.setCard(card.getOriginal().getId(), image, card.getOriginal().getRules());
bigCard.hideTextComponent();
} else {
- //TODO: add description panel
+ if (card.getOriginal().getId() != bigCard.getCardId()) {
+ JXPanel panel = GuiDisplayUtil.getDescription(card.getOriginal(), bigCard.getWidth(), bigCard.getHeight());
+ panel.setVisible(true);
+ bigCard.hideTextComponent();
+ bigCard.addJXPanel(card.getOriginal().getId(), panel);
+ }
}
}
}
diff --git a/Mage.Plugins/Mage.Card.Plugin/src/main/java/org/mage/plugins/card/images/ImageCache.java b/Mage.Plugins/Mage.Card.Plugin/src/main/java/org/mage/plugins/card/images/ImageCache.java
index da40de5f3c5..e75c4922fe3 100644
--- a/Mage.Plugins/Mage.Card.Plugin/src/main/java/org/mage/plugins/card/images/ImageCache.java
+++ b/Mage.Plugins/Mage.Card.Plugin/src/main/java/org/mage/plugins/card/images/ImageCache.java
@@ -144,6 +144,10 @@ public class ImageCache {
* Returns an image scaled to the size given
*/
public static BufferedImage getNormalSizeImage(BufferedImage original) {
+ if (original == null) {
+ return null;
+ }
+
int srcWidth = original.getWidth();
int srcHeight = original.getHeight();