package moviescraper.doctord.view.renderer; import java.awt.Color; import java.awt.Component; import javax.swing.JLabel; import javax.swing.JList; import javax.swing.ListCellRenderer; import moviescraper.doctord.model.SearchResult; public class SearchResultsRenderer extends JLabel implements ListCellRenderer<SearchResult> { /** * */ private static final long serialVersionUID = 1L; private static final Color HIGHLIGHT_COLOR = new Color(0, 0, 128); public SearchResultsRenderer() { setOpaque(true); setIconTextGap(12); } @Override public Component getListCellRendererComponent(JList<? extends SearchResult> list, SearchResult value, int index, boolean isSelected, boolean cellHasFocus) { SearchResult entry = (SearchResult) value; if(entry.getLabel().length() > 0) setText("<html>" + "<p>" + entry.getLabel() + "</p>" + "<br>" + "<p>" + "<a href='" + entry.getUrlPath() + "'>" + entry.getUrlPath() + "</a></p" + "</html>"); else setText("<html>" + "<a href='" + entry.getUrlPath() + "'>" + entry.getUrlPath() + "</a></html>"); if(entry.getPreviewImage() != null && entry.getPreviewImage().getThumbURL() != null) setIcon(entry.getPreviewImage().getImageIconThumbImage()); if (isSelected) { setBackground(HIGHLIGHT_COLOR); setForeground(Color.white); } else { setBackground(Color.white); setForeground(Color.black); } return this; } }