From 299e69826b7981671a025ed06b142b427df439de Mon Sep 17 00:00:00 2001 From: Maxmtg Date: Sun, 24 Feb 2013 08:49:52 +0000 Subject: [PATCH] Deckeditor-related classes operate with paper cards. CDetail and CPicture convert paper cards to in-game card by themselves if possible & if needed --- .../forge/gui/deckeditor/CDeckEditorUI.java | 8 ------ .../deckeditor/tables/EditorTableModel.java | 15 +---------- .../gui/deckeditor/views/VProbabilities.java | 2 +- .../forge/gui/match/controllers/CDetail.java | 25 +++++++++++++------ .../forge/gui/match/controllers/CPicture.java | 6 +++++ 5 files changed, 26 insertions(+), 30 deletions(-) diff --git a/src/main/java/forge/gui/deckeditor/CDeckEditorUI.java b/src/main/java/forge/gui/deckeditor/CDeckEditorUI.java index 2bdd6b51bca..ac635ac726f 100644 --- a/src/main/java/forge/gui/deckeditor/CDeckEditorUI.java +++ b/src/main/java/forge/gui/deckeditor/CDeckEditorUI.java @@ -45,7 +45,6 @@ import org.apache.commons.lang.StringUtils; import com.google.common.primitives.Ints; -import forge.Card; import forge.deck.DeckBase; import forge.gui.GuiUtils; import forge.gui.deckeditor.SEditorIO.EditorPreference; @@ -80,13 +79,6 @@ public enum CDeckEditorUI { private CDeckEditorUI() { } - //========== Overridden from CardContainer - - public void setCard(final Card c) { - CDetail.SINGLETON_INSTANCE.showCard(c); - CPicture.SINGLETON_INSTANCE.showCard(c); - } - /** * Set Pack, for when Packs can be shown in the CardPicturePanel. * @param item diff --git a/src/main/java/forge/gui/deckeditor/tables/EditorTableModel.java b/src/main/java/forge/gui/deckeditor/tables/EditorTableModel.java index 2fb30180ad8..497b2a04966 100644 --- a/src/main/java/forge/gui/deckeditor/tables/EditorTableModel.java +++ b/src/main/java/forge/gui/deckeditor/tables/EditorTableModel.java @@ -42,13 +42,10 @@ import javax.swing.table.TableColumnModel; import org.apache.commons.lang3.ArrayUtils; -import forge.Card; import forge.gui.deckeditor.CDeckEditorUI; import forge.gui.deckeditor.SEditorIO; import forge.gui.deckeditor.tables.SColumnUtil.ColumnName; import forge.gui.deckeditor.tables.SColumnUtil.SortState; -import forge.item.CardPrinted; -import forge.item.IPaperCard; import forge.item.InventoryItem; import forge.item.ItemPool; import forge.item.ItemPoolView; @@ -193,17 +190,7 @@ public final class EditorTableModel extends AbstractTab final int row = table.getSelectedRow(); if (row != -1) { Entry card = this.rowToCard(row); - if (null != card) { - T cp = card.getKey(); - if (cp instanceof CardPrinted) { - CDeckEditorUI.SINGLETON_INSTANCE.setCard(((IPaperCard) cp).getMatchingForgeCard()); - } - else { - CDeckEditorUI.SINGLETON_INSTANCE.setCard(cp); - } - } else { - CDeckEditorUI.SINGLETON_INSTANCE.setCard((Card)null); - } + CDeckEditorUI.SINGLETON_INSTANCE.setCard(null != card ? card.getKey() : null); } } diff --git a/src/main/java/forge/gui/deckeditor/views/VProbabilities.java b/src/main/java/forge/gui/deckeditor/views/VProbabilities.java index 9d90ff59006..55f46871b1f 100644 --- a/src/main/java/forge/gui/deckeditor/views/VProbabilities.java +++ b/src/main/java/forge/gui/deckeditor/views/VProbabilities.java @@ -179,7 +179,7 @@ public enum VProbabilities implements IVDoc { if (name2.length() > name1.length()) { continue; } if (name2.equals(name1.substring(0, name2.length()))) { - CDeckEditorUI.SINGLETON_INSTANCE.setCard(c.getMatchingForgeCard()); + CDeckEditorUI.SINGLETON_INSTANCE.setCard(c); break; } } diff --git a/src/main/java/forge/gui/match/controllers/CDetail.java b/src/main/java/forge/gui/match/controllers/CDetail.java index dfc33a5a912..496efd221dd 100644 --- a/src/main/java/forge/gui/match/controllers/CDetail.java +++ b/src/main/java/forge/gui/match/controllers/CDetail.java @@ -24,6 +24,7 @@ import forge.Card; import forge.Command; import forge.gui.framework.ICDoc; import forge.gui.match.views.VDetail; +import forge.item.IPaperCard; import forge.item.InventoryItem; /** @@ -36,21 +37,31 @@ public enum CDetail implements ICDoc { /** */ SINGLETON_INSTANCE; + private VDetail view = VDetail.SINGLETON_INSTANCE; + //private InventoryItem item = null; + /** * Shows card details and/or picture in sidebar cardview tabber. * * @param c   Card object */ public void showCard(final Card c) { - VDetail.SINGLETON_INSTANCE.getLblFlipcard().setVisible(c != null && c.isDoubleFaced()); - VDetail.SINGLETON_INSTANCE.getPnlDetail().setCard(c); - VDetail.SINGLETON_INSTANCE.getParentCell().repaintSelf(); + view.getLblFlipcard().setVisible(c != null && c.isDoubleFaced()); + view.getPnlDetail().setCard(c); + view.getParentCell().repaintSelf(); } public void showCard(InventoryItem item) { - VDetail.SINGLETON_INSTANCE.getLblFlipcard().setVisible(false); - VDetail.SINGLETON_INSTANCE.getPnlDetail().setCard(null); - VDetail.SINGLETON_INSTANCE.getParentCell().repaintSelf(); + if ( item instanceof IPaperCard ) { + showCard(((IPaperCard)item).getMatchingForgeCard()); + return; + } + + // TODO If we want to display an Items Written Text in the Detail Panel we need to add something into CardDetailPanel + //this.item = item; + view.getLblFlipcard().setVisible(false); + view.getPnlDetail().setCard(null); + view.getParentCell().repaintSelf(); } /* (non-Javadoc) @@ -66,7 +77,7 @@ public enum CDetail implements ICDoc { */ @Override public void initialize() { - VDetail.SINGLETON_INSTANCE.getPnlDetail().addMouseListener(new MouseAdapter() { + view.getPnlDetail().addMouseListener(new MouseAdapter() { @Override public void mouseClicked(final MouseEvent e) { CPicture.SINGLETON_INSTANCE.flipCard(); diff --git a/src/main/java/forge/gui/match/controllers/CPicture.java b/src/main/java/forge/gui/match/controllers/CPicture.java index c156254b0b0..a12561bd433 100644 --- a/src/main/java/forge/gui/match/controllers/CPicture.java +++ b/src/main/java/forge/gui/match/controllers/CPicture.java @@ -24,6 +24,7 @@ import forge.CardCharacteristicName; import forge.Command; import forge.gui.framework.ICDoc; import forge.gui.match.views.VPicture; +import forge.item.IPaperCard; import forge.item.InventoryItem; /** @@ -53,6 +54,11 @@ public enum CPicture implements ICDoc { } public void showCard(final InventoryItem item) { + if ( item instanceof IPaperCard ) { + showCard(((IPaperCard)item).getMatchingForgeCard()); + return; + } + this.currentCard = null; VPicture.SINGLETON_INSTANCE.getLblFlipcard().setVisible(false); VPicture.SINGLETON_INSTANCE.getPnlPicture().setCard(item);