Fix so hovering cards in FDeckViewer shows Details/Picture in dialog as expected

This commit is contained in:
drdev
2014-02-04 03:50:00 +00:00
parent 038418ca0d
commit 1d1950d3cb
4 changed files with 29 additions and 5 deletions

View File

@@ -25,7 +25,9 @@ import forge.gui.toolbox.FButton;
import forge.gui.toolbox.FOptionPane;
import forge.gui.toolbox.itemmanager.CardManager;
import forge.gui.toolbox.itemmanager.ItemManagerContainer;
import forge.gui.toolbox.itemmanager.ItemManagerModel;
import forge.gui.toolbox.itemmanager.views.GroupDef;
import forge.gui.toolbox.itemmanager.views.ImageView;
import forge.gui.toolbox.itemmanager.views.ItemColumn;
import forge.gui.toolbox.itemmanager.views.SColumnUtil;
import forge.gui.toolbox.itemmanager.views.ColumnDef;
@@ -56,7 +58,21 @@ public class FDeckViewer extends FDialog {
private FDeckViewer(Deck deck0) {
this.deck = deck0;
this.setTitle(deck.getName());
this.cardManager = new CardManager(false);
this.cardManager = new CardManager(false) {
@Override //show hovered card in Image View in dialog instead of main Detail/Picture panes
protected ImageView<PaperCard> createImageView(final ItemManagerModel<PaperCard> model0) {
return new ImageView<PaperCard>(this, model0) {
@Override
protected void showHoveredItem(PaperCard item) {
Card card = Card.getCardForUi(item);
if (card == null) { return; }
cardDetail.setCard(card);
cardPicture.setCard(card);
}
};
}
};
this.cardManager.setPool(deck.getMain());
this.cardManager.addSelectionListener(new ListSelectionListener() {
@Override

View File

@@ -27,7 +27,7 @@ import forge.quest.QuestWorld;
*
*/
@SuppressWarnings("serial")
public final class CardManager extends ItemManager<PaperCard> {
public class CardManager extends ItemManager<PaperCard> {
public CardManager(boolean wantUnique0) {
super(PaperCard.class, wantUnique0);
}

View File

@@ -139,13 +139,17 @@ public abstract class ItemManager<T extends InventoryItem> extends JPanel {
this.model = new ItemManagerModel<T>(genericType0);
this.listView = new ItemListView<T>(this, this.model);
this.imageView = new ImageView<T>(this, this.model);
this.imageView = createImageView(this.model);
this.views.add(this.listView);
this.views.add(this.imageView);
this.currentView = this.listView;
}
protected ImageView<T> createImageView(final ItemManagerModel<T> model0) {
return new ImageView<T>(this, model0);
}
/**
* Initialize item manager if needed
*/

View File

@@ -356,12 +356,16 @@ public class ImageView<T extends InventoryItem> extends ItemView<T> {
if (hoveredItem == item) { return false; }
hoveredItem = item;
if (item != null) {
CDetail.SINGLETON_INSTANCE.showCard(item.item);
CPicture.SINGLETON_INSTANCE.showImage(item.item);
showHoveredItem(item.item);
}
return true;
}
protected void showHoveredItem(T item) {
CDetail.SINGLETON_INSTANCE.showCard(item);
CPicture.SINGLETON_INSTANCE.showImage(item);
}
@Override
public JComponent getComponent() {
return display;