001package com.github.sarxos.webcam;
002
003import java.awt.Component;
004
005import javax.swing.ImageIcon;
006import javax.swing.JLabel;
007import javax.swing.JList;
008import javax.swing.ListCellRenderer;
009
010
011public class WebcamPickerCellRenderer extends JLabel implements ListCellRenderer {
012
013        private static final long serialVersionUID = 1L;
014
015        private static final ImageIcon ICON = new ImageIcon(WebcamPickerCellRenderer.class.getResource("/com/github/sarxos/webcam/icons/camera-icon.png"));
016
017        public WebcamPickerCellRenderer() {
018                setOpaque(true);
019                setHorizontalAlignment(LEFT);
020                setVerticalAlignment(CENTER);
021                setIcon(ICON);
022        }
023
024        @Override
025        public Component getListCellRendererComponent(JList list, Object value, int i, boolean selected, boolean focused) {
026
027                Webcam webcam = (Webcam) value;
028
029                if (selected) {
030                        setBackground(list.getSelectionBackground());
031                        setForeground(list.getSelectionForeground());
032                } else {
033                        setBackground(list.getBackground());
034                        setForeground(list.getForeground());
035                }
036
037                setText(webcam.getName());
038                setFont(list.getFont());
039
040                return this;
041        }
042
043}