package magic.ui.widget.deck;
import java.awt.Color;
import java.awt.Font;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import magic.model.MagicDeck;
import magic.translate.MText;
import net.miginfocom.swing.MigLayout;
@SuppressWarnings("serial")
public class DeckStatusPanel extends JPanel {
// translatable strings
private static final String _S1 = "%d cards";
private final JLabel deckNameLabel = new JLabel();
private final JLabel deckSizeLabel = new JLabel();
public DeckStatusPanel(final MagicDeck deck) {
setLookAndFeel();
setDeck(deck, false);
}
public DeckStatusPanel() {
setLookAndFeel();
}
public void setDeck(final MagicDeck deck, final boolean showDeckSize) {
if (deck != null) {
deckNameLabel.setText(deck.getName());
deckSizeLabel.setText(showDeckSize
? MText.get(_S1, deck.size())
: deck.isUnsaved() ? "[ UNSAVED ]" : deck.getDeckType().toString()
);
} else {
deckNameLabel.setText("");
deckSizeLabel.setText("");
}
refreshLayout();
}
private void setLookAndFeel() {
setOpaque(false);
setLayout(new MigLayout(
"insets 0, gap 2, flowy, aligny center",
"[fill, grow]")
);
// deck name label
deckNameLabel.setForeground(Color.WHITE);
deckNameLabel.setFont(new Font("Dialog", Font.PLAIN, 16));
deckNameLabel.setHorizontalAlignment(SwingConstants.CENTER);
// deck size label
deckSizeLabel.setForeground(Color.WHITE);
deckSizeLabel.setFont(new Font("Dialog", Font.ITALIC, 14));
deckSizeLabel.setHorizontalAlignment(SwingConstants.CENTER);
}
public void refreshLayout() {
removeAll();
add(deckNameLabel);
add(deckSizeLabel);
revalidate();
}
}