package magic.ui.screen.duel.player;
import java.awt.Color;
import javax.swing.BorderFactory;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import javax.swing.border.Border;
import magic.model.player.PlayerStatistics;
import magic.translate.StringContext;
import magic.translate.MText;
import magic.ui.FontsAndBorders;
import net.miginfocom.swing.MigLayout;
@SuppressWarnings("serial")
class PlayerMiniStatsPanel extends JPanel {
// translatable strings
@StringContext(eg = "player mini-stats heading representing games and duels [P]layed")
private static final String _S1 = "P";
@StringContext(eg = "player mini-stats heading representing games and duels [W]on")
private static final String _S2 = "W";
@StringContext(eg = "player mini-stats heading representing games and duels [L]ost")
private static final String _S3 = "L";
private static final String _S4 = "Duels";
private static final String _S5 = "Games";
private final static Border CELL_BORDER = BorderFactory.createDashedBorder(null);
private final MigLayout migLayout = new MigLayout();
private PlayerStatistics stats;
private final Color foreColor;
PlayerMiniStatsPanel(final PlayerStatistics stats, final Color foreColor) {
this.foreColor = foreColor;
setLookAndFeel();
setStats(stats);
}
private void setStats(final PlayerStatistics stats) {
this.stats = stats;
refreshLayout();
}
private void setLookAndFeel() {
setOpaque(false);
setForeground(foreColor);
setLayout(migLayout);
}
private void refreshLayout() {
removeAll();
migLayout.setLayoutConstraints("insets 0, gap 0, wrap 4");
migLayout.setColumnConstraints("[][40!]");
// stats table
add(new JLabel());
add(getStatsLabel(MText.get(_S1)), "w 100%");
add(getStatsLabel(MText.get(_S2)), "w 100%");
add(getStatsLabel(MText.get(_S3)), "w 100%");
add(getStatsLabel(MText.get(_S4)), "w 60!");
add(getStatsLabel(stats.getDuelsPlayed().toString()), "w 100%");
add(getStatsLabel(stats.getDuelsWon().toString()), "w 100%");
add(getStatsLabel(stats.getDuelsLost().toString()), "w 100%");
add(getStatsLabel(MText.get(_S5)), "w 60!");
add(getStatsLabel(stats.getGamesPlayed().toString()), "w 100%");
add(getStatsLabel(stats.getGamesWon().toString()), "w 100%");
add(getStatsLabel(stats.getGamesLost().toString()), "w 100%");
}
private JLabel getStatsLabel(final String text) {
final JLabel lbl = new JLabel(text);
lbl.setHorizontalAlignment(SwingConstants.CENTER);
lbl.setBorder(CELL_BORDER);
lbl.setFont(FontsAndBorders.FONT0);
lbl.setForeground(foreColor);
return lbl;
}
}