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 extends MoveNode> 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;
}
}