package magic.ui.screen.duel.player.avatar; import java.awt.Color; import java.awt.Component; import java.awt.Dimension; import javax.swing.BorderFactory; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.JPanel; import javax.swing.ListCellRenderer; import javax.swing.SwingConstants; import magic.ui.FontsAndBorders; import magic.ui.utility.MagicStyle; import net.miginfocom.swing.MigLayout; @SuppressWarnings("serial") class AvatarListCellRenderer extends JLabel implements ListCellRenderer<AvatarImageSet> { AvatarListCellRenderer() { setOpaque(false); } @Override public Component getListCellRendererComponent( JList<? extends AvatarImageSet> list, AvatarImageSet value, int index, boolean isSelected, boolean cellHasFocus) { final Color foreColor = isSelected ? MagicStyle.getRolloverColor() : Color.WHITE; final JLabel setNameLabel = new JLabel(value.getName()); setNameLabel.setFont(FontsAndBorders.FONT2); setNameLabel.setForeground(foreColor); setNameLabel.setVerticalAlignment(SwingConstants.TOP); final JPanel infoPanel = new JPanel(new MigLayout("insets 0, gap 0, flowy")); infoPanel.setOpaque(false); infoPanel.setForeground(foreColor); infoPanel.add(setNameLabel, "w 100%, gapbottom 4"); final JPanel itemPanel = new JPanel(new MigLayout("insets 0 0 0 6, gap 0")); itemPanel.setPreferredSize(new Dimension(0, 70)); itemPanel.setOpaque(false); itemPanel.setForeground(foreColor); itemPanel.setBorder(isSelected ? BorderFactory.createLineBorder(MagicStyle.getRolloverColor(), 1) : null); itemPanel.add(new JLabel(value.getSampleImage()), "w 70!, h 70!"); itemPanel.add(infoPanel, "w 100%"); return itemPanel; } }