/* * To change this template, choose Tools | Templates * and open the template in the editor. */ package org.dlect.ui; import java.awt.Component; import java.awt.Dimension; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.ListCellRenderer; import org.dlect.provider.loader.ProviderDetail; /** * * @author lee */ public class ProviderRenderer extends JLabel implements ListCellRenderer<Object> { private static final int ICON_WIDTH = 16; private static final int ICON_HEIGHT = 16; private static final ProviderRenderer renderer = new ProviderRenderer(); private static final long serialVersionUID = 1L; public static ListCellRenderer<Object> getRenderer() { return renderer; } public ProviderRenderer() { this.setMinimumSize(new Dimension(ICON_WIDTH, ICON_HEIGHT)); this.setOpaque(true); } @Override public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { if (!(value instanceof ProviderDetail)) { this.setIcon(null); this.setText(value == null ? "null" : value.toString()); return this; } ProviderDetail prov = (ProviderDetail) value; if (isSelected) { setBackground(list.getSelectionBackground()); setForeground(list.getSelectionForeground()); } else { setBackground(list.getBackground()); setForeground(list.getForeground()); } setText(prov.getName()); return this; } }