package de.lighti.components.batch; import java.awt.Component; import javax.swing.DefaultListCellRenderer; import javax.swing.JList; import javax.swing.UIManager; import javax.swing.border.Border; import javax.swing.border.EmptyBorder; class CheckboxCellRenderer extends DefaultListCellRenderer { /** * */ private static final long serialVersionUID = 6283244183499595383L; protected static Border noFocusBorder = new EmptyBorder( 1, 1, 1, 1 ); @Override public Component getListCellRendererComponent( JList list, Object value, int index, boolean isSelected, boolean cellHasFocus ) { if (value instanceof CheckBoxListEntry) { final CheckBoxListEntry checkbox = (CheckBoxListEntry) value; checkbox.setBackground( isSelected ? list.getSelectionBackground() : list.getBackground() ); checkbox.setForeground( isSelected ? list.getSelectionForeground() : list.getForeground() ); checkbox.setEnabled( isEnabled() ); checkbox.setFont( getFont() ); checkbox.setFocusPainted( false ); checkbox.setBorderPainted( true ); checkbox.setBorder( isSelected ? UIManager.getBorder( "List.focusCellHighlightBorder" ) : noFocusBorder ); return checkbox; } else { return super.getListCellRendererComponent( list, value.getClass().getName(), index, isSelected, cellHasFocus ); } } }