package magic.ui.screen.deck;
import magic.data.MagicIcon;
import magic.model.MagicCardDefinition;
import magic.model.MagicDeck;
import magic.translate.MText;
import magic.ui.ScreenController;
import magic.ui.screen.HeaderFooterScreen;
import magic.ui.screen.widget.MenuButton;
import magic.ui.widget.deck.DeckStatusPanel;
@SuppressWarnings("serial")
public class DeckScreen extends HeaderFooterScreen {
// translatable strings
private static final String _S2 = "Sample Hand";
private static final String _S3 = "See what kind of Hand you might be dealt from this deck.";
private static final String _S4 = "A deck with a minimum of 7 cards is required first.";
private static final String _S5 = "Deck View";
private static final String _S6 = "Shows complete deck using tiled card images.";
private static final String _S7 = "Deck is empty! Nothing to show.";
private static final String _S8 = "Deck";
private DeckScreenPanel screenContent;
private final DeckStatusPanel deckStatusPanel = new DeckStatusPanel();
private DeckScreen(MagicDeck deck, MagicCardDefinition selectedCard, String title) {
super(title);
screenContent = new DeckScreenPanel(deck, selectedCard);
setMainContent(screenContent);
setHeaderContent(deckStatusPanel);
addToFooter(
MenuButton.build(this::showSampleHand, MagicIcon.HAND_ICON, MText.get(_S2), MText.get(_S3)),
MenuButton.build(this::showDeckImageView,MagicIcon.TILED, MText.get(_S5), MText.get(_S6))
);
deckStatusPanel.setDeck(deck, false);
}
public DeckScreen(final MagicDeck deck, final MagicCardDefinition selectedCard) {
this(deck, selectedCard, MText.get(_S8));
}
public DeckScreen(MagicDeck deck, String title) {
this(deck, null, title);
}
private void showSampleHand() {
if (screenContent.getDeck().size() >= 7) {
ScreenController.showSampleHandScreen(screenContent.getDeck());
} else {
showInvalidActionMessage(MText.get(_S4));
}
}
private void showDeckImageView() {
if (screenContent.getDeck().size() > 0) {
ScreenController.showDeckTiledCardsScreen(screenContent.getDeck());
} else {
showInvalidActionMessage(MText.get(_S7));
}
}
private void showInvalidActionMessage(final String message) {
ScreenController.showWarningMessage(message);
}
}