This repository has been archived on 2021-02-18. You can view files and clone it, but cannot push or open issues or pull requests.
chess/src/main/java/dev/kske/chess/ui/MoveNodeRenderer.java

42 lines
1.1 KiB
Java

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: <strong>Chess</strong><br>
* File: <strong>MoveNodeRenderer.java</strong><br>
* Created: <strong>9 Oct 2019</strong><br>
*
* @since Chess v0.5-alpha
* @author Kai S. K. Engelbart
*/
public class MoveNodeRenderer extends JLabel
implements ListCellRenderer<MoveNode> {
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;
}
}