package info.u250.c2d.box2deditor.ui.util;
import info.u250.c2d.box2d.model.b2Model;
import java.awt.Color;
import java.awt.Component;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.ListCellRenderer;
import javax.swing.border.Border;
public class DefCellRenderer extends JLabel implements ListCellRenderer {
private static final long serialVersionUID = -4431896294266156816L;
private static final Color HIGHLIGHT_COLOR = new Color(120, 181, 223);
public DefCellRenderer() {
setOpaque(true);
setIconTextGap(5);
}
public Component getListCellRendererComponent(JList list, Object value,
int index, boolean isSelected, boolean cellHasFocus) {
this.setIcon(new ImageIcon(this.getClass().getResource("/info/u250/c2d/box2deditor/ui/res/"+value.getClass().getSimpleName()+".png")));
this.setText("<html><font color='blue'><b>"+b2Model.class.cast(value).name+
"</b></font><font color='gray'>("
+value.getClass().getSimpleName().replaceAll("b2", "").replaceAll("DefModel", "").replaceAll("Fixture", "").replaceAll("Joint", "")
+")</font></html>");
if (isSelected) {
setBackground(HIGHLIGHT_COLOR);
setForeground(Color.white);
} else {
setBackground(Color.white);
setForeground(Color.black);
}
Border paddingBorder = BorderFactory.createEmptyBorder(5,10,5,10);
Border border = BorderFactory.createLineBorder(Color.BLUE);
this.setBorder(BorderFactory.createCompoundBorder(border,paddingBorder));
return this;
}
}