/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package org.pepsoft.worldpainter.layers; import java.awt.Component; import java.util.HashMap; import java.util.Map; import javax.swing.DefaultListCellRenderer; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JList; import org.pepsoft.worldpainter.layers.LayerPreviewCreator.Pattern; /** * * @author Pepijn Schmitz */ public class PatternListCellRenderer extends DefaultListCellRenderer { @Override public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); if (value instanceof Pattern) { Pattern pattern = (Pattern) value; Icon icon = iconCache.get(pattern); if (icon == null) { icon = new ImageIcon(pattern.getIcon()); iconCache.put(pattern, icon); } setIcon(icon); setText(pattern.getDescription()); } return this; } private final Map<Pattern, Icon> iconCache = new HashMap<>(); }