package org.limewire.ui.swing.util; import java.io.File; import javax.swing.Icon; import org.limewire.core.api.Category; import org.limewire.util.FileUtils; import org.limewire.util.MediaType; import com.google.inject.Inject; /** * A FileIconController that uses default icons. */ public class BasicFileIconController extends NonBlockFileIconController { private final CategoryIconManager categoryIconManager; @Inject public BasicFileIconController(CategoryIconManager categoryIconManager) { this.categoryIconManager = categoryIconManager; } /** Returns the icon associated with the extension of the file. */ public Icon getIconForFile(File f) { if(f == null) return null; String extension = FileUtils.getFileExtension(f); if(!extension.isEmpty()) return getIconForExtension(extension); else return null; } /** Returns the icon associated with the extension. */ public Icon getIconForExtension(String ext) { MediaType mt = null; if (ext != null) mt = MediaType.getMediaTypeForExtension(ext); Category category = CategoryUtils.getCategory(mt); return this.categoryIconManager.getIcon(category); } /** Icons are always available immediately. */ public boolean isIconForFileAvailable(File f) { return true; } }