package magic.ui.screen.duel.setup; import java.awt.Color; import javax.swing.JLabel; import javax.swing.JPanel; import magic.model.player.PlayerStatistics; import magic.translate.MText; import net.miginfocom.swing.MigLayout; @SuppressWarnings("serial") class PlayerStatsPanel extends JPanel { private static final String _S1 = "Last played:"; private static final String _S2 = "Duels completed:"; private static final String _S3 = "Duels won / lost:"; private static final String _S4 = "Games played:"; private static final String _S5 = "Games won / lost:"; private static final String _S6 = "Games conceded:"; private static final String _S7 = "Turns played:"; private static final String _S8 = "Average turns per game:"; private static final String _S9 = "Most used color:"; private static final IPlayerStatsViewerInfo NO_STATS = new NullPlayerStatsViewerInfo(); PlayerStatsPanel(PlayerStatistics stats) { final MigLayout miglayout = new MigLayout("wrap 2, insets 2"); miglayout.setColumnConstraints("[50%][50%, right]"); setLayout(miglayout); setOpaque(false); refreshStats(getPlayerStatsViewerInfo(stats)); } private void refreshStats(final IPlayerStatsViewerInfo stats) { removeAll(); add(getStatsLabel(MText.get(_S1))); add(getStatsLabel(stats.getLastPlayedDate())); add(getStatsLabel(MText.get(_S2))); add(getStatsLabel(stats.getDuelsPlayed())); add(getStatsLabel(MText.get(_S3))); add(getStatsLabel(stats.getDuelsWonLost())); add(getStatsLabel(MText.get(_S4))); add(getStatsLabel(stats.getGamesPlayed())); add(getStatsLabel(MText.get(_S5))); add(getStatsLabel(stats.getGamesWonLost())); add(getStatsLabel(MText.get(_S6))); add(getStatsLabel(stats.getGamesConceded())); add(getStatsLabel(MText.get(_S7))); add(getStatsLabel(stats.getTurnsPlayed())); add(getStatsLabel(MText.get(_S8))); add(getStatsLabel(stats.getAverageTurnsPerGame())); add(getStatsLabel(MText.get(_S9))); add(getStatsLabel(stats.getMostUsedColor())); revalidate(); } private JLabel getStatsLabel(String text) { final JLabel lbl = new JLabel(text); lbl.setForeground(Color.WHITE); return lbl; } void setPlayerStats(PlayerStatistics stats) { refreshStats(getPlayerStatsViewerInfo(stats)); } private IPlayerStatsViewerInfo getPlayerStatsViewerInfo(PlayerStatistics stats) { return stats.getGamesPlayed() > 0 ? new PlayerStatsViewerInfo(stats) : NO_STATS; } }