From 2abc0e888d97978420d81b9cd1f40ebad43ac731 Mon Sep 17 00:00:00 2001 From: magenoxx Date: Sat, 29 Jan 2011 20:03:22 +0300 Subject: [PATCH] Reduced hand cards size. Removed battlefield card area gap (cards now have more place and are less reduced in size). --- Mage.Client/plugins/mage-card-plugin.jar | Bin 308483 -> 308416 bytes .../main/java/mage/client/cards/BigCard.java | 3 +++ .../main/java/mage/client/cards/CardGrid.java | 6 ++++- .../main/java/mage/client/cards/Cards.java | 23 ++++++++++++++---- .../java/mage/client/cards/CardsList.java | 6 ++++- .../java/mage/client/cards/DraftGrid.java | 7 ++++-- .../collection/viewer/MageBook.java | 7 +++++- .../mage/client/dialog/ShowCardsDialog.java | 12 +++++---- .../mage/client/game/BattlefieldPanel.java | 6 ++++- .../main/java/mage/client/game/GamePanel.java | 14 +++++++---- .../java/mage/client/plugins/MagePlugins.java | 6 ++--- .../mage/client/plugins/impl/Plugins.java | 6 ++--- .../client/util/gui/BufferedImageBuilder.java | 3 +++ .../mage/interfaces/plugin/CardPlugin.java | 6 ++--- .../org/mage/plugins/card/CardPluginImpl.java | 12 ++++----- 15 files changed, 81 insertions(+), 36 deletions(-) diff --git a/Mage.Client/plugins/mage-card-plugin.jar b/Mage.Client/plugins/mage-card-plugin.jar index 65ec83b86a59a1fa2fafb6f5bc9edb2849f5d21a..814d0a671596f236bdef829ab63abdf973b77755 100644 GIT binary patch delta 13951 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 F{{Vs7iDLi& 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 b01826114f4..477aa2f8ed5 100644 --- a/Mage.Client/src/main/java/mage/client/cards/BigCard.java +++ b/Mage.Client/src/main/java/mage/client/cards/BigCard.java @@ -208,6 +208,9 @@ public class BigCard extends JComponent { if (source == null) { source = BufferedImageBuilder.bufferImage(bigImage); } + if (source == null) { + return; + } f = filter.filter(source, null); } synchronized (BigCard.class) { diff --git a/Mage.Client/src/main/java/mage/client/cards/CardGrid.java b/Mage.Client/src/main/java/mage/client/cards/CardGrid.java index 1f6bd127a21..619160c565d 100644 --- a/Mage.Client/src/main/java/mage/client/cards/CardGrid.java +++ b/Mage.Client/src/main/java/mage/client/cards/CardGrid.java @@ -67,6 +67,7 @@ public class CardGrid extends javax.swing.JLayeredPane implements MouseListener protected BigCard bigCard; protected UUID gameId; private Map cards = new HashMap(); + private Dimension cardDimension; public CardGrid() { initComponents(); @@ -93,7 +94,10 @@ public class CardGrid extends javax.swing.JLayeredPane implements MouseListener } private void addCard(CardView card, BigCard bigCard, UUID gameId) { - MageCard cardImg = Plugins.getInstance().getMageCard(card, bigCard, Config.dimensions, gameId, true); + if (cardDimension == null) { + cardDimension = new Dimension(Config.dimensions.frameWidth, Config.dimensions.frameHeight); + } + MageCard cardImg = Plugins.getInstance().getMageCard(card, bigCard, cardDimension, gameId, true); cards.put(card.getId(), cardImg); cardImg.addMouseListener(this); add(cardImg); diff --git a/Mage.Client/src/main/java/mage/client/cards/Cards.java b/Mage.Client/src/main/java/mage/client/cards/Cards.java index 0e9492eebe2..69a838394a5 100644 --- a/Mage.Client/src/main/java/mage/client/cards/Cards.java +++ b/Mage.Client/src/main/java/mage/client/cards/Cards.java @@ -65,6 +65,8 @@ public class Cards extends javax.swing.JPanel { private boolean dontDisplayTapped = false; private static final int GAP_X = 5; + private Dimension cardDimension; + /** Creates new form Cards */ public Cards() { this(false); @@ -125,7 +127,7 @@ public class Cards extends javax.swing.JPanel { } if (changed) { - layoutCards(Config.dimensions); + layoutCards(getCardDimension()); } cardArea.setPreferredSize(new Dimension(cards.size() * (Config.dimensions.frameWidth + GAP_X), Config.dimensions.frameHeight)); @@ -137,8 +139,15 @@ public class Cards extends javax.swing.JPanel { return changed; } + private Dimension getCardDimension() { + if (cardDimension == null) { + cardDimension = new Dimension(Config.dimensions.frameWidth, Config.dimensions.frameHeight); + } + return cardDimension; + } + private void addCard(CardView card, BigCard bigCard, UUID gameId) { - MageCard cardImg = Plugins.getInstance().getMageCard(card, bigCard, Config.dimensions, gameId, true); + MageCard cardImg = Plugins.getInstance().getMageCard(card, bigCard, getCardDimension(), gameId, true); cards.put(card.getId(), cardImg); cardArea.add(cardImg); } @@ -157,13 +166,13 @@ public class Cards extends javax.swing.JPanel { } } - private void layoutCards(CardDimensions dimension) { + private void layoutCards(Dimension dimension) { if (Plugins.getInstance().isCardPluginLoaded()) { int dx = 0; for (MageCard card: cards.values()) { card.setLocation(dx, 0); - card.setCardBounds(dx, 0, dimension.frameWidth, dimension.frameHeight); - dx += dimension.frameWidth + GAP_X; + card.setCardBounds(dx, 0, dimension.width, dimension.height); + dx += dimension.width + GAP_X; } } } @@ -213,4 +222,8 @@ public class Cards extends javax.swing.JPanel { jScrollPane1.getVerticalScrollBar().setUnitIncrement(unitIncrement); } } + + public void setCardDimension(Dimension dimension) { + this.cardDimension = dimension; + } } diff --git a/Mage.Client/src/main/java/mage/client/cards/CardsList.java b/Mage.Client/src/main/java/mage/client/cards/CardsList.java index 6aa6b0cd43b..69510a22526 100644 --- a/Mage.Client/src/main/java/mage/client/cards/CardsList.java +++ b/Mage.Client/src/main/java/mage/client/cards/CardsList.java @@ -60,6 +60,7 @@ import mage.view.CardsView; public class CardsList extends javax.swing.JPanel implements MouseListener { protected CardEventSource cardEventSource = new CardEventSource(); + private Dimension cardDimension; /** Creates new form Cards */ public CardsList() { @@ -101,7 +102,10 @@ public class CardsList extends javax.swing.JPanel implements MouseListener { } private void addCard(CardView card, BigCard bigCard, UUID gameId, Rectangle rectangle) { - MageCard cardImg = Plugins.getInstance().getMageCard(card, bigCard, Config.dimensions, gameId, true); + if (cardDimension == null) { + cardDimension = new Dimension(Config.dimensions.frameWidth, Config.dimensions.frameHeight); + } + MageCard cardImg = Plugins.getInstance().getMageCard(card, bigCard, cardDimension, gameId, true); cardImg.setBounds(rectangle); cardArea.add(cardImg); cardArea.moveToFront(cardImg); diff --git a/Mage.Client/src/main/java/mage/client/cards/DraftGrid.java b/Mage.Client/src/main/java/mage/client/cards/DraftGrid.java index 9e7e300c782..89d889cd217 100644 --- a/Mage.Client/src/main/java/mage/client/cards/DraftGrid.java +++ b/Mage.Client/src/main/java/mage/client/cards/DraftGrid.java @@ -11,10 +11,12 @@ package mage.client.cards; -import java.awt.Rectangle; +import java.awt.*; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.util.UUID; + +import mage.cards.CardDimensions; import mage.cards.MageCard; import mage.client.MageFrame; import mage.client.plugins.impl.Plugins; @@ -45,8 +47,9 @@ public class DraftGrid extends javax.swing.JPanel implements MouseListener { int curColumn = 0; int curRow = 0; Rectangle rectangle = new Rectangle(Config.dimensions.frameWidth, Config.dimensions.frameHeight); + Dimension dimension = new Dimension(Config.dimensions.frameWidth, Config.dimensions.frameHeight); for (CardView card: booster.values()) { - MageCard cardImg = Plugins.getInstance().getMageCard(card, bigCard, Config.dimensions, null, false); + MageCard cardImg = Plugins.getInstance().getMageCard(card, bigCard, dimension, null, false); cardImg.addMouseListener(this); add(cardImg); cardImg.update(card); diff --git a/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/MageBook.java b/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/MageBook.java index af0e1f45f82..0e211202784 100644 --- a/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/MageBook.java +++ b/Mage.Client/src/main/java/mage/client/deckeditor/collection/viewer/MageBook.java @@ -39,6 +39,7 @@ import mage.client.components.arcane.ManaSymbols; import mage.client.plugins.impl.Plugins; import mage.client.util.AudioManager; import mage.client.util.Command; +import mage.client.util.Config; import mage.client.util.ImageHelper; import mage.components.ImagePanel; import mage.view.CardView; @@ -212,7 +213,10 @@ public class MageBook extends JComponent { } private void addCard(CardView card, BigCard bigCard, UUID gameId, Rectangle rectangle) { - final MageCard cardImg = Plugins.getInstance().getMageCard(card, bigCard, cardDimensions, gameId, false); + if (cardDimension == null) { + cardDimension = new Dimension(Config.dimensions.frameWidth, Config.dimensions.frameHeight); + } + final MageCard cardImg = Plugins.getInstance().getMageCard(card, bigCard, cardDimension, gameId, false); cardImg.setBounds(rectangle); jLayeredPane.add(cardImg, JLayeredPane.DEFAULT_LAYER, 10); cardImg.update(card); @@ -296,6 +300,7 @@ public class MageBook extends JComponent { private static CardDimensions cardDimensions = new CardDimensions(1.2d); private static Font font = new Font("Arial", Font.PLAIN, 14); private static final Logger log = Logger.getLogger(MageBook.class); + private Dimension cardDimension; static private final String CENTER_PANEL_IMAGE_PATH = "/book_bg.jpg"; static private final String RIGHT_PANEL_IMAGE_PATH = "/book_right.jpg"; diff --git a/Mage.Client/src/main/java/mage/client/dialog/ShowCardsDialog.java b/Mage.Client/src/main/java/mage/client/dialog/ShowCardsDialog.java index a633f9e1c9d..6b0c80bf476 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/ShowCardsDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/ShowCardsDialog.java @@ -71,9 +71,9 @@ public class ShowCardsDialog extends MageDialog implements MouseListener { this.title = name; cardArea.removeAll(); if (showCards != null && showCards.size() < 10) - loadCardsFew(showCards, bigCard, dimension, gameId); + loadCardsFew(showCards, bigCard, gameId); else - loadCardsMany(showCards, bigCard, dimension, gameId); + loadCardsMany(showCards, bigCard, gameId); cardArea.revalidate(); if (getParent() != MageFrame.getDesktop() /*|| this.isClosed*/) { MageFrame.getDesktop().add(this, JLayeredPane.POPUP_LAYER); @@ -85,8 +85,9 @@ public class ShowCardsDialog extends MageDialog implements MouseListener { this.setVisible(true); } - private void loadCardsFew(CardsView showCards, BigCard bigCard, CardDimensions dimension, UUID gameId) { + private void loadCardsFew(CardsView showCards, BigCard bigCard, UUID gameId) { Rectangle rectangle = new Rectangle(Config.dimensions.frameWidth, Config.dimensions.frameHeight); + Dimension dimension = new Dimension(Config.dimensions.frameWidth, Config.dimensions.frameHeight); for (CardView card: showCards.values()) { addCard(card, bigCard, gameId, rectangle, dimension); rectangle.translate(Config.dimensions.frameWidth, 0); @@ -94,7 +95,7 @@ public class ShowCardsDialog extends MageDialog implements MouseListener { cardArea.setPreferredSize(new Dimension(Config.dimensions.frameWidth * showCards.size(), Config.dimensions.frameHeight)); } - private void addCard(CardView card, BigCard bigCard, UUID gameId, Rectangle rectangle, CardDimensions dimension) { + private void addCard(CardView card, BigCard bigCard, UUID gameId, Rectangle rectangle, Dimension dimension) { if (card instanceof AbilityView) { CardView tmp = ((AbilityView)card).getSourceCard(); tmp.overrideRules(card.getRules()); @@ -112,10 +113,11 @@ public class ShowCardsDialog extends MageDialog implements MouseListener { cardImg.setCardBounds(rectangle.x, rectangle.y, Config.dimensions.frameWidth, Config.dimensions.frameHeight); } - private void loadCardsMany(CardsView showCards, BigCard bigCard, CardDimensions dimension, UUID gameId) { + private void loadCardsMany(CardsView showCards, BigCard bigCard, UUID gameId) { int columns = 1; if (showCards != null && showCards.size() > 0) { Rectangle rectangle = new Rectangle(Config.dimensions.frameWidth, Config.dimensions.frameHeight); + Dimension dimension = new Dimension(Config.dimensions.frameWidth, Config.dimensions.frameHeight); int count = 0; for (CardView card: showCards.values()) { addCard(card, bigCard, gameId, rectangle, dimension); diff --git a/Mage.Client/src/main/java/mage/client/game/BattlefieldPanel.java b/Mage.Client/src/main/java/mage/client/game/BattlefieldPanel.java index 0a2e397cbe9..896b98b47d2 100644 --- a/Mage.Client/src/main/java/mage/client/game/BattlefieldPanel.java +++ b/Mage.Client/src/main/java/mage/client/game/BattlefieldPanel.java @@ -73,6 +73,7 @@ public class BattlefieldPanel extends javax.swing.JLayeredPane { protected static Map battlefield; protected static List threads = new ArrayList(); + private static Dimension cardDimension; /** Creates new form BattlefieldPanel */ public BattlefieldPanel(JScrollPane jScrollPane) { @@ -154,7 +155,10 @@ public class BattlefieldPanel extends javax.swing.JLayeredPane { } private void addPermanent(PermanentView permanent, final int count) { - final MagePermanent perm = Plugins.getInstance().getMagePermanent(permanent, bigCard, Config.dimensions, gameId, true); + if (cardDimension == null) { + cardDimension = new Dimension(Config.dimensions.frameWidth, Config.dimensions.frameHeight); + } + final MagePermanent perm = Plugins.getInstance().getMagePermanent(permanent, bigCard, cardDimension, gameId, true); if (!Plugins.getInstance().isCardPluginLoaded()) { perm.setBounds(findEmptySpace(new Dimension(Config.dimensions.frameWidth, Config.dimensions.frameHeight))); } else { 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 e4597f5f542..73b687819f7 100644 --- a/Mage.Client/src/main/java/mage/client/game/GamePanel.java +++ b/Mage.Client/src/main/java/mage/client/game/GamePanel.java @@ -88,6 +88,8 @@ public class GamePanel extends javax.swing.JPanel { private UUID playerId; private Session session; + private static final Dimension handCardDimension = new Dimension(75, (int)(75 * 3.5f / 2.5f)); + /** Creates new form GamePanel */ public GamePanel() { initComponents(); @@ -289,7 +291,7 @@ public class GamePanel extends javax.swing.JPanel { } else { this.hand.loadCards(game.getHand(), bigCard, gameId); int count = game.getHand().size(); - hand.setPreferredSize(new java.awt.Dimension((Config.dimensions.frameWidth + 5) * count + 5, Config.dimensions.frameHeight + 20)); // for scroll + hand.setPreferredSize(new java.awt.Dimension((handCardDimension.width + 5) * count + 5, handCardDimension.height + 20)); // for scroll } if (game.getPhase() != null) this.txtPhase.setText(game.getPhase().toString()); @@ -381,9 +383,9 @@ public class GamePanel extends javax.swing.JPanel { return JOptionPane.showConfirmDialog(this, message, title, JOptionPane.YES_NO_OPTION); } - public JPanel getHand() { + /*public JPanel getHand() { return hand; - } + }*/ public void select(String message, GameView gameView) { updateGame(gameView); @@ -439,9 +441,9 @@ public class GamePanel extends javax.swing.JPanel { return players; } - public javax.swing.JPanel getBattlefield() { + /*public javax.swing.JPanel getBattlefield() { return pnlBattlefield; - } + }*/ /** This method is called from within the constructor to * initialize the form. @@ -480,6 +482,8 @@ public class GamePanel extends javax.swing.JPanel { hand = new mage.client.cards.Cards(true); chatPanel = new mage.client.chat.ChatPanel(); + hand.setCardDimension(handCardDimension); + jSplitPane1.setBorder(null); jSplitPane1.setDividerSize(7); jSplitPane1.setResizeWeight(1.0); diff --git a/Mage.Client/src/main/java/mage/client/plugins/MagePlugins.java b/Mage.Client/src/main/java/mage/client/plugins/MagePlugins.java index 73187686080..2fc7d5f8b28 100644 --- a/Mage.Client/src/main/java/mage/client/plugins/MagePlugins.java +++ b/Mage.Client/src/main/java/mage/client/plugins/MagePlugins.java @@ -1,6 +1,6 @@ package mage.client.plugins; -import java.awt.Image; +import java.awt.*; import java.util.Collection; import java.util.Map; import java.util.Set; @@ -21,8 +21,8 @@ public interface MagePlugins { void shutdown(); void updateGamePanel(Map ui); JComponent updateTablePanel(Map ui); - MagePermanent getMagePermanent(PermanentView card, BigCard bigCard, CardDimensions dimension, UUID gameId, boolean canBeFoil); - MageCard getMageCard(CardView card, BigCard bigCard, CardDimensions dimension, UUID gameId, boolean canBeFoil); + MagePermanent getMagePermanent(PermanentView card, BigCard bigCard, Dimension dimension, UUID gameId, boolean canBeFoil); + MageCard getMageCard(CardView card, BigCard bigCard, Dimension dimension, UUID gameId, boolean canBeFoil); boolean isThemePluginLoaded(); boolean isCardPluginLoaded(); boolean isCounterPluginLoaded(); diff --git a/Mage.Client/src/main/java/mage/client/plugins/impl/Plugins.java b/Mage.Client/src/main/java/mage/client/plugins/impl/Plugins.java index b8e4869957b..7223ecbbc07 100644 --- a/Mage.Client/src/main/java/mage/client/plugins/impl/Plugins.java +++ b/Mage.Client/src/main/java/mage/client/plugins/impl/Plugins.java @@ -1,6 +1,6 @@ package mage.client.plugins.impl; -import java.awt.Image; +import java.awt.*; import java.io.File; import java.util.Collection; import java.util.Map; @@ -80,7 +80,7 @@ public class Plugins implements MagePlugins { } @Override - public MagePermanent getMagePermanent(PermanentView card, BigCard bigCard, CardDimensions dimension, UUID gameId, boolean canBeFoil) { + public MagePermanent getMagePermanent(PermanentView card, BigCard bigCard, Dimension dimension, UUID gameId, boolean canBeFoil) { if (cardPlugin != null) { mageActionCallback.refreshSession(); mageActionCallback.setCardPreviewComponent(bigCard); @@ -91,7 +91,7 @@ public class Plugins implements MagePlugins { } @Override - public MageCard getMageCard(CardView card, BigCard bigCard, CardDimensions dimension, UUID gameId, boolean canBeFoil) { + public MageCard getMageCard(CardView card, BigCard bigCard, Dimension dimension, UUID gameId, boolean canBeFoil) { if (cardPlugin != null) { mageActionCallback.refreshSession(); mageActionCallback.setCardPreviewComponent(bigCard); diff --git a/Mage.Client/src/main/java/mage/client/util/gui/BufferedImageBuilder.java b/Mage.Client/src/main/java/mage/client/util/gui/BufferedImageBuilder.java index cea78531bab..07d1bfdf431 100644 --- a/Mage.Client/src/main/java/mage/client/util/gui/BufferedImageBuilder.java +++ b/Mage.Client/src/main/java/mage/client/util/gui/BufferedImageBuilder.java @@ -25,6 +25,9 @@ public class BufferedImageBuilder { } public static BufferedImage bufferImage(Image image, int type) { + if (image == null) { + return null; + } BufferedImage bufferedImage = new BufferedImage(image.getWidth(null), image.getHeight(null), type); Graphics2D g = bufferedImage.createGraphics(); g.drawImage(image, null, null); diff --git a/Mage.Common/src/mage/interfaces/plugin/CardPlugin.java b/Mage.Common/src/mage/interfaces/plugin/CardPlugin.java index 05818cd70c6..d7103cd18a1 100644 --- a/Mage.Common/src/mage/interfaces/plugin/CardPlugin.java +++ b/Mage.Common/src/mage/interfaces/plugin/CardPlugin.java @@ -1,6 +1,6 @@ package mage.interfaces.plugin; -import java.awt.Image; +import java.awt.*; import java.util.Collection; import java.util.Map; import java.util.Set; @@ -25,8 +25,8 @@ import net.xeoh.plugins.base.Plugin; * @author nantuko */ public interface CardPlugin extends Plugin { - MagePermanent getMagePermanent(PermanentView permanent, CardDimensions dimension, UUID gameId, ActionCallback callback, boolean canBeFoil); - MagePermanent getMageCard(CardView permanent, CardDimensions dimension, UUID gameId, ActionCallback callback, boolean canBeFoil); + MagePermanent getMagePermanent(PermanentView permanent, Dimension dimension, UUID gameId, ActionCallback callback, boolean canBeFoil); + MagePermanent getMageCard(CardView permanent, Dimension dimension, UUID gameId, ActionCallback callback, boolean canBeFoil); void sortPermanents(Map ui, Collection cards); void downloadImages(Set allCards); void downloadSymbols(); diff --git a/Mage.Plugins/Mage.Card.Plugin/src/main/java/org/mage/plugins/card/CardPluginImpl.java b/Mage.Plugins/Mage.Card.Plugin/src/main/java/org/mage/plugins/card/CardPluginImpl.java index 54f147f54d7..3c27f2cf8d1 100644 --- a/Mage.Plugins/Mage.Card.Plugin/src/main/java/org/mage/plugins/card/CardPluginImpl.java +++ b/Mage.Plugins/Mage.Card.Plugin/src/main/java/org/mage/plugins/card/CardPluginImpl.java @@ -50,7 +50,7 @@ public class CardPluginImpl implements CardPlugin { static private final float CARD_SPACING_Y = 0.03f; static private final float STACK_SPACING_X = 0.07f; static private final float STACK_SPACING_Y = 0.13f; - static private final int MW_GUIDE_HEIGHT = 30; + //static private final int MW_GUIDE_HEIGHT = 30; private int landStackMax = 5; private int cardWidthMin = 50, cardWidthMax = Constants.CARD_SIZE_FULL.width; @@ -77,20 +77,20 @@ public class CardPluginImpl implements CardPlugin { } @Override - public MagePermanent getMagePermanent(PermanentView permanent, CardDimensions dimension, UUID gameId, ActionCallback callback, boolean canBeFoil) { + public MagePermanent getMagePermanent(PermanentView permanent, Dimension dimension, UUID gameId, ActionCallback callback, boolean canBeFoil) { boolean foil = canBeFoil && (new Random()).nextInt(5) == 0; CardPanel cardPanel = new CardPanel(permanent, gameId, true, callback, foil); - cardPanel.setCardBounds(0, 0, dimension.frameWidth, dimension.frameHeight); + cardPanel.setCardBounds(0, 0, dimension.width, dimension.height); boolean implemented = !permanent.getRarity().equals(mage.Constants.Rarity.NA); cardPanel.setShowCastingCost(implemented); return cardPanel; } @Override - public MagePermanent getMageCard(CardView permanent, CardDimensions dimension, UUID gameId, ActionCallback callback, boolean canBeFoil) { + public MagePermanent getMageCard(CardView permanent, Dimension dimension, UUID gameId, ActionCallback callback, boolean canBeFoil) { boolean foil = canBeFoil && (new Random()).nextInt(5) == 0; CardPanel cardPanel = new CardPanel(permanent, gameId, true, callback, foil); - cardPanel.setCardBounds(0, 0, dimension.frameWidth, dimension.frameHeight); + cardPanel.setCardBounds(0, 0, dimension.width, dimension.height); boolean implemented = !permanent.getRarity().equals(mage.Constants.Rarity.NA); cardPanel.setShowCastingCost(implemented); return cardPanel; @@ -158,7 +158,7 @@ public class CardPluginImpl implements CardPlugin { cardWidth = cardWidthMax; Rectangle rect = jScrollPane.getVisibleRect(); playAreaWidth = rect.width; - playAreaHeight = rect.height - MW_GUIDE_HEIGHT; + playAreaHeight = rect.height; while (true) { rows.clear(); cardHeight = Math.round(cardWidth * CardPanel.ASPECT_RATIO);