package dev.kske.chess.ui; import java.awt.Color; import java.awt.Component; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.ListCellRenderer; import javax.swing.border.EmptyBorder; import dev.kske.chess.board.MoveNode; /** * Project: Chess
* File: MoveNodeRenderer.java
* Created: 9 Oct 2019
* * @since Chess v0.5-alpha * @author Kai S. K. Engelbart */ public class MoveNodeRenderer extends JLabel implements ListCellRenderer { private static final long serialVersionUID = 5242015788752442446L; @Override public Component getListCellRendererComponent( JList list, MoveNode node, int index, boolean isSelected, boolean cellHasFocus ) { setBorder(new EmptyBorder(5, 5, 5, 5)); int numVariations = node.hasVariations() ? node.getVariations().size() : 0; setText(String.format("%s (%d)", node.move.toLAN(), numVariations)); setBackground(isSelected ? Color.red : Color.white); setOpaque(true); return this; } }