package magic.ui.screen.duel.decks; import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Composite; import java.awt.Dimension; import java.awt.Font; import java.awt.Graphics; import java.awt.Graphics2D; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.SwingConstants; import magic.model.MagicDuel; import magic.model.player.PlayerProfile; import magic.ui.MagicImages; import magic.ui.widget.player.PlayerDetailsPanel; import net.miginfocom.swing.MigLayout; @SuppressWarnings("serial") class PlayerPanel extends JPanel { private boolean isSelected = true; PlayerPanel(PlayerProfile profile, MagicDuel duel) { setLayout(new MigLayout("insets 0")); setOpaque(false); add(new JLabel(MagicImages.getPlayerAvatar(profile).getIcon(4))); add(new PlayerDetailsPanel(profile, Color.BLACK), "w 100%"); add(getScoreLabel(getScore(profile, duel)), "w 100%"); setPreferredSize(new Dimension(280, 54)); } private int getScore(PlayerProfile profile, MagicDuel duel) { return profile.isHuman() ? duel.getGamesWon() : duel.getGamesPlayed() - duel.getGamesWon(); } private JLabel getScoreLabel(final int score) { final JLabel lbl = new JLabel(Integer.toString(score)); lbl.setFont(new Font("Dialog", Font.PLAIN, 24)); lbl.setHorizontalAlignment(SwingConstants.RIGHT); return lbl; } @Override protected void paintComponent(Graphics g) { super.paintComponent(g); if (!isSelected) { final Graphics2D g2d = (Graphics2D) g; final Composite composite = AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.3f); g2d.setComposite(composite); g2d.setColor(Color.WHITE); g2d.fillRect(0, 0, getWidth(), getHeight()); } } void setSelected(boolean b) { isSelected = b; repaint(); } }