mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-20 04:38:00 +00:00
Fix so hovering cards in FDeckViewer shows Details/Picture in dialog as expected
This commit is contained in:
@@ -25,7 +25,9 @@ import forge.gui.toolbox.FButton;
|
|||||||
import forge.gui.toolbox.FOptionPane;
|
import forge.gui.toolbox.FOptionPane;
|
||||||
import forge.gui.toolbox.itemmanager.CardManager;
|
import forge.gui.toolbox.itemmanager.CardManager;
|
||||||
import forge.gui.toolbox.itemmanager.ItemManagerContainer;
|
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.GroupDef;
|
||||||
|
import forge.gui.toolbox.itemmanager.views.ImageView;
|
||||||
import forge.gui.toolbox.itemmanager.views.ItemColumn;
|
import forge.gui.toolbox.itemmanager.views.ItemColumn;
|
||||||
import forge.gui.toolbox.itemmanager.views.SColumnUtil;
|
import forge.gui.toolbox.itemmanager.views.SColumnUtil;
|
||||||
import forge.gui.toolbox.itemmanager.views.ColumnDef;
|
import forge.gui.toolbox.itemmanager.views.ColumnDef;
|
||||||
@@ -56,7 +58,21 @@ public class FDeckViewer extends FDialog {
|
|||||||
private FDeckViewer(Deck deck0) {
|
private FDeckViewer(Deck deck0) {
|
||||||
this.deck = deck0;
|
this.deck = deck0;
|
||||||
this.setTitle(deck.getName());
|
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.setPool(deck.getMain());
|
||||||
this.cardManager.addSelectionListener(new ListSelectionListener() {
|
this.cardManager.addSelectionListener(new ListSelectionListener() {
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ import forge.quest.QuestWorld;
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
@SuppressWarnings("serial")
|
@SuppressWarnings("serial")
|
||||||
public final class CardManager extends ItemManager<PaperCard> {
|
public class CardManager extends ItemManager<PaperCard> {
|
||||||
public CardManager(boolean wantUnique0) {
|
public CardManager(boolean wantUnique0) {
|
||||||
super(PaperCard.class, wantUnique0);
|
super(PaperCard.class, wantUnique0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -139,13 +139,17 @@ public abstract class ItemManager<T extends InventoryItem> extends JPanel {
|
|||||||
this.model = new ItemManagerModel<T>(genericType0);
|
this.model = new ItemManagerModel<T>(genericType0);
|
||||||
|
|
||||||
this.listView = new ItemListView<T>(this, this.model);
|
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.listView);
|
||||||
this.views.add(this.imageView);
|
this.views.add(this.imageView);
|
||||||
this.currentView = this.listView;
|
this.currentView = this.listView;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected ImageView<T> createImageView(final ItemManagerModel<T> model0) {
|
||||||
|
return new ImageView<T>(this, model0);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Initialize item manager if needed
|
* Initialize item manager if needed
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -356,12 +356,16 @@ public class ImageView<T extends InventoryItem> extends ItemView<T> {
|
|||||||
if (hoveredItem == item) { return false; }
|
if (hoveredItem == item) { return false; }
|
||||||
hoveredItem = item;
|
hoveredItem = item;
|
||||||
if (item != null) {
|
if (item != null) {
|
||||||
CDetail.SINGLETON_INSTANCE.showCard(item.item);
|
showHoveredItem(item.item);
|
||||||
CPicture.SINGLETON_INSTANCE.showImage(item.item);
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void showHoveredItem(T item) {
|
||||||
|
CDetail.SINGLETON_INSTANCE.showCard(item);
|
||||||
|
CPicture.SINGLETON_INSTANCE.showImage(item);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public JComponent getComponent() {
|
public JComponent getComponent() {
|
||||||
return display;
|
return display;
|
||||||
|
|||||||
Reference in New Issue
Block a user