package org.korsakow.ide.ui.components.cell; import java.awt.Component; import javax.swing.DefaultListCellRenderer; import javax.swing.JList; import org.korsakow.domain.interf.IResource; import org.korsakow.ide.resources.ResourceType; import org.korsakow.ide.ui.components.model.ResourceComboBoxModel; public class ResourceDOComboBoxRenderer 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 IResource == false) { if (value == null || value == ResourceComboBoxModel.NULL_SELECTION_ITEM) { setIcon(null); setText("---"); } else { setIcon(null); setText(""+value); } } else { IResource resource = (IResource)value; try { setIcon(ResourceType.forId(resource.getType()).getIcon()); } catch (IllegalArgumentException e) { // some unknown resource type... so no icon; i guess we could have an "unknown" icon. } setText(resource.getName()); } return this; } }